unity-game-engine - Unity 中的 ThreeJS 着色器

标签 unity-game-engine three.js shader hlsl phong

我正在 Unity 中开展一个项目,该项目使用 AR 将产品放置在现实世界中。这些产品(几何图形和 Material )从 h​​ttp 服务器下载并转换为 Unity 中的游戏对象。

这些产品最初创建于 ThreeJS (不要问为什么)并且与 Unity 几何/ Material 相比具有不同的几何/ Material 结构。

我的几何体可以正常工作,但我在 Material 方面遇到了问题。 'Standard ' Unity 中的着色器不包含创建 Material 的所有参数(例如:Alpha 贴图、环境贴图、折射、位移贴图、粗糙度贴图、双面等)。

我查看了 Asset Store/GitHub 中的不同插件/库(例如 LUXBit2GoodShader SandwichSimple Physical Shader ),但似乎它们也都缺少一些参数。我正在考虑自己编写 Phong/物理着色器,但这肯定需要我几周的时间才能完成。

大家有什么建议吗?

最佳答案

标准着色器中没有 alpha 贴图 - 主纹理的 alpha channel 用作 alpha 贴图。

也没有环境贴图 - 使用立方体贴图作为反射探针。

标准着色器中没有折射 - 它是标准着色器。

标准着色器中的置换贴图称为高度贴图。

粗糙度贴图 - 不符合标准(您可以获得的最接近的结果是将其反转并用作遮挡贴图)。

双面 - 不。

您需要为此编写自己的着色器。

建议是:

第 1 步:为每个属性找到一个着色器

第2步.通过复制粘贴相关代码将它们组合起来

关于unity-game-engine - Unity 中的 ThreeJS 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53762548/

相关文章:

unity-game-engine - Unity 网格体碰撞变形

android - UNITY 3D 的磁铁脚本

javascript - Three.js 在 10 个随机对象上生成颜色

OpenGL,为什么这段代码不能按我的预期工作?

c++ - 从内存创建着色器时出错

c - GLSL 纹理映射结果为纯色

unity-game-engine - Unity3D 在新 UI 中实例化预制件列表

ios - 无法找到实用程序 actool : not a developer tool or in PATH - Unity

javascript - 使用 Three.js 无法在 Mapbox 上加载 3D 模型

javascript - Threejs中的可点击按钮效果