Problema normal del archivo obj guardado por pcl::io::saveOBJFile

1. Descripción del fenómeno

Usando pcl::GreedyProjectionTriangulation para triangular la nube de puntos, la malla obtenida se puede mostrar directamente en pcl::visualization::PCLVisualizer sin ningún problema:

    // Create a PCLVisualizer object
    pcl::visualization::PCLVisualizer viewer("PCL Viewer");
    // Define the color of the point cloud
    viewer.setBackgroundColor(0.5, 0.6, 0.0);
    // Add the point cloud and its normals to the viewer
    viewer.addPointCloudNormals<pcl::PointXYZRGBNormal>(cloud_with_normals, 2); // 显示点云以及法线
    viewer.addPolygonMesh(mesh); // 显示mesh
    // Set the camera position and orientation
    viewer.setCameraPosition(0.0, 0.0, -2.0, 0.0, -1.0, 0.0);
    // Start the viewer
    while(!viewer.wasStopped())
    {
    
    
        viewer.spin();
        //        viewer.spinOnce();
    }

Como puede ver, las normales están todas en el mismo lado, lo que indica que la dirección es correcta.
Insertar descripción de la imagen aquíSin embargo, después de usar pcl::io::saveOBJFile para guardar la malla como obj y luego abrirla con otro software de terceros, aparecerá un efecto muy travieso:

        pcl::PolygonMesh mesh;
        ret = MyUtil::pointCloudToMesh(pclCloud, mesh);

        if(ret != 0)
        {
    
    
            return;
        }

        QString fileName = QString("mesh_%1.obj").arg(QTime::currentTime().toString("hhmmss_zzz"));
        //保存网格图名
        pcl::io::saveOBJFile(fileName.toStdString(), mesh);

Insertar descripción de la imagen aquíComo puedes ver, es todo negro y gris. Enciendan las normales y eche un vistazo:
Insertar descripción de la imagen aquíbuenos chicos, la mitad de ellas están hacia adelante y la otra mitad hacia atrás. No es de extrañar que algo no luzca bien. Cuando activa el sombreado direccional, puede ver que hay un problema con la dirección normal de algunos parches.

Insertar descripción de la imagen aquí

2.Solución

No lo sé todavía.
Usemos primero el formato ply. Aunque todavía parece haber un problema con las normales, básicamente se puede ver.
No sé por qué hay un problema con las normales, la visualización del objeto no funciona, pero la visualización del formato de capas está bien.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/joyopirate/article/details/130708107
Recomendado
Clasificación