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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неясность с удалением скрытых поверхностей, MS Visual C++ 2005, OpenGL v1.3 
:(
    Опции темы
Math7244
Дата 17.2.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

#include "stdafx.h"
#include "Sample.h"



// Drawing green square
void GreenSquare()
{
    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_QUADS);
        glVertex3f( 0.25,  0.25, -0.4);
        glVertex3f(-0.25,  0.25, -0.4);
        glVertex3f(-0.25, -0.25, -0.4);
        glVertex3f( 0.25, -0.25, -0.4); 
    glEnd();
}



// Drawing red square
void RedSquare()
{
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_QUADS);
        glVertex3f( 0.5,  0.5, -0.5);
        glVertex3f(-0.5,  0.5, -0.5);
        glVertex3f(-0.5, -0.5, -0.5);
        glVertex3f( 0.5, -0.5, -0.5); 
    glEnd();
}



// Making necessary preparations
void InitScene()
{
    glClearColor(0.0, 0.0, 1.0, 0.0);
}



// Displaying the scene
void OnDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glEnable(GL_DEPTH_TEST);
    GreenSquare();
    RedSquare();
    glDisable(GL_DEPTH_TEST);


    glFlush();
}



// Application entry point
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    glutInit(&nCmdShow, (char **) &lpCmdLine);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowSize(600, 600);
    glutInitWindowPosition(0, 0);
    glutCreateWindow("OpenGL/GLUT demonstration");
    InitScene();
    glutDisplayFunc(OnDisplay);
    glutMainLoop();

    return 0;
}

Ведь камера по умолчанию находится в центре координат и смотрит в сторону отрицательной оси Z.
И в тоже время из-за координаты Z зеленый квадрат лежит ближе к камере, чем красный. Значит он должен заслонять кусок красного квадрата. А на экране я вижу только лишь красный квадрат. Могли бы вы обьяснить в чем проблема? Спасибо.  smile 
PM MAIL ICQ   Вверх
HumanAPI
Дата 17.2.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Настрой матрицы проекции и вида.
Код

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45.0f, (GLfloat)rcCurrentWorkArea.right / 
        (GLfloat)rcCurrentWorkArea.bottom, 1.0f, 100.0f);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity(); 

 (взял из соседнего поста)

да не забывай  буфер переключать glutSwapBuffers();
PM MAIL   Вверх
Math7244
Дата 18.2.2008, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за помощь!  smile 

Это сообщение отредактировал(а) Math7244 - 20.2.2008, 17:42
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

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

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


 




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


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

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