我从STLViewer找到了一个使用pyqtgraph的STL查看器程序
pyqtgraph document
关键参数设置为:
# color is a tuple in the form RGBA (0.4,0.9,0.6,1)`
mesh = gl.GLMeshItem(meshdata=meshdata, smooth=True, drawEdges=True, drawFaces=True, shader='balloon',color= (0.4,0.9,0.6,1))
stl文件的外观如下所示
这种外观不是我想要的,因为即使在同一个完整平面上,它也会显示许多边
如果设置为drawEdges=False
,则显示为
然而,我能触摸到的混凝土边缘也被隐藏了,这不是我想要的
我想要的是这样
这是pyVTK画的
主要节目是
import vtk
reader = vtk.vtkSTLReader()
reader.SetFileName(filename)
mapper = vtk.vtkPolyDataMapper() # maps polygonal data to graphics primitives
mapper.SetInputConnection(reader.GetOutputPort())
actor_0 = vtk.vtkLODActor()
actor_0.SetMapper(mapper)
actor_0.SetScale(1000, 1000, 1000)
actor_0.GetProperty().SetDiffuseColor(0.4,0.9,0.6)
actor_0.GetProperty().SetDiffuse(.8)
actor_0.GetProperty().SetSpecular(.5)
actor_0.GetProperty().SetSpecularColor(1.0, 1.0, 1.0)
actor_0.GetProperty().SetSpecularPower(30.0)
通过指定着色器,可以基于法向量更改曲面的颜色
viewNormalColor
似乎适合您在内置着色器中寻找的内容Using viewNormalColor shader
有一个使用内置着色器的示例代码。 https://github.com/pyqtgraph/pyqtgraph/blob/master/examples/GLshaders.py
但这太浮华了。因此,我进行了搜索,发现可以添加自定义着色器
https://github.com/pyqtgraph/pyqtgraph/blob/master/pyqtgraph/opengl/shaders.py
下面是添加自定义着色器的代码。我对着色器了解不多,但我修改了
viewNormalColor
着色器以使曲面为绿色然后传递着色器名称
Using myShader
我希望你会觉得它有用
相关问题 更多 >
编程相关推荐