Pārlūkot izejas kodu

Added second texcoord support in OgreImporter utility.

Lasse Öörni 12 gadi atpakaļ
vecāks
revīzija
f07a952096
1 mainītis faili ar 17 papildinājumiem un 0 dzēšanām
  1. 17 0
      Source/Tools/OgreImporter/OgreImporter.cpp

+ 17 - 0
Source/Tools/OgreImporter/OgreImporter.cpp

@@ -364,7 +364,11 @@ void LoadMesh(const String& inputFileName, bool generateTangents, bool splitSubM
             if (bufferDef.HasAttribute("normals"))
             if (bufferDef.HasAttribute("normals"))
                 vBuf->elementMask_ |= MASK_NORMAL;
                 vBuf->elementMask_ |= MASK_NORMAL;
             if (bufferDef.HasAttribute("texture_coords"))
             if (bufferDef.HasAttribute("texture_coords"))
+            {
                 vBuf->elementMask_ |= MASK_TEXCOORD1;
                 vBuf->elementMask_ |= MASK_TEXCOORD1;
+                if (bufferDef.GetInt("texture_coords") > 1)
+                    vBuf->elementMask_ |= MASK_TEXCOORD2;
+            }
             
             
             unsigned vertexNum = vertexStart;
             unsigned vertexNum = vertexStart;
             if (vertices)
             if (vertices)
@@ -403,6 +407,19 @@ void LoadMesh(const String& inputFileName, bool generateTangents, bool splitSubM
                         Vector2 vec(x, y);
                         Vector2 vec(x, y);
                         
                         
                         vBuf->vertices_[vertexNum].texCoord1_ = vec;
                         vBuf->vertices_[vertexNum].texCoord1_ = vec;
+                        
+                        if (vBuf->elementMask_ & MASK_TEXCOORD2)
+                        {
+                            uv = uv.GetNext("texcoord");
+                            if (uv)
+                            {
+                                float x = uv.GetFloat("u");
+                                float y = uv.GetFloat("v");
+                                Vector2 vec(x, y);
+                                
+                                vBuf->vertices_[vertexNum].texCoord2_ = vec;
+                            }
+                        }
                     }
                     }
                     
                     
                     vertexNum++;
                     vertexNum++;