glMaterial: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (Bot: konvertiere/korrigiere <BR>) |
Flash (Diskussion | Beiträge) K (→Beschreibung) |
||
Zeile 100: | Zeile 100: | ||
'''GL_SHININESS''' | '''GL_SHININESS''' | ||
− | : ''params'' enthält eine einzelne Ganz- oder Fließkommazahl welche den Glanzlichtexponent repräsentieren. (Specular Exponent) | + | : ''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. | : Ganz- und Fließkommazahlen werden unverändert übernommen. | ||
: Es werden nur Werte aus dem Intervall [0, 128] akzeptiert. | : Es werden nur Werte aus dem Intervall [0, 128] akzeptiert. | ||
Zeile 111: | Zeile 111: | ||
: ''params'' enthält 3 Ganz- oder Fließkommazahlen die den Farbindex für den ambienten, diffusen und den Glanzlichtanteil darstellen. | : ''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. | : 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 == | == Hinweise == |
Version vom 29. August 2006, 15:53 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 Reflektion 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 ambiente Reflektion 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 ambiente Reflektion 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 ambiente Reflektion 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 Reflektionskoefizienten 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