glMaterial: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (Wird offline bearbeitet) |
Flash (Diskussion | Beiträge) (→Beschreibung: CopyPaste Fehler bei den Standardwerten behoben) |
||
(12 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | = | + | = glMaterial = |
− | = | + | |
+ | |||
+ | == Name == | ||
+ | '''glMaterial''' - spezifiziert Materialeigenschaften für das Beleuchtungsmodel | ||
+ | |||
+ | |||
+ | |||
+ | == Delphi-Spezifikation == | ||
+ | procedure '''glMaterialf'''(''face'': TGLenum; ''pname'': TGLenum; ''param'': TGLfloat); | ||
+ | procedure '''glMateriali'''(''face'': TGLenum; ''pname'': TGLenum; ''param'': TGLint); | ||
+ | |||
+ | <br> | ||
+ | == Parameter == | ||
+ | <table border=1 rules=all> | ||
+ | <tr> | ||
+ | <td>''face''</td> | ||
+ | <td>Bezeichnet die Seiten einer Fläche, die von den Eigenschaften betroffen sein sollen. Akzeptiert werden: <br> | ||
+ | '''GL_FRONT, GL_BACK''' und '''GL_FRONT_AND_BACK'''.</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>''pname''</td> | ||
+ | <td>Bezeichnet einen Wert der die Materialeigenschaft der Fläche(n) angibt, die geändert werden soll. Akzeptiert wird nur '''GL_SHININESS'''.</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>''param''</td> | ||
+ | <td>Ist ein einzelner Wert auf den '''GL_SHININESS''' gesetzt werden soll.</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Delphi-Spezifikation == | ||
+ | procedure '''glMaterialfv'''(''face'': TGLenum; ''pname'': TGLenum; const ''params'': PGLfloat); | ||
+ | procedure '''glMaterialiv'''(''face'': TGLenum; ''pname'': TGLenum; const ''params'': PGLint); | ||
+ | |||
+ | |||
+ | |||
+ | == Parameter == | ||
+ | <table border=1 rules=all> | ||
+ | <tr> | ||
+ | <td>''face''</td> | ||
+ | <td>Bezeichnet die Seiten einer Fläche, die von den Eigenschaften betroffen sein sollen. Akzeptiert werden: <br> | ||
+ | '''GL_FRONT, GL_BACK''' und '''GL_FRONT_AND_BACK'''.</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>''pname''</td> | ||
+ | <td>Bezeichnet die Materialeigenschaft der Fläche(n) die geändert werden soll. Akzeptiert werden: <br> | ||
+ | '''GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, GL_AMBIENT_AND_DIFFUSE,''' oder '''GL_COLOR_INDEXES'''.</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td>''params''</td> | ||
+ | <td>Ist ein Pointer auf einen oder mehrere Werte auf die ''pname'' gesetzt werden soll.</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Beschreibung == | ||
+ | '''glMaterial''' setzt die Werte von Materialeigenschaften. Es gibt zwei verschiedene Arten von Materialparametern. Die eine Art, die sogenannten Vorderseiten, ausgewiesen durch das Schlüsselwort '''GL_FRONT''', wird benutzt um Punkte, Linien, Bitmaps und alle Polygone (wenn doppelseitige Beleuchtung deaktiviert ist) oder nur die Vorderseiten aller Polygone (bei aktivierter doppelseitiger Beleuchtung) zu beeinflussen (to shade).<br> | ||
+ | Die andere Art, entsprechend Rückseiten genannt, wird benutzt um die Rückseiten der Polygone zu beleuchten. Dies wirkt sich nur bei aktivierter doppelseitiger Beleuchtung aus. Bei [[glLightModel]] finden Sie weitere Informationen zum Thema Ein- und Zweiseitige Lichtberechnungen. | ||
+ | |||
+ | '''glMaterial''' erwartet drei Parameter. <br> | ||
+ | Der erste, ''face'', gibt an ob nur die Materialeigenschaften der Vorderseiten ('''GL_FRONT'''), der Rückseiten ('''GL_BACK''') oder beider Seiten ('''GL_FRONT_AND_BACK''') verändert werden sollen. <br> | ||
+ | Der zweite Parameter, ''pname'', gibt an welche Eigenschaft einer oder beider Seiten genau verändert werden soll.<br> | ||
+ | Der dritte und letzte Parameter, ''params'', enthält den oder die Werte auf welche die ausgewählte Eigenschaft gesetzt werden soll. | ||
+ | |||
+ | Materialeigenschaften wirken sich auf die Lichtberechnung aus, die optional für jeden Vertex angewendet werden kann. Die Lichtberechnung wird ausführlich bei [[glLightModel]] behandelt. Die Parameter die mit '''glMaterial''' benutzt werden können und ihre Bedeutung sind folgende: | ||
+ | |||
+ | '''GL_AMBIENT''' | ||
+ | : ''params'' enthält vier ganzzahlige oder Fließkommawerte welche den ambienten RGBA Lichtanteil repräsentieren, der vom Material reflektiert wird. | ||
+ | : Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird. | ||
+ | : Fließkommazahlen werden unverändert übernommen. | ||
+ | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
+ | : Der '''Vorgabewert''' für die ambiente Reflexion von Vorder- und Rückseiten ist '''(0.2, 0.2, 0.2, 1.0)'''. | ||
+ | |||
+ | '''GL_DIFFUSE''' | ||
+ | : ''params'' enthält vier ganzzahlige oder Fließkommawerte welche den diffusen RGBA Lichtanteil repräsentieren, der vom Material reflektiert wird. | ||
+ | : Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird. | ||
+ | : Fließkommazahlen werden unverändert übernommen. | ||
+ | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
+ | : Der '''Vorgabewert''' für die diffuse Reflexion von Vorder- und Rückseiten ist '''(0.8, 0.8, 0.8, 1.0)'''. | ||
+ | |||
+ | '''GL_SPECULAR''' | ||
+ | : ''params'' enthält vier ganzzahlige oder Fließkommawerte welche den RGBA Glanzlichtanteil repräsentieren, der vom Material reflektiert wird. | ||
+ | : Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird. | ||
+ | : Fließkommazahlen werden unverändert übernommen. | ||
+ | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
+ | : Der '''Vorgabewert''' für die Glanzlicht-Reflexion von Vorder- und Rückseiten ist '''(0.0, 0.0, 0.0, 1.0)'''. | ||
+ | |||
+ | '''GL_EMISSION''' | ||
+ | : ''params'' enthält vier ganzzahlige oder Fließkommawerte welche den ausgestrahlten RGBA Lichtanteil repräsentieren, der vom Material ausgeht. | ||
+ | : Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird. | ||
+ | : Fließkommazahlen werden unverändert übernommen. | ||
+ | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
+ | : Der '''Vorgabewert''' für die Intensität des abgestrahlten Lichts von Vorder- und Rückseiten ist '''(0.0, 0.0, 0.0, 1.0)'''. | ||
+ | |||
+ | '''GL_SHININESS''' | ||
+ | : ''params'' enthält eine einzelne Ganz- oder Fließkommazahl welche den Glanzlichtexponent repräsentieren. (Specular Exponent) Je größer der Wert desto härter/glatter wirkt das Material. | ||
+ | : Ganz- und Fließkommazahlen werden unverändert übernommen. | ||
+ | : Es werden nur Werte aus dem Intervall [0, 128] akzeptiert. | ||
+ | : Der '''Vorgabewert''' für den Glanzlichtexponent von Vorder- und Rückseiten ist '''0'''. | ||
+ | |||
+ | '''GL_AMBIENT_AND_DIFFUSE''' | ||
+ | : Bewirkt das selbe wie zwei getrennte Aufrufe von '''glMaterial''' mit den Parametern '''GL_AMBIENT''' und '''GL_DIFFUSE'''. | ||
+ | |||
+ | '''GL_COLOR_INDEXES''' | ||
+ | : ''params'' enthält 3 Ganz- oder Fließkommazahlen die den Farbindex für den ambienten, diffusen und den Glanzlichtanteil darstellen. | ||
+ | : Diese drei Werte und '''GL_SHININESS''' sind die einzigen Materialeigenschaften die im Farbindex-Modus (siehe [[glIndex]]) in die Lichtberechnung einfließen. Unter [[glLightModel]] finden Sie nähere Informationen zur Lichtberechnung im Farbindex-Modus. | ||
+ | |||
+ | == Hinweise == | ||
+ | Materialeigenschaften können zu jedem Zeitpunkt geändert werden. Das heißt auch innerhalb eines [[glBegin]]-[[glEnd]] Blocks. Wenn nur eine einzelne Materialeigenschaft pro Vertex geändert werden soll, sollte [[glColorMaterial]] '''glMaterial''' vorgezogen werden. | ||
+ | |||
+ | |||
+ | Eine Sammlung gängiger Reflexionskoefizienten findet ihr unter [[Materialsammlung]]. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Fehlermeldungen == | ||
+ | '''GL_INVALID_ENUM''' wird generiert wenn ''face'' oder ''pname'' ein ungültiger Wert übergeben wurde. <br> | ||
+ | '''GL_INVALID_VALUE''' wird generiert wenn dem Glanzexponent (Specular Exponent) ein Wert außerhalb des gültigen Intervalls [0,128] zugewiesen wurde. | ||
+ | |||
+ | |||
+ | |||
+ | == Zugehörige Wertrückgaben == | ||
+ | [[glGetMaterial]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Siehe auch == | ||
+ | [[glColorMaterial]], [[glLight]], [[glLightModel]] | ||
+ | |||
+ | [[Materialsammlung]] | ||
+ | |||
+ | [[Kategorie:GL|Material]] | ||
+ | [[Kategorie:GL1.0]] |
Aktuelle Version vom 20. August 2014, 21:19 Uhr
Inhaltsverzeichnis
glMaterial
Name
glMaterial - spezifiziert Materialeigenschaften für das Beleuchtungsmodel
Delphi-Spezifikation
procedure glMaterialf(face: TGLenum; pname: TGLenum; param: TGLfloat); procedure glMateriali(face: TGLenum; pname: TGLenum; param: TGLint);
Parameter
face | Bezeichnet die Seiten einer Fläche, die von den Eigenschaften betroffen sein sollen. Akzeptiert werden: GL_FRONT, GL_BACK und GL_FRONT_AND_BACK. |
pname | Bezeichnet einen Wert der die Materialeigenschaft der Fläche(n) angibt, die geändert werden soll. Akzeptiert wird nur GL_SHININESS. |
param | Ist ein einzelner Wert auf den GL_SHININESS gesetzt werden soll. |
Delphi-Spezifikation
procedure glMaterialfv(face: TGLenum; pname: TGLenum; const params: PGLfloat); procedure glMaterialiv(face: TGLenum; pname: TGLenum; const params: PGLint);
Parameter
face | Bezeichnet die Seiten einer Fläche, die von den Eigenschaften betroffen sein sollen. Akzeptiert werden: GL_FRONT, GL_BACK und GL_FRONT_AND_BACK. |
pname | Bezeichnet die Materialeigenschaft der Fläche(n) die geändert werden soll. Akzeptiert werden: GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, GL_AMBIENT_AND_DIFFUSE, oder GL_COLOR_INDEXES. |
params | Ist ein Pointer auf einen oder mehrere Werte auf die pname gesetzt werden soll. |
Beschreibung
glMaterial setzt die Werte von Materialeigenschaften. Es gibt zwei verschiedene Arten von Materialparametern. Die eine Art, die sogenannten Vorderseiten, ausgewiesen durch das Schlüsselwort GL_FRONT, wird benutzt um Punkte, Linien, Bitmaps und alle Polygone (wenn doppelseitige Beleuchtung deaktiviert ist) oder nur die Vorderseiten aller Polygone (bei aktivierter doppelseitiger Beleuchtung) zu beeinflussen (to shade).
Die andere Art, entsprechend Rückseiten genannt, wird benutzt um die Rückseiten der Polygone zu beleuchten. Dies wirkt sich nur bei aktivierter doppelseitiger Beleuchtung aus. Bei glLightModel finden Sie weitere Informationen zum Thema Ein- und Zweiseitige Lichtberechnungen.
glMaterial erwartet drei Parameter.
Der erste, face, gibt an ob nur die Materialeigenschaften der Vorderseiten (GL_FRONT), der Rückseiten (GL_BACK) oder beider Seiten (GL_FRONT_AND_BACK) verändert werden sollen.
Der zweite Parameter, pname, gibt an welche Eigenschaft einer oder beider Seiten genau verändert werden soll.
Der dritte und letzte Parameter, params, enthält den oder die Werte auf welche die ausgewählte Eigenschaft gesetzt werden soll.
Materialeigenschaften wirken sich auf die Lichtberechnung aus, die optional für jeden Vertex angewendet werden kann. Die Lichtberechnung wird ausführlich bei glLightModel behandelt. Die Parameter die mit glMaterial benutzt werden können und ihre Bedeutung sind folgende:
GL_AMBIENT
- params enthält vier ganzzahlige oder Fließkommawerte welche den ambienten RGBA Lichtanteil repräsentieren, der vom Material reflektiert wird.
- Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.
- Fließkommazahlen werden unverändert übernommen.
- Weder Ganz- noch Fließkommazahlen sind beschränkt.
- Der Vorgabewert für die ambiente Reflexion von Vorder- und Rückseiten ist (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE
- params enthält vier ganzzahlige oder Fließkommawerte welche den diffusen RGBA Lichtanteil repräsentieren, der vom Material reflektiert wird.
- Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.
- Fließkommazahlen werden unverändert übernommen.
- Weder Ganz- noch Fließkommazahlen sind beschränkt.
- Der Vorgabewert für die diffuse Reflexion von Vorder- und Rückseiten ist (0.8, 0.8, 0.8, 1.0).
GL_SPECULAR
- params enthält vier ganzzahlige oder Fließkommawerte welche den RGBA Glanzlichtanteil repräsentieren, der vom Material reflektiert wird.
- Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.
- Fließkommazahlen werden unverändert übernommen.
- Weder Ganz- noch Fließkommazahlen sind beschränkt.
- Der Vorgabewert für die Glanzlicht-Reflexion von Vorder- und Rückseiten ist (0.0, 0.0, 0.0, 1.0).
GL_EMISSION
- params enthält vier ganzzahlige oder Fließkommawerte welche den ausgestrahlten RGBA Lichtanteil repräsentieren, der vom Material ausgeht.
- Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.
- Fließkommazahlen werden unverändert übernommen.
- Weder Ganz- noch Fließkommazahlen sind beschränkt.
- Der Vorgabewert für die Intensität des abgestrahlten Lichts von Vorder- und Rückseiten ist (0.0, 0.0, 0.0, 1.0).
GL_SHININESS
- params enthält eine einzelne Ganz- oder Fließkommazahl welche den Glanzlichtexponent repräsentieren. (Specular Exponent) Je größer der Wert desto härter/glatter wirkt das Material.
- Ganz- und Fließkommazahlen werden unverändert übernommen.
- Es werden nur Werte aus dem Intervall [0, 128] akzeptiert.
- Der Vorgabewert für den Glanzlichtexponent von Vorder- und Rückseiten ist 0.
GL_AMBIENT_AND_DIFFUSE
- Bewirkt das selbe wie zwei getrennte Aufrufe von glMaterial mit den Parametern GL_AMBIENT und GL_DIFFUSE.
GL_COLOR_INDEXES
- params enthält 3 Ganz- oder Fließkommazahlen die den Farbindex für den ambienten, diffusen und den Glanzlichtanteil darstellen.
- Diese drei Werte und GL_SHININESS sind die einzigen Materialeigenschaften die im Farbindex-Modus (siehe glIndex) in die Lichtberechnung einfließen. Unter glLightModel finden Sie nähere Informationen zur Lichtberechnung im Farbindex-Modus.
Hinweise
Materialeigenschaften können zu jedem Zeitpunkt geändert werden. Das heißt auch innerhalb eines glBegin-glEnd Blocks. Wenn nur eine einzelne Materialeigenschaft pro Vertex geändert werden soll, sollte glColorMaterial glMaterial vorgezogen werden.
Eine Sammlung gängiger Reflexionskoefizienten findet ihr unter Materialsammlung.
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn face oder pname ein ungültiger Wert übergeben wurde.
GL_INVALID_VALUE wird generiert wenn dem Glanzexponent (Specular Exponent) ein Wert außerhalb des gültigen Intervalls [0,128] zugewiesen wurde.
Zugehörige Wertrückgaben