VTK例子21-Volum
Volum#include "stdafx.h"#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#include "vtkProperty.h"#include "vtkCamera.h"#include "vtkStructuredPointsReader.h"#include "vtkPiecewiseFunction.h"#include "vtkColorTransferFunction.h"#include "vtkVolumeProperty.h"#include "vtkColorTransferFunction.h"#include "vtkVolumeRayCastCompositeFunction.h"#include "vtkVolumeRayCastMapper.h" #pragma comment (lib, "vtkFiltering.lib")#pragma comment (lib, "vtkRendering.lib")#pragma comment (lib, "vtkIO.lib")#pragma comment (lib, "vtkVolumeRendering.lib") int main (int argc, char **argv){ vtkRenderer *aRenderer = vtkRenderer::New(); vtkRenderWindow *renWin = vtkRenderWindow::New(); renWin->AddRenderer(aRenderer); vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); iren->SetRenderWindow(renWin); vtkStructuredPointsReader *reader = vtkStructuredPointsReader::New(); //reader->SetFileName(".\\ironProt.vtk"); reader->SetFileName("ironProt.vtk"); vtkVolumeRayCastCompositeFunction *ComositeFun = vtkVolumeRayCastCompositeFunction::New(); vtkVolumeRayCastMapper *VolMapper = vtkVolumeRayCastMapper::New(); VolMapper->SetInputConnection(reader->GetOutputPort()); VolMapper->SetVolumeRayCastFunction(ComositeFun); vtkVolume *Volume = vtkVolume::New(); Volume->SetMapper(VolMapper); vtkColorTransferFunction *gTFun = vtkColorTransferFunction::New(); //gTFun->AddRGBSegment(128.0,126/255.0,16/255.0,16/255.0, 255.0,64/255.0,255/255.0,16/255.0); gTFun->AddRGBSegment(127.0,126/127.0,16/127.0,16/127.0, 255.0,64/255.0,255/255.0,16/255.0); vtkVolumeProperty *VolProperty = vtkVolumeProperty::New(); VolProperty->SetColor(gTFun); vtkPiecewiseFunction *oTFun = vtkPiecewiseFunction::New(); oTFun->AddSegment(48,0.0,256,1.0);//改变第一个数据,可以得到不同的体透明度 VolProperty->SetScalarOpacity(oTFun); VolProperty->SetInterpolationTypeToLinear(); VolProperty->ShadeOn(); Volume->SetProperty(VolProperty); aRenderer->AddActor(Volume); aRenderer->SetBackground(0,0,0); //renWin->SetSize(640,480); renWin->SetSize(1280,480); aRenderer->ResetCameraClippingRange(); iren->Initialize(); iren->Start(); aRenderer->Delete(); renWin->Delete(); iren->Delete(); return 0;} 谢谢LZ 看看!!!!!谢谢楼主!!! 学习了!!!!!!!!! 看看,学学 先学习一下,以留备用
页:
[1]