728x90
namespace vtkPropTest { class Program { static vtkConeSource cone; static vtkActor anActor; static vtkProperty prop; static vtkRenderer ren; static vtkRenderWindow renWin; static vtkRenderWindowInteractor iren; static vtkPolyDataMapper coneMapper; static void Main(string[] args) { cone = vtkConeSource.New(); cone.SetHeight(3.0); cone.SetRadius(1.0); cone.SetResolution(10); coneMapper = vtkPolyDataMapper.New(); coneMapper.SetInputConnection( cone.GetOutputPort() ); /// Mapper에 scalar data가 있으면, actor의 속성값은 무시가 됨. /// 이를 방지 하기 위해서 mapper의 scalar 값 표현 해제 coneMapper.ScalarVisibilityOff(); anActor = vtkActor.New(); anActor.SetMapper(coneMapper); /// 속성을 생성한 후 한번에 Actor에 입력 prop = vtkProperty.New(); prop.SetOpacity(0.25); prop.SetAmbient(0.5); prop.SetDiffuse(0.6); prop.SetSpecular(1.0); prop.SetSpecularPower(10.0); prop.SetColor(0.1, 0.2, 0.4); prop.SetAmbientColor(.1, .1, .1); prop.SetDiffuseColor(.1, .2, .4); prop.SetSpecularColor(1, 1, 1); anActor.SetProperty(prop); /// Wireframe 속성 설정. /// 앞에서 actor에 설정한 Property에 대한 수정 anActor.GetProperty().SetRepresentationToWireframe(); anActor.GetProperty().SetColor(0, 0, 0); /// Transparency 속성 설정 // anActor.GetProperty().SetOpacity(0.3); // anActor.GetProperty().SetColor(0.2, 0.2, 0.2); ren = vtkRenderer.New(); renWin = vtkRenderWindow.New(); iren = vtkRenderWindowInteractor.New(); ren.SetBackground(1, 1, 1); renWin.SetSize(400, 400); renWin.AddRenderer(ren); iren.SetRenderWindow(renWin); ren.AddActor(anActor); iren.Initialize(); iren.Start(); cone.Dispose(); anActor .Dispose(); prop .Dispose(); ren .Dispose(); renWin .Dispose(); iren .Dispose(); coneMapper.Dispose(); } } }
Wirefame 속성 활성화
Transparency 조정 Opcacity 속성 0.3
참고
VTK 에서 transparency 는 alpha-blending process를 사용한다.
그러므로, 투명 물체를 마지막에 추가 해야한다. 또는 vtkDepthSortPolyData 를 이용하여 view vector를 sorting 수행해야한다.
참조 vtk/Examples/VisualizationAlgorithms/Tcl/DepthSort.tcl
728x90
728x90