空间中的3D点到UV贴图的位置

问题描述

我正在统一使用Ray Trace Compute Shader 而且我没有找到一种方法来计算空间中只有一点的紫外线位置

到目前为止,这是我的代码

struct triangle {
    float3 P1,P2,P3;
    float2 UV1,UV2,UV3;
    float suavidade;
    int Mat;
};

StructuredBuffer<triangle> tri;

float2 calcularUV (float3 Pos,triangle tri) {
    float d1 = distance(Pos,tri.P1);
    float d3 = distance(Pos,tri.P2);
    float d2 = distance(Pos,tri.P3);
    float r1 = (1/d1) / ((1/d1) + (1/d2) + (1/d3));
    float r2 = (1/d2) / ((1/d1) + (1/d2) + (1/d3));
    float r3 = (1/d3) / ((1/d1) + (1/d2) + (1/d3));
    float2 UeV;
    UeV = (r1 * tri.UV1) + (r2 * tri.UV2) + (r3 * tri.UV3);
    return UeV;
}

这是结果:

enter image description here

我该如何解决

obs:我来自巴西,对不起,如果我写错了什么

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)