【问题标题】:HLSL fixed lighting locationHLSL 固定照明位置
【发布时间】:2016-02-12 17:22:24
【问题描述】:

您好,我正在尝试使用材质和雾为我的 3D 模型创建着色器。一切正常,但光线方向。我不确定将它设置为什么,所以我使用了一个固定值,但是当我旋转我的 3D 模型(这是一个简单的纹理球体)时,光线会随之旋转。我想更改我的代码,以便我的光根据相机而不是物体本身停留在一个地方。我尝试将视图矩阵乘以输入法线,但结果相同。

另外,我应该根据相机设置光线方向吗?

编辑:删除了 pastebin 链接,因为这违反了规则...

【问题讨论】:

标签: hlsl direction light


【解决方案1】:

使用相机相关值仅用于将顶点位置转换为视图和投影位置(在剪切和光栅化阶段的着色器中需要)。显卡需要知道在哪里绘制像素。

对于照明,您通常会将顶点的世界位置和世界位置的法线传递给所需的着色器阶段(即用于 phong 照明的像素着色器阶段)。

因此,您可以将世界空间坐标系中的灯光位置或更好的灯光方向设置为着色器的全局变量。这样一来,照明就与相机视图位置无关了。

如果您想要使用手电筒等效果。您可以将灯光位置设置为相机位置,将灯光方向设置为您的观看方向。所以明亮的部分总是在你的视锥体的中心。

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多