glsl - 为什么方向矢量朝向相反的方向?
问题描述
我目前正在学习 OpenGL 中的照明,并且正在阅读 learnopengl.com,当我注意到他们通过将光位置减去片段位置来计算光的方向(漫射照明)时:(
vec3 lightDir = normalize(lightPos - FragPos);
我附上了一张图像来显示这个看起来像)
方向矢量图像
为什么他们会得到一个从 Fragment 位置指向 light 位置的向量?如果他们想得到光的方向,难道我们不想得到一个从光位置到片段位置的向量:
vec3 lightDir = normalize(FragPos - lightPos);
解决方案
漫射光是由法线向量和从表面到光源的向量的点积计算的。请参阅光照模型的计算如何在着色器程序中工作?
推荐阅读
- rust - 如何在 bevy 0.5.0 中使用多个摄像头?
- python - 尝试更改标签文本,当变量在没有用户输入的情况下自动更改时
- c++ - 为什么 std::set::extract() 和 std::set::insert(nh) 的标准中没有不抛出保证?
- ansible - 合并多个任务以减少输出
- reactjs - 我在 CRA 和后端之间共享 Typescript 代码的方法:我错过了什么吗?
- c# - 将数据从一个 Gridview 中的行传输到另一个
- batch-file - 在回显语句批处理文件中使用增量变量而不一次又一次地修改它
- bash - 如何将“rename -n ...”输出到文件?
- powershell - 如何通过 Powershell 从在线 ZIP 存档中仅下载单个文件?
- openfaas - 如何通过openfass-cli在本地目录中使用我自己的openfaas模板?