unity3d - 表面着色器输入结构中的 IN.worldRefl 是什么?
问题描述
这个问题很简单。我不知道IN.worldRefl
代表什么,我看过一些将它与立方体贴图一起使用的教程,但我仍然不知道。
Unity对它的描述很差:
float3 worldRefl -如果表面着色器 不写入 o.Normal ,则包含世界反射向量。
解决方案
我已经研究了几天了,我有预感是什么IN.worldRefl
意思。
首先我看到了这张图片(在这里找到):
所以我猜这IN.worldRefl
是相机光线在物体多边形表面的反射,如图所示。
例如,当一组的发射为SurfaceOutput
立方体贴图的纹理在对应的位置IN.worldRefl
,即
samplerCUBE _Cube;
void surf (Input IN, inout SurfaceOutput o) {
o.Emission = texCUBE (_Cube, IN.worldRefl).rgb;
}
这意味着,使用给定的立方体贴图将对象设置在立方体内,对象多边形表面中相机的反射光线将在一个点中穿过立方体。该点的颜色将由相机光线接触到物体的位置的物体发出。
我可能完全错了,但这对我来说很有意义。
推荐阅读
- c# - 为什么 C# 配置系统在 IIS 作为 CGI 运行时无法初始化?
- sql - 设置默认值列后插入失败
- react-native - 使用本机反应控制 iOS 上的音乐播放?
- javascript - 使用复选框在选项卡之间切换
- swift - 我下载了一个使用 CocoaPods 的开源项目。我必须安装 CocoaPods 吗?
- c# - 如果文件中没有特定的字符串,我正在尝试报告一条消息。我不断收到相同的消息
- python - 如何连接两个用户定义类的集合
- command-line-interface - SSH 到 Pivotal 云铸造厂
- java - 如何从 SQL 查询中获取列名(Jooq,Java)
- php - 向 Laravel 工厂方法添加多个关系会导致 TypeError