gpt4 book ai didi

graphics - 实现法线贴图 HLSL

转载 作者:行者123 更新时间:2023-12-04 05:10:39 28 4
gpt4 key购买 nike

所以,好吧。我正在尝试在我的小型游戏引擎中实现法线贴图,但我无法让它工作。

当我只使用每个顶点法线进行照明时,一切都很好,但是如果我尝试使用法线贴图进行照明,那么一切都会分崩离析。

我知道我有正确的 UV,因为纹理看起来不错,但我不知道在法线贴图纹理方面我做错了什么。

这是我的像素着色器(HLSL)中的一些代码....

    float3 NormalSample(float3 normalMapSample, float3 unitNormalW, float3 tangentW)
{
//Uncompress each component from [0,1] to [-1,1]
float3 normalT = 2.0f*normalMapSample - 1.0f;
// Build orthonormal basis.
float3 N = unitNormalW;
float3 T = normalize(tangentW - dot(tangentW, N)*N);
float3 B = cross(N, T);

float3x3 TBN = float3x3(T, B, N);

// Transform from tangent space to world space.
float3 bumpedNormalW = mul(normalT, TBN);

return bumpedNormalW;
}

关于我可能做错了什么的任何想法?

最佳答案

好的,我修好了。我只是在错误的坐标空间中进行正常计算。为了方便起见,我决定在模型空间中做所有事情。它看起来很棒。太糟糕了,我不允许发布屏幕截图。

再次感谢Miloszmaki....

关于graphics - 实现法线贴图 HLSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14972189/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com