glMaterial: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (→Hinweise) |
Flash (Diskussion | Beiträge) (→Beschreibung: CopyPaste Fehler bei den Standardwerten behoben) |
||
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glMaterial = | = glMaterial = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glMaterial''' - spezifiziert Materialeigenschaften für das Beleuchtungsmodel | '''glMaterial''' - spezifiziert Materialeigenschaften für das Beleuchtungsmodel | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glMaterialf'''(''face'': TGLenum; ''pname'': TGLenum; ''param'': TGLfloat); | procedure '''glMaterialf'''(''face'': TGLenum; ''pname'': TGLenum; ''param'': TGLfloat); | ||
Zeile 28: | Zeile 30: | ||
</table> | </table> | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
Zeile 34: | Zeile 37: | ||
procedure '''glMaterialiv'''(''face'': TGLenum; ''pname'': TGLenum; const ''params'': PGLint); | procedure '''glMaterialiv'''(''face'': TGLenum; ''pname'': TGLenum; const ''params'': PGLint); | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
<table border=1 rules=all> | <table border=1 rules=all> | ||
Zeile 53: | Zeile 57: | ||
</table> | </table> | ||
− | + | ||
+ | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 71: | Zeile 76: | ||
: Fließkommazahlen werden unverändert übernommen. | : Fließkommazahlen werden unverändert übernommen. | ||
: Weder Ganz- noch Fließkommazahlen sind beschränkt. | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
− | : Der '''Vorgabewert''' für die ambiente | + | : Der '''Vorgabewert''' für die ambiente Reflexion von Vorder- und Rückseiten ist '''(0.2, 0.2, 0.2, 1.0)'''. |
'''GL_DIFFUSE''' | '''GL_DIFFUSE''' | ||
Zeile 78: | Zeile 83: | ||
: Fließkommazahlen werden unverändert übernommen. | : Fließkommazahlen werden unverändert übernommen. | ||
: Weder Ganz- noch Fließkommazahlen sind beschränkt. | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
− | : Der '''Vorgabewert''' für die | + | : Der '''Vorgabewert''' für die diffuse Reflexion von Vorder- und Rückseiten ist '''(0.8, 0.8, 0.8, 1.0)'''. |
'''GL_SPECULAR''' | '''GL_SPECULAR''' | ||
Zeile 85: | Zeile 90: | ||
: Fließkommazahlen werden unverändert übernommen. | : Fließkommazahlen werden unverändert übernommen. | ||
: Weder Ganz- noch Fließkommazahlen sind beschränkt. | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
− | : Der '''Vorgabewert''' für die | + | : Der '''Vorgabewert''' für die Glanzlicht-Reflexion von Vorder- und Rückseiten ist '''(0.0, 0.0, 0.0, 1.0)'''. |
'''GL_EMISSION''' | '''GL_EMISSION''' | ||
Zeile 92: | Zeile 97: | ||
: Fließkommazahlen werden unverändert übernommen. | : Fließkommazahlen werden unverändert übernommen. | ||
: Weder Ganz- noch Fließkommazahlen sind beschränkt. | : Weder Ganz- noch Fließkommazahlen sind beschränkt. | ||
− | : Der '''Vorgabewert''' für die | + | : 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''' | '''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 107: | Zeile 112: | ||
: 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 == | ||
+ | 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 == | == Fehlermeldungen == | ||
Zeile 123: | Zeile 125: | ||
'''GL_INVALID_VALUE''' wird generiert wenn dem Glanzexponent (Specular Exponent) ein Wert außerhalb des gültigen Intervalls [0,128] zugewiesen 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 == | == Zugehörige Wertrückgaben == | ||
[[glGetMaterial]] | [[glGetMaterial]] | ||
− | + | ||
+ | |||
== Siehe auch == | == Siehe auch == | ||
Zeile 135: | Zeile 139: | ||
[[Kategorie:GL|Material]] | [[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