Народный учебник по OpenGL

         

и для вершин, эта часть


                            1.0f-pTriangle->m_t[2] };
              memcpy( m_pTriangles[i].m_vertexNormals, pTriangle->m_vertexNormals,

                            sizeof( float )*3*3 );
              memcpy( m_pTriangles[i].m_s, pTriangle->m_s, sizeof( float )*3 );
              memcpy( m_pTriangles[i].m_t, t, sizeof( float )*3 );
              memcpy( m_pTriangles[i].m_vertexIndices, vertexIndices, sizeof( int )*3 );
              pPtr += sizeof( MS3DTriangle );
       }
Так же как и для вершин, эта часть функции сохраняет все треугольники модели. Пока что она включает просто копирование массивов из одной структуры в другую, и вы увидите разницу между массивом vertexIndeces и t-массивами. В файле номера вершин хранятся как массив переменных типа word, в модели это переменные типа int для согласованности и простоты (при этом противное приведение не нужно). Итак просто нужно привести 3 значения к типу int. Все значения t  задаются как 1.0 - (оригинальное значение).  Причина этого в том, что OpenGL использует левую нижнюю систему координат, тогда как Milkshape использует правую верхнюю систему координат (прим.: имеется в виду расположение точки центра системы координат и ориентация) для работы с текстурой. Это меняет направление оси y.
       int nGroups = *( word* )pPtr;
       m_numMeshes = nGroups;
       m_pMeshes = new Mesh[nGroups];
       pPtr += sizeof( word );
       for ( i = 0; i < nGroups; i++ )
       {
              pPtr += sizeof( byte );     // Флаги
              pPtr += 32;           // Имя
 
              word nTriangles = *( word* )pPtr;
              pPtr += sizeof( word );
              int *pTriangleIndices = new int[nTriangles];
              for ( int j = 0; j < nTriangles; j++ )
              {
                    pTriangleIndices[j] = *( word* )pPtr;
                    pPtr += sizeof( word );
              }
 
              char materialIndex = *( char* )pPtr;
              pPtr += sizeof( char );

Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий