Nybörjarguide till OpenGL: Bygg din egen CAD-program (8 / 14 steg)
Steg 8: Bygga: Rita en kub
Mekanik för att skapa en kub i OpenGL (kub i detta fall):
OpenGL har följande primitiva typer
Källa: www.glprogramming.com,
Bildkälla:
Dess en ganska bra hänvisning webbplats.
Låt inte detta skrämma dig, vi kommer bara att använda GL_QUADS för vår super kub.
I spel och de flesta program, dessa primitiver används sällan direkt, i stället modeller från 3: e part CAD programvara som Autodesk Maya, mixer, 3DS Max importeras och användas i stället (Tänk bygga en 1000 poly karaktär av koden). Denna lista beskriver bara den OpenGL-standarden för primitiver.
1) steg 1: berätta OpenGL vad du håller på att göra. Använd glBegin(GL_QUADS); ange startpunkten för din konstruktion och glEnd(); för slutpunkten för konstruktion.
I den första raden (1) , kommer GL_COLOR_MATERIAL att krävas senare men inte nödvändigt just nu,
den andra raden (1) GL_CULL_FACE om aktiverat förhindrar ytor som inte är synligt från ritningen. Detta är bra eftersom det minskar belastningen på Processorn och förbättrar applikationer prestanda.
den tredje linjen (2) markerar början för att göra våra kub. betrakta följande utdrag
START
glVertex3f (1.0f, 1.0f, -1.0f);
RITA
Detta skulle dra ett formhörn (punkt) för QUAD. men vi behöver inte det, så vi drar tre andra hörn för att slutföra ett ansikte
START
glVertex3f (1.0f, 1.0f, -1.0f);
glVertex3f (- 1.0f, 1.0f, - 1.0f);
glVertex3f (-1.0f, 1.0f, 1.0f);
glVertex3f (1.0f, 1.0f, 1.0f);
RITA
Nu skulle detta ge oss en plan yta. Men med ingen färg, så låt oss lägga till lite färg.
Vi förknippar en unik färg med varje hörn och som standard, färger från varje hörn kommer smälter fint med varandra.
START
glColor3f (0.583f, 0.771f, 0.014f);
glVertex3f (1.0f, 1.0f, -1.0f),
glColor3f (0.609f, 0.115f, 0.436f);
glVertex3f (- 1.0f, 1.0f, - 1.0f),
glColor3f (0.327f, 0.483f, 0.844f);
glVertex3f (-1.0f, 1.0f, 1.0f),
glColor3f (0.822f, 0.569f, 0.201f);
glVertex3f (1.0f, 1.0f, 1.0f),
RITA
Nedan följer den fullständiga koden för kuben
Koden är mycket lång, men du har bara att skriva det en gång i din ansökan.
Nästa kalla cube() i din drawScene() metoder:
Och köra koden och du bör få följande utdata:
Vad är detta?!?! är det något fel med vår kod? Nej.
Du se koden är bra, det är att kuben är i mitten av X, Y och Z-axlarna och så är vår kamera eller viewport(s) så ser vi en zoomad med tanke på våra kub.
I nästa steg kommer vi att manipulera kuben.