Куб
Приведенная функция строит куб со сплошными гранями белого цвета:
; #########################################################################
SolidBox PROC ListNumber:DWORD
invoke glNewList,ListNumber,GL_COMPILE_AND_EXECUTE
invoke glBegin,GL_QUADS
top(Top1)
top(Top2)
top(Top3)
top(Top4)
invoke glEnd
invoke glBegin,GL_QUADS
top(Top1)
top(Top4)
top(Top8)
top(Top5)
invoke glEnd
invoke glBegin,GL_QUADS
top(Top5)
top(Top6)
top(Top2)
top(Top1)
invoke glEnd
invoke glBegin,GL_QUADS
top(Top5)
top(Top6)
top(Top7)
top(Top8)
invoke glEnd
invoke glBegin,GL_QUADS
top(Top8)
top(Top4)
top(Top3)
top(Top7)
invoke glEnd
invoke glBegin,GL_QUADS
top(Top2)
top(Top3)
top(Top7)
top(Top6)
invoke glEnd
invoke glEndList
ret
SolidBox ENDP
; ########################################################################
Прототип функции:
SolidBox PROTO :DWORD
В секции данных необходимо определить координаты вершин куба:
Top1 dd 0.0,0.0,0.0
Top2 dd 1.0,0.0,0.0
Top3 dd 1.0,1.0,0.0
Top4 dd 0.0,1.0,0.0
Top5 dd 0.0,0.0,1.0
Top6 dd 1.0,0.0,1.0
Top7 dd 1.0,1.0,1.0
Top8 dd 0.0,1.0,1.0
Проволочный куб строится такой же функцией, только добавляется к каждой грани по исходной вершине, т.е. 1-2-3-4-1 вместо 1-2-3-4 для сплошной грани, а glBegin,GL_QUADS заменяется на glBegin,GL_LINE_STRIP. В примере для наглядности добавлено вращение, куб можно рассмотреть со всех сторон.
Пример работы программы: