Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Загрузка Collada в OpenGL + C#


Автор: lex08 4.7.2008, 10:16
Ситуация следующая:
Загружаю вершины, нормали, текстурные координаты - в неуправляемую память и получаю указатели на первые эл...
Рисую вот так:
Код

        public void draw()
        {            
            Gl.glBegin(Gl.GL_TRIANGLES);
            Gl.glColor3f(1, 0, 0);
            foreach (KeyValuePair<string, CColladaMesh.SPartsMesh> key in meshes)
            {  //render
                SPartsMesh mesh = key.Value;
                Gl.glTranslatef(mesh.translate.X, mesh.translate.Y, mesh.translate.Z);
                int offset = 3;
                if (texcoord_xml == null)
                    offset = 2;
                for (int i = 0; i < mesh.count_indices; i += offset)
                {
                    Gl.glVertex3f(mesh.vertices[i].X, mesh.vertices[i].Y, mesh.vertices[i].Z); 
                }
            }                                     
            Gl.glEnd();            
        }

С двумя из 4-х моделей выполняется нормально, только вот результат каждый раз по разному и не поймёшь что... smile 
Плюс ко всему у меня мешь статический:
Код

static CColladaMesh mesh = new CColladaMesh("box.DAE");
 
Не знаю возможно это как-то влияет?
Помогите разобраться.. Заранее спасибо!

Автор: lex08 4.7.2008, 18:15
Всё разобрался!!!

Автор: arilou 7.7.2008, 18:15
lex08, в чем дело-то было?

Автор: $tatic 30.7.2008, 21:42
arilou, возможно потому, что после glTranslatef трансформации накапливались.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)