2017-10-20 17 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の例では、objローダーの出力をvtkPolyDataMapperに接続するだけで、動作するはずです。

関連する問題