Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> glmDraw() в WinApi 
:(
    Опции темы
dandy77
Дата 19.9.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Я пишу программу на Win API С++ пользуясь Visual C++ 6.0. Рисую пол, три дерева и модель 3D,  но 3D модель машины (порше) у меня не выводиться как надо.  Машина в центре поля выводиться абсолютно белым цветом без раскраски ее как и должно быть, которая храниться в файле машины и в файле ее материалов obj, mtl. Но у меня есть программа на Glut- я тоже вывожу машину в центре экрана- машина выводиться. Почему в Glut программе машина прорисовываеться цветная, как и была нарисована в 3D Studio Max, а в моей Win API программе- глюк. Так же добавлю, я раньше до этого возился с моделью, и она у меня не отображалась как следует, пока я в Glut программу не добавил свет над моделью. В Win API я тоже добавил свет- но машина белая, видно только ее очертания, вся она залита белым цветом. Я пробывал менять параметры света (диффуцию-интенсивность, позицию источника), но все зря. Кто знает, подскажите. Вот код:
Код

GLMmodel* pmodel = NULL;
Init()
{
char* name = 0;
    name = "data/porsche.obj";
    pmodel = glmReadOBJ(name);
    if (!pmodel) exit(0);
    
    glmReadMTL(pmodel ,"porsche.mtl");
    glmWeld(pmodel,0); 
    if (!pmodel) exit(0);
    glmUnitize(pmodel);
    glmFacetNormals(pmodel);
    glmVertexNormals(pmodel, 90.0);
}

Draw()
{
//-----------------------------------------------------------
    glEnable(GL_LIGHTING);

    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHT1);

    GLfloat light_diffuse[] = {0.1f, 0.1f, 0.1f, 0.1f};    
    GLfloat light_position0[] = { 15.0f, 25.0f, 5.0f, 15.0f };
    GLfloat light_position1[] = { -15.0f, -25.0f, 15.0f, 15.0f };
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position0);
    glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse);
    glLightfv(GL_LIGHT1, GL_POSITION, light_position1);
    
    glEnable (GL_DEPTH_TEST);
    glEnable (GL_COLOR_MATERIAL);

//------------------------------------------------------------
//------------------------------------------------------------

    
    

    glPushMatrix();
    glDisable(GL_TEXTURE_2D);

    glScalef(0.4,0.4,0.4);
    glTranslatef(0.0,0.29,0.0);
    glRotatef(0.0, 0.0 ,1.0, 0.0);
    
    glmDraw(pmodel, GLM_SMOOTH|GLM_MATERIAL|GLM_COLOR);
    
    glEnable(GL_TEXTURE_2D);        
    glPopMatrix();

//--------------------------------------------------------------
    
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.