[ Pobierz całość w formacie PDF ]
.Funkcje z przyrostkiem v wymagaj¹ podania wskaŸnikado tablicy zawieraj¹cej poszczególne komponenty.Ka¿dy element tej tablicy musibyæ tego samego typu.Gdy nie jest podawany komponent alfa, jego wartoœædomyœlnie ustawia siê na 1,0.Gdy u¿ywane s¹ funkcje, które nie korzy staj¹ zargumentów zmiennoprzecinkowych, zakres od zera do najwy¿szej wartoœcireprezentowanej przez dany typ jest odwzorowywany w zmiennoprzecinkowy zakresod 0,0 do l ,0.Parametry red green blue alphaOkreœla intensywnoœæ czerwonej barwy sk³adowej.Okreœla intensywnoœæ zielonejbarwy sk³adowej.Okreœla intensywnoœæ niebieskiej barwy sk³adowej.Okreœla intensywnoœæ sk³adowej alfa.U¿ywany tylko w wersjach funkcjiwymagaj¹cych podania czterech argumentów.WskaŸnik do tablicy zawieraj¹cej czerwon¹, zielon¹ i niebiesk¹ wartoœæsk³adowej, a byæ mo¿e tak¿e wartoœæ alfa.265Rozdzia³ 8.» Kolory i cieniowanieZwracana wartoœæ BrakPrzyk³adPatrz tak¿ePoni¿szy kod pochodzi z przyk³adu CCUBE w tym rozdziale.Nadaje jednemu zwierzcho³ków kostki kolorów kolor bia³y.// Przednia œciana glBegin(GL_POLYGON>;// Bia³yglColor3ub((GLubyte)255, (GLubyte)255, (GLubyte)255);glVertex3f(50.Of, 50.Of, 50.Of);gllndexglColorMaskPrzeznaczenie Plik nag³Ã³wkowy Sk³adniaOpisW³¹cza lub wy³¹cza modyfikacje sk³adowych koloru w buforach koloru.void glColorMask(GLboolean bRed, GLboolean bGreen, GLboolean bBlue, GLbooleanbAlpha);Ta funkcja umo¿liwia okreœlenie, które sk³adowe koloru w buforze koloru bêd¹mog³y byæ modyfikowane (domyœlnie wszystkie mog¹ byæ modyfikowane).Naprzyk³ad, ustawienie parametru bAlpha na GL_FALSE blokuje wszystkie zmiany wsk³adowej alfa bufora koloru okna.Parametry bRed bGreen bBlue bAlphaZwracana wartoœæ» ,Przyk³ad Patrz tak¿eGLboolean: Okreœla, czy sk³adowa czerwona mo¿e byæ modyfikowana.GLboolean:Okreœla, czy sk³adowa zielona mo¿e byæ modyfikowana.GLboolean: Okreœla, czysk³adowa niebieska mo¿e byæ modyfikowana.GLboolean: Okreœla, czy sk³adowa alfamo¿e byæ modyfikowana.BrakPrzyk³adowy program MASK na p³ytce CD-ROM, w folderze tego rozdzia³u.glColor, gllndex, gl!ndexMask, glDepthMask, glStencilMaskgllndexPrzeznaczenie Plik nag³Ã³wkowy Sk³adniaUstala bie¿¹cy indeks koloru dla rysowanych wierzcho³ków.void gl!ndexd(GLdouble c); void glIndexf(GLfloat c); void gl!ndexi(GLint c);266Czêœæ II » U¿ywanie OpenGLOpisParametryZwracana wartoœæ Przyk³advoid glIndexs(GLshort c); void gllndexdv(const GLdouble *c); voidgllndexfv(const GLfloat *c); void gilndexiv(const GLint *c); voidgllndexsv(const GLshort *c);Ta funkcja zmienia bie¿¹cy indeks koloru na indeks okreœlony przez c.Wewnêtrznie indeks koloru jest przechowywany jako liczba zmiennopozycyjna.Nowy indeks koloru, który zostanie u¿yty w nastêpnych poleceniach.WskaŸnik do nowego indeksu koloru, który zostanie u¿yty w nastêpnychpoleceniach.BrakPrzyk³adowy program INDEX w tym rozdziale rysuje g³adko cieniowany trójk¹t.Górny wierzcho³ek trójk¹ta otrzymuje kolor o indeksie O, ustawionym na czerñ,zaœ dolne wierzcho³ki otrzymuj¹ kolor o indeksie 255, ustawiony na jaskraw¹czerwieñ.(czarny)// Rysowanie trójk¹ta glBegin(GL_TRIANGLES);// Najciemniejszy czerwony wierzcho³ekgllndexi(0);glVertex3f(O.Of,200.0f,O.Of);// Najjaœniejsze czerwone dolne wierzcho³ki gllndexi(255);glVertex3f(200.0f,-70.0f,O.Of); glVertex3f(-200.Of, -70.Of, O.Of); glEnd();glColorPatrz tak¿egllndexMaskPrzeznaczeniePlik nag³Ã³wkowySk³adniaOpisMaskuje bity bufora indeksów kolorów, które w trybie indeksu kolorów mog¹ byæmodyfikowane.void gl!ndexMask(GLuint mask);Ta funkcja umo¿liwia zamaskowanie poszczególnych bitów w buforze indeksówkolorów.Gdy bit maski jest ustawiony, odpowiedni bit indeksu mo¿e byæmodyfikowany.Gdy bit maski jest wyzerowany, odpowiedni bit indeksu nie mo¿ebyæ modyfikowany, czyli jest zabezpieczony przed zmian¹ w wyniku operacjirysunkowych.Ta funkcja ma zastosowanie jedynie w trybie indeksu koloru.267Rozdzia³ 8.+ Kolory i cieniowanieParametry maskGLuint: Okreœla binarn¹ maskê bitow¹, w³¹czaj¹c¹ lub wy³¹czaj¹c¹ zapisposzczególnych bitów w buforze indeksów koloru.Zwracana wartoœæ Brak Przyk³adPrzyk³adowy program MASK na p³ytce CD-ROM, w folderze tego rozdzia³u.gllndex, glDepthMask, glStencilMaskPatrz tak¿egILogicOpPrzeznaczenie Plik nag³Ã³wkowy Sk³adnia OpisUstala logiczn¹ operacjê na pikselach w trybie indeksu koloru.void glLogicOp(GLenum opcode);Logiczna operacja na pikselach okreœla sposób ³¹czenia wartoœci pikseli.Gdyzamiast piksela jest wpisywana nowa wartoœæ indeksu koloru (rysowany jest nowypunkt), jest on ³¹czony logicznie z bie¿¹cym indeksem koloru ju¿ istniej¹cegopiksela.Aby w³¹czyæ operacje logiczne na kolorze pikseli, wywo³aj funkcjêglEnable(GL_LOGIC_OP).Aby je wy³¹czyæ, wywo³aj glDisable(GL_LOGIC_OP).Gdy s¹w³¹czone logiczne operacje na indeksach kolorów pikseli, nowe wartoœci pikselis¹ ³¹czone logicznie z wartoœciami indeksu pikseli ju¿ istniej¹cych; sam¹ zaœoperacjê logiczn¹ okreœla parametr opcode.Gdy operacje logiczne nie s¹w³¹czone, efekt rysowania pikseli jest taki, jakby wybrana by³a operacjaGL_COPY, czyli zwyk³e rysowanie.Logiczne operacje na indeksach pikseli nie s¹obs³ugiwane w trybie koloru RGBA.Parametry opcodeZwracana wartoœæ Przyk³adPatrz tak¿eGLenum: Okreœla rodzaj operacji logicznej wykonywanej na wartoœciach indeksówkoloru pikseli.Dozwolone s¹ wartoœci z tabeli 8.2.Ta tabela zawiera listêoperacji logicznych oraz wzorów okreœlaj¹cych ich dzia³anie, gdzie sreprezentuje wartoœæ indeksu koloru piksela Ÿród³owego (istniej¹cego), zaœ dreprezentuj e wartoœæ indeksu koloru piksela docelowego (rysowanego).BrakPrzyk³adowy program FLASHER na p³ytce CD-ROM.W tym przyk³adzie zastosowanooperacjê logiczn¹ GL_XOR w celu stworzenia p³ynnej animacji bez podwójnegobuforowania.glGet, gllsEnabled, glEnable, glDisable268Czêœæ II » U¿ywanie OpenGLTabela 8.2.Operacje logiczne na pikselachOpcodeWynikGL_CLEARGL_SET1GL_COPYsGL_COPY_INVERTED!sGL_NOOPdGLJNYERT!dGL_ANDs&dGLJMAND!(s & d)GL_ORs|dGL_NOR!(s | d)GL_XORsAdGL_EQUIW!(s A d)GL_AND_REVERSEs&!dGL_AND_INVERTED!s&dGL_OR_REVERSEs|!dGL_OR_INVERTED!s|dgIShadeModelPrzeznaczenie Plik nag³Ã³wkowy Sk³adnia OpisUstala domyœlny tryb cieniowania p³aski lub g³adki.void glShadeModel(GLenum modê);Prymitywy OpenGL s¹ zawsze cieniowane, jednak model cieniowania mo¿e byæ p³aski(GL_FLAT) lub g³adki (GL_SMOOTH).W najprostszym scenariuszu, przednarysowaniem prymitywu jest ustawiany pojedynczy kolor funkcj¹ glColor().Takiprymityw ma jednolity, niezmienny kolor, bez wzglêdu na cieniowanie [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • listy-do-eda.opx.pl