从顶点U,V推断三角形中的点的U,V

我正在使用CGKit和RTree在python中编写一个非常简单的ray-tracer 。在将光线与三角形相交之后,我想从顶点的U,V推断出交点的U,V。什么是合适的方法呢?


当前,我正在使用到相对边缘的距离的加权平均值,如下所示。除了与CGKit相关的东西外,我还有3个顶点v1,v2,v3和3个UV的vt1,vt2,vt3。hit_p是CGKit相交返回的三角形上的xyz点。


def extract_hit_vt(tri_geom, tri_vt,hit_p, oa_face):


    hit_face = tri_geom.faces[oa_face]


    vt1 = np.array(vec3(tri_vt[oa_face * 3]))

    vt2 = np.array(vec3(tri_vt[oa_face * 3 + 1]))

    vt3 = np.array(vec3(tri_vt[oa_face * 3 + 2]))


    v1 = tri_geom.verts[hit_face[0]]

    v2 = tri_geom.verts[hit_face[1]]

    v3 = tri_geom.verts[hit_face[2]]


    d1 = ptlined(v2, v3, hit_p)

    d2 = ptlined(v3, v1, hit_p)

    d3 = ptlined(v1, v2, hit_p)


    hit_vt = (d1*vt1+d2*vt2+d3*vt3)/(d1+d2+d3)


    return hit_vt


杨魅力
浏览 169回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python