OpenGL v Delphi3



Kužel potažený texturou

Příklad a zdroják ke stažení (151k)



glNewList(Model,GL_COMPILE);
Tato funkce spolu s funkcí (glEndList) vytváří nebo nahrazují seznam příkazů. Tyto seznamy jsou skupiny GL příkazů, které jsou připravené pro následné spuštění. Všechny následující příkazy jsou uloženy do seznamu.
Model - specifikuje jméno daného seznamu. Musí to být kladné celé číslo. Slouží jako jednoznačná identifikace daného seznamu.
GL_COMPILE - specifikuje mód kompilace. V tomto případě jsou příkazy jen zkompilovány. Další hodnota je (GL_COMPILE_AND_EXECUTE) což znamená že příkazy jsou spouštěny, když jsou kompilovány do seznamu.

glEndList;
Konec seznamu.

LoadBitmap(Cesta + 'Image1.bmp');
Natažení bitmapy do seznamu.

glTexImage2d(GL_Texture_2D,0,3,Velikost,Velikost,0,GL_RGB,GL_Unsigned_byte,@buffer);
Funkce specifikuje vlastnosti dvourozměrné textury.
GL_Texture_2D - specifikuje cílovou texturu. Musí být vždy (GL_Texture_2D).
0 - specifikuje spupeň detailnosti zobrazení. 0 je základní hodnota. Čím větší hodnota, tím horší zobrazení.
3 - specifikuje číslo barevných součástí textury. Hodnoty musí být 1 (černobílá textura), 2 (černobílá textura zobrazená jen do půlky čtverce), 3 (barevná textura) nebo 4 (barevná textura).
Velikost - specifikuje šířku a výšku textury. Musí být 1,2,4,8,16,32,64,128,256 atd.
0 - specifikuje šířku ohraničení textury. Musí být 0 nebo 1.
GL_RGB - specifikuje pixelový formát. Další hodnoty jsou (GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA,, GL_RGBA, GL_LUMINANCE, GL_LUMINANCE_ALPHA).
GL_Unsigned_byte - specifikuje datový typ pixelu. Další hodnoty jsou (GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT)
@buffer - specifikuje ukazatel na texturová data v paměti.

plast := gluNewQuadric();
Funkce vytvoří nový objekt (plášť kužele).

zakl := gluNewQuadric();
Funkce vytvoří nový objekt (základnu kužele).

gluQuadricOrientation(qobj,GLU_OUTSIDE);
Vnější strana pláště odráží světlo.

gluQuadricOrientation(zakl,GLU_INSIDE);
Vnější strana základny odráží světlo.

gluQuadricTexture(plast, true);
Funkce otexturuje plášť.

gluQuadricTexture(zakl, true);
Funkce otexturuje základnu.

gluCylinder(plast, 1, 0, 2, 20, 5);
Funkce zobrazí plášť.
plast - definice objektu.
1 - poloměr dolní části kužele.
0 - poloměr horní části kužele.
2 - výška kužele.
20 - počet čtyřúhelníků na X souřadnici sítě, ze které se skládá plášť.
5 - počet čtyřúhelníků na Y souřadnici sítě, ze které se skládá plášť.

gluDisk(zakl, 0, 1, 20, 1);
Funkce zobrazí základnu.
zakl - definice objektu.
0 - velikost poloměru vnitřní kružnice.
1 - velikost poloměru vnější kružnice.
20 - počet čtyřúhelníků na X souřadnici sítě, ze které se skládá základna.
1 - počet čtyřúhelníků na Y souřadnici sítě, ze které se skládá základna.




Další funkce jsou stejné jako v kapitole Čtverec s texturou.

Příklad:


Kužel bez textury Válec s průhlednou texturou
Home