MASM32 и OpenGL
Это не так сложно, как на самом деле

Куб

Приведенная функция строит куб со сплошными гранями белого цвета:

; #########################################################################
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. В примере для наглядности добавлено вращение, куб можно рассмотреть со всех сторон.

Пример работы программы:

Скачать исходники и ехе-файл.

©   Короленко М.В., 2011       
Перепечатка материалов возможна только после согласования с автором при условии обязательной ссылки на сайт