【问题标题】:DirectX Sphere Texture CoordinatesDirectX 球体纹理坐标
【发布时间】:2015-03-15 13:42:09
【问题描述】:

我有一个具有每个顶点法线的球体,我正在尝试使用算法导出对象的纹理坐标:

U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5

使用圆点纹理,我得到:

这是没有应用纹理的同一个对象:

我特别关注的问题(我知道有一些)是纹理的错位。

我倾向于认为问题在于我对这些算法的使用,因为镜面高光(不使用任何纹理但确实依赖于正确的法线)似乎没有伪影。

有什么想法吗?

【问题讨论】:

    标签: geometry directx textures coordinates hlsl


    【解决方案1】:

    您不能在构建球体的同时设置 UV 吗?

    然后:

     u = theta / (2 * PI);
     v = phi / PI;
    

    编辑:我可能还指出,鉴于顶部的黑点,您的法线可能有问题......沿着多边形边缘似乎也有突出显示的线。这再次指出了可能的狡猾法线......

    【讨论】:

    • 正如我所说,我知道其他问题......并且在我构建球体时设置 UV 不会覆盖以后的变形。出于这个原因,我从头开始构建球体,而不是使用预构建的网格。
    • 好吧,如果你要在变形时重新纹理,也许你正在追求它的投影纹理......
    • 可能值得研究,但我没有任何资源,而且不是购买参考手册的季节。
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 2012-05-04
    • 2011-12-12
    • 1970-01-01
    • 2020-01-03
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多