нужна помощь с ОpenGL (перекрывание объектов в пространстве)

Strimer 30.04.2004 - 08:32 | При расположении объектов в пространстве и их вращении идет неправильное их перекрывание друг другом, т.е. объект координакты которого удалены закрывает объект координаты которого гораздо ближе. это одна из первых моих программ на OpenGL, поэтому возможно я не все включил при инециализации, не пойму... текст программы http://www.grifson.nm.ru/Text.txt архив программы (650 Кб) www.grifson.nm.ru/program.rar
xaka 1 - 30.04.2004 - 13:00 | Можа я слепой, но попробуй после glEnable(GL_DEPTH_TEST) написать glDepthClear(1.0f); а также glClearColor(0.0, 0.0, 0.0, 1.0);
xaka 2 - 30.04.2004 - 13:01 | СОРРИ: не glDepthClear, а glClearDepth
Strimer 3 - 30.04.2004 - 14:30 | нет ожидаемого результата... :( причем 1,2,3,4,5 планеты нормально друг с другом взаимодействуют, а солнце+остальные просто никак... не пойму почему...
Strimer 4 - 30.04.2004 - 20:00 | может кто-нить поможет? оч. надо это дипломная работа, а с какой стороны подойти к проблеме не знаю... :(
Kolobrod 5 - 08.05.2004 - 01:15 | Всунуть нада вотето тебе: .. glDepthFunc (GL_LEQUAL); glClearDepth (1.0f); glEnable (GL_DEPTH_TEST); ... Пример: #inсludе "..\App\Main.h" GLfloat angle; GLUquadricObj *sphere; GLfloat lightpos[4] = {100.f,100.f,100.f,1.f}; BOOL Initialize() { angle = 0.0f; glClearColor (0.1f, 0.2f, 0.3f, 0.5f); glClearDepth (1.0f); glDepthFunc (GL_LEQUAL); glEnable (GL_DEPTH_TEST); glShadeModel (GL_SMOOTH); glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glEnable(GL_COLOR_MATERIAL); glLightfv(GL_LIGHT0, GL_POSITION, lightpos); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); sphere = gluNewQuadric(); return TRUE; } void Deinitialize (void) { gluDeleteQuadric(sphere); } void Update (DWORD milliseconds) { if (Key(VK_ESCAPE) == TRUE) { CloseApp(); } if (Key(VK_LEFT) == TRUE) { angle -= (float)(milliseconds) / 5.0f; } if (Key(VK_RIGHT) == TRUE) { angle += (float)(milliseconds) / 5.0f; } } void Draw (void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity (); gluLookAt(40,20,40,0,0,0,0,1,0); glPushMatrix(); glRotatef (angle, 0.0f, 1.0f, 0.0f); glTranslatef(0.f, 0.f, 0.f); glColor3f (1.f, 0.f, 0.f); gluSphere(sphere, 3.0f, 20, 20); glPopMatrix(); glPushMatrix(); glRotatef (angle*2, 0.0f, 1.0f, 0.0f); glTranslatef(5.f, 0.f, 0.f); glColor3f (0.8f, 0.4f, 0.f); gluSphere(sphere, 1.5f, 20, 20); glPopMatrix(); glPushMatrix(); glRotatef (angle/1.5, 0.0f, 1.0f, 0.0f); glTranslatef(9.f, 0.f, 0.f); glColor3f (0.7f, 0.7f, 0.3f); gluSphere(sphere, 1.9f, 20, 20); glPopMatrix(); glPushMatrix(); glRotatef (angle/2, 0.0f, 1.0f, 0.0f); glTranslatef(15.f, 0.f, 0.f); glColor3f (0.4f, 0.6f, 1.f); gluSphere(sphere, 1.6f, 20, 20); glPushMatrix(); glRotatef (35, 0.0f, 0.0f, 1.0f); glRotatef (-angle*2, 0.0f, 1.0f, 0.0f); glTranslatef(3.4f, 0.f, 0.f); glColor3f (0.6f, 0.6f, 0.8f); gluSphere(sphere, 0.7f, 20, 20); glPopMatrix(); glPopMatrix(); glFlush (); } если надо вышлю полностью прогу... сия
Sabrian 6 - 08.05.2004 - 14:07 | Возможно я и не прав (не видел исходника), но проверь глубину (битность) Z-Буффера и расстояние от объектов до плоскостей отсечения, возможно буффер слишком мелок.

>>