unity-game-engine - 表面着色器输入结构中的 IN.worldRefl 是什么?

标签 unity-game-engine shader cg shaderlab

这个问题非常简单。我不知道 IN.worldRefl 代表什么,我看过一些教程将其与立方体贴图一起使用,但我仍然不知道。

Unity 的 description因为它很穷:

float3 worldRefl - contains world reflection vector if surface shader does not write to o.Normal.

最佳答案

我已经研究了几天,我对 IN.worldRefl 的含义有了预感。

首先我看到了这张图片(找到 here ):

enter image description here

所以我猜测 IN.worldRefl 是相机光线在物体多边形表面的反射,如图所示。

例如,当将SurfaceOutput的发射设置为与IN.worldRefl对应的位置处的立方体贴图的纹理时,即

samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
    o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}

这意味着,将对象设置在具有给定立方体贴图的立方体内,摄像机在对象多边形表面上的反射光线将穿过立方体的一点。该点的颜色将由相机光线接触到物体的位置处的物体发出。

我可能完全错了,但这对我来说是有道理的。

关于unity-game-engine - 表面着色器输入结构中的 IN.worldRefl 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57234402/

相关文章:

android - 无法在 Unity 5.3.4 中使用 facebook sdk 和 google play 一起为 android 构建

c# - 内容相同的字符串不相等?

ios - 在UnityPro4.6.0f3、Xcode5.0.2(5A3005)和IOS 8.1.1中构建TutorialHelloWorld时出现链接错误

opengl - 如何使用GLSL在现代OpenGL中渲染文本

javascript - WebGL alpha 取决于与原点的距离

c++ - 执行双浮点除法的正确算法是什么?

unity-game-engine - Unity - 如何在 Rigidbody2D 上平滑恒定速度

glsl - 着色器的标准命名约定

c++ - 使用 Cg :compile error:semantic "POSITION" not visible in this profile 进行体绘制

c++ - 在 Xcode 中静态链接 Nvidia 的 Cg 框架