Stap 8: De bouw: tekening van een kubus
Mechanica van het creëren van een kubus in OpenGL (kubus in dit geval):
OpenGL is de volgende primitieve typen
Bron: www.glprogramming.com,
Afbeeldingsbron:
Zijn een vrij goede referentie-website.
Laat dit schrikken u niet, we zullen alleen GL_QUADS gebruiken voor onze super kubus.
In games en de meeste toepassingen, deze primitieven zelden direct worden gebruikt, in plaats daarvan, modellen van 3rd party CAD software van Autodesk Maya, Blender, 3DS Max zijn geïmporteerd en in plaats daarvan gebruikt zoals (stel je voor het bouwen van een 1000 poly karakter door code). Deze lijst beschrijft enkel van de OpenGL-standaard voor primitieven.
1) stap 1: OpenGL vertellen wat je bent over te doen. met glBegin(GL_QUADS); geeft u het beginpunt van uw bouw- en glEnd(); voor het eindpunt van de bouw.
In de eerste regel van de (1) zullen GL_COLOR_MATERIAL later maar niet noodzakelijk vereist nu,
de tweede regel van de (1) GL_CULL_FACE als ingeschakeld wordt voorkomen dat oppervlakken die niet zichtbaar zijn van tekening. Dit is een goede zaak als het vermindert de belasting op de CPU en verbetert de prestaties van de toepassingen.
de derde lijn (2) markeert het begin voor het renderen van onze kubus. Overweeg het volgende fragment
START
glVertex3f (1.0f 1.0f, -1.0f);
LOTING
Dit zou het trekken van een hoekpunt (punt) voor de QUAD. maar dat hebben wij niet nodig, zodat we drie andere hoekpunten trekken Voltooi een gezicht
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);
LOTING
Nu geeft dit ons een vlakke ondergrond. Maar met geen kleur, dus laten we Voeg wat kleur.
We koppelen een unieke kleur met elk hoekpunt en standaard, kleuren van elk hoekpunt zal mengen mooi met elkaar.
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);
LOTING
Hieronder is de volledige code voor de kubus
De code is erg lang, maar u hoeft om dit te schrijven eenmaal in uw toepassing.
Vervolgens Bel cube() in uw drawScene()-methoden:
En uitvoeren van de code en moet u de volgende uitvoer:
Wat is dit?!?! is er iets mis met onze code? Nr.
U ziet dat de code is prima, dat het ding is dat de kubus in het midden van de X, Y is en Z-assen en dus is onze camera of het viewport(s) dus zien we een ingezoomd met het oog op onze kubus.
In de volgende stap, zullen we het manipuleren van de kubus.