ぬの部屋(仮)
nu-no-he-ya
  •    1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
         12
    3456789
    10111213141516
    17181920212223
    242526272829 
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
        123
    45678910
    11121314151617
    18192021222324
    25262728   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    15161718192021
    293031    
           
         12
    3456789
    10111213141516
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728     
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
          1
    2345678
    9101112131415
    16171819202122
    232425262728 
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
  • VCG Libraryで色のついたポリゴンの読み込み・表示

    VCGで色のついたポリゴンを表示する方法。

    今回はplyファイルを使用。

    napple_face_color_0 面に色情報を持つplyファイル

    napple_face_color_1 面に色情報を持つplyファイル 

    napple_vertex_color 頂点に色情報を持つplyファイル

    ※あと書くのも恥ずかしいけれど上記3ファイルはパブリックドメイン扱いとします。

    1.色情報が面にある場合

    1.1 データ型の定義

    面に色情報を持つデータを使用する場合、MyFaceで色情報を持つことを定義する。

    class MyFace;
    class MyVertex;
    class MyEdge;
    
    struct MyUsedTypes : public vcg::UsedTypes< /*省略*/> {};
    
    class MyVertex : public vcg::Vertex< /*省略*/> {};
    
    class MyFace : public vcg::Face  < 
      MyUsedTypes, 
      vcg::face::VertexRef, 
      vcg::face::Color4b,
      vcg::face::Normal3f, 
      vcg::face::Mark,
      vcg::face::BitFlags 
    > {
    };
    
    class MyEdge : public vcg::Edge< /*省略*/> {};
    
    class MyMesh : public vcg::tri::TriMesh< 
      std::vector<MyVertex>, 
      std::vector<MyFace>, 
      std::vector<MyEdge> > {
    };
    

    1.2.PLYファイルを読み込む

    vcg::tri::io::ImporterPLY<MyMesh>::Open(mesh, "napple_face_color_0.ply");
    

    1.3.表示

    色情報は C().X() , C().Y() C().Z()  にそれぞれR,G,Bが入っている。cCはconst用。

    上でvcg::face::Color4bを指定したので、unsigned char型で入っている。従ってOpenGLのglColor3ubを使用する。

      glBegin(GL_TRIANGLES);
      for (const auto& f : mesh.face) {
        glColor3ub(f.cC().X(), f.cC().Y(), f.cC().Z());
        for (size_t i = 0; i < 3; i++) {
          glVertex3d(f.cV(i)->cP().X(), f.cV(i)->cP().Y(), f.cV(i)->cP().Z());
        }
      }
      glEnd();
    

    2.色情報が頂点にある場合

    2.1 データ型の定義

    頂点に色情報がある場合、MyVertexにColor4bを指定する。

    class MyVertex : public vcg::Vertex< 
      MyUsedTypes, 
      vcg::vertex::Coord3f,
      vcg::vertex::Color4b,
      vcg::vertex::Normal3f,
      vcg::vertex::Qualityf, 
      vcg::vertex::BitFlags, 
      vcg::vertex::Mark
    > {
    };
    

     

    2.2.PLYファイルを読み込む

    vcg::tri::io::ImporterPLY<MyMesh>::Open(mesh, "napple_vertex_color.ply");
    

    2.3 表示

    色情報はvertexの中に入っています。それ以外は面の時と同じです。

      glBegin(GL_TRIANGLES);
      for (const auto& f : mesh.face) {
        for (size_t i = 0; i < 3; i++) {
          const MyVertex* pV = f.cV(i);
          glColor3ub(pV->cC().X(), pV->cC().Y(), pV->cC().Z());
          glVertex3d(pV->cP().X(), pV->cP().Y(), pV->cP().Z());
        }
      }
      glEnd();
    

    colorply

     

    VCG LibraryのBall Pivotingでメッシュ生成

    VCG LibraryでkdTree

    VCG Library でスムージング

    VCG Library ターゲットの周辺のオブジェクトを取得

    VCG LibraryでMeshに三角形を登録する方法

    VCG Library でポリゴンファイル保存

    VCG Libraryで色のついたポリゴンの読み込み・表示

    VCG LibのFace-FaceやEdge-Faceなどの関連付け

    VCG Library