
更改 OBJ 物件透明度
在《【Python】使用 PyQt5 與 VTK 渲染 3D 物件 (.obj) 》一文中提到,在加載 OBJ 物件的過程中,會創建一個 vtkActor(演員)物件。
要在 PyQt 中使用 VTK 來更改 OBJ 物件的透明度,需要使用 VTK 的 vtkProperty 來設置物件的透明度屬性。vtkActor 使用 vtkProperty 來設定物件的可視屬性(如顏色、透明度、陰影等)。
- 設定物件的透明度:這可以透過 vtkProperty 的 SetOpacity 方法來完成,這個方法接受一個 0 到 1 之間的值,0 代表完全透明,1 代表完全不透明。
【注意】VTK 的陰影功能(使用 renderer.UseShadowsOn())有時候會干擾透明度的正確渲染。有使用者報告說,當陰影開啟時,任何設定低於 1.0 的透明度都會讓物件消失。
# 設定物件的透明度
property = actor.GetProperty()
property.SetOpacity(0.5) # 設定透明度為 50%
更改 OBJ 物件顏色
在《【Python】使用 PyQt5 與 VTK 渲染 3D 物件 (.obj) 》一文中提到,在加載 OBJ 物件的過程中,會創建一個 vtkActor(演員)物件。
要在 PyQt 中使用 VTK 來更改 OBJ 物件的顏色,一樣需要 vtkActor 使用 vtkProperty。
- 設定物件的顏色:這可以透過 vtkProperty 的 SetColor 方法來完成,這個方法的參數是三個浮點數,分別代表 RGB 顏色值,範圍從 0 到 1。
# 設定物件的顏色
property = actor.GetProperty()
property.SetColor(1.0, 1.0, 0.0) # 設定黃色
結語
透過這篇文章,探討了如何在 PyQt 中使用 VTK 調整 OBJ 物件的透明度與顏色。藉由 vtkProperty,可以輕鬆控制物件的視覺效果。
然而,值得注意的是,啟用 renderer.UseShadowsOn() 可能會影響透明度的顯示,因此在開發過程中需要小心。
但不需要擔心,即使沒有顯式啟用陰影,物件的表面仍然會呈現一定的陰影效果,並不需要開啟進階的陰影渲染。


