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:
Home