我正在使用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
添加回答
举报
0/150
提交
取消