我有一個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
提交
取消