2017-10-20 7 views
0

나는 vtk를 사용하고 있는데 objFile을 시각화하고 싶지만 어떻게해야할지 모르겠다.ReadObj.cxx를 사용해야한다고 생각하지만 어디에서 ObjFile의 이름을 넣어야한다고 생각 하는가? .Obj 파일을 vtk로 가져 오기

int main(int argc, char* argv[]) 
{ 
// Parse command line arguments 
if(argc != 2) 
{ 
std::cout << "Usage: " << argv[0] << " Filename(.obj)" << std::endl; 
return EXIT_FAILURE; 
} 

std::string filename = argv[1]; 
vtkSmartPointer<vtkOBJReader> reader = 
vtkSmartPointer<vtkOBJReader>::New(); 
    reader->SetFileName(filename.c_str()); 
reader->Update(); 

// Visualize 
vtkSmartPointer<vtkPolyDataMapper> mapper = 
vtkSmartPointer<vtkPolyDataMapper>::New(); 
mapper->SetInputConnection(reader->GetOutputPort()); 

vtkSmartPointer<vtkActor> actor = 
vtkSmartPointer<vtkActor>::New(); 
actor->SetMapper(mapper); 

vtkSmartPointer<vtkRenderer> renderer = 
vtkSmartPointer<vtkRenderer>::New(); 
renderer->AddActor(actor); 
renderer->SetBackground(.3, .6, .3); // Background color green 

vtkSmartPointer<vtkRenderWindow> renderWindow = 
    vtkSmartPointer<vtkRenderWindow>::New(); 
    renderWindow->AddRenderer(renderer); 

    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = 
    vtkSmartPointer<vtkRenderWindowInteractor>::New(); 
    renderWindowInteractor->SetRenderWindow(renderWindow); 

    renderWindowInteractor->Start(); 

return EXIT_SUCCESS; 
} 

아무도 도와 줄 수 있습니까? 감사.

답변

0

귀하의 질문이 확실하지 않습니다. 코드가 정확하고 ObjFile의 이름이 filename입니다.

ReadObj.exe이

0

파일이 유효한 .OBJ인가를 myobjfile.obj : 당신이 명령 줄로 프로그램을 실행할 때이를 지정해야합니까? 블렌더 또는 단일체 또는 3dsmax로 가져 와서 유효성을 검사 할 수 있습니까? 색을 설정하지 않았습니다. hello world 예제 (Hello World)에는 파일과 마찬가지로 polydata가 표시되며 색상이 설정됩니다. 또한 액터를 추가 한 후에 카메라를 재설정하지 않았으므로 카메라가 잘못된 위치에 있습니다. hello world exemple은 카메라를 재설정하는 방법도 보여줍니다. 안녕하세요 세계 예제에서 obj 로더의 출력을 vtkPolyDataMapper에 연결할 수 있으며 그냥 작동해야합니다.