我有一个pyvista多边形(特别是等腰梯形),我想在其上应用纹理。问题在于,原始平行线沿着梯形的对角线奇怪地弯曲。有什么办法可以防止这种情况吗?我也不知道这个问题是否应该在pyvista,vtk或opengl层上解决。有关重现问题的最小工作示例,请参阅下文。原始纹理:预期结果(或多或少,它不是关于亮度,而是线条):以下代码的结果/实际结果:重现结果的代码:import numpy as npimport pyvista as pvvertices = np.array([[0.2, 0, 0], [0.8, 0, 0], [1, 1, 0], [0, 1, 0]]) # mesh facesfaces = np.hstack([[4, 0, 1, 2, 3]]) # squaresurf = pv.PolyData(vertices, faces)tex = pv.read_texture("parallel.png")# Turning these on did not make a visible difference.tex.InterpolateOn()tex.MipmapOn()surf.t_coords = np.array([[0., 0.], [1., 0.], [1., 1.], [0., 1.]])# experience a weird bend in the texturesurf.plot(texture=tex)
1 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
由于多边形数量少,看起来您有一些纹理失真。在我看来,你可以1)重新设计你的纹理坐标来“采样”纹理:
... surf.t_coords = np.array([[0.2, 0.], [0.8, 0.], [1., 1.], [0., 1.]]) ...

或2)增加顶点/三角形的数量,并相应地调整您的UV坐标。它应该减轻失真。
添加回答
举报
0/150
提交
取消
