我正在使用vtk,我想想象一个objFile但我不知道该怎么做 我想我应该使用ReadObj.cxx但是我应该把我的ObjFile的名字放在哪里。
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 :(得分:0)
不确定您的问题是什么。
您的代码是正确的,ObjFile的名称是filename
。您应该在以命令行运行程序时指定它:
ReadObj.exe myobjfile.obj
答案 1 :(得分:0)
您的文件是否有效.obj?你可以将它导入搅拌机或统一或3dsmax进行验证吗? 你没有设置颜色。在hello world示例(Hello World)中,显示了一个与数据一样的多边形数据,并设置了它的颜色。 此外,添加演员后,您没有重置相机,因此相机位置不正确。问候世界也举例说明如何重置相机。 您可以将您的obj加载器的输出连接到hello world示例中的vtkPolyDataMapper,它应该可以正常工作。