![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Переделаю уж и первый пост
В общем есть проблема. Рисуются 2 объекта, потом есть потребность в изменении прозрачности этих объектов и возникает проблема, через 2-ой объект 1-ый виден, а наоборот нет. Все объекты это поверхности второго порядка, либо просто плоскости. Рисуются 4-угольниками с помощью glBegin(GL_QUADS), далее SwapBuffers(DC). Например: Код:
procedure PlosX(r1,r2,r3:GLFloat); ... Begin glBegin(GL_QUADS); ... if i:=-d to d-1 then begin y1:=...; y2:=...; z1:=...; z2:=...; x1:=...; x2:=...; x3:=...; x4:=...; glVertex3f( x1, y1, z1); glVertex3f( x4, y2, z1); glVertex3f( x2, y2, z2); glVertex3f( x3, y1, z2); end; glEnd; End; И в итоге получается: Код:
glColor4f(1,0,0,Blend1); PlosX(a1,b1,c1); glColor4f(0,1,0,Blend2); PlosX(a2,b2,c2); SwapBuffers(DC); Код:
glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(45.0, PanelGraph.Width/PanelGraph.Height, 0.1, 500); glMatrixMode(GL_MODELVIEW); glLoadIdentity; glClearColor(BackC.R, BackC.G, BackC.B, 1.0); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glShadeModel(GL_SMOOTH); glClearDepth(1.0); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glEnable(GL_COLOR_MATERIAL); glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, @ambient); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glEnable(GL_LINE_SMOOTH); glEnable(GL_POINT_SMOOTH); ![]() ![]() Последний раз редактировалось Gwaeron, 22.04.2010 в 15:34. |