gluNurbsProperty: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Trennlinien entfernt)
K (Bot: konvertiere/korrigiere <BR>)
 
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= gluNurbsProperty =
 
= gluNurbsProperty =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''gluNurbsProperty''' - setzt eine Eigenschaft eines NURBS-Objekts.
 
'''gluNurbsProperty''' - setzt eine Eigenschaft eines NURBS-Objekts.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  '''procedure''' gluNurbsProperty(''nobj'': PGLUnurbs; ''aproperty'': TGLEnum; ''value'': TGLfloat);
 
  '''procedure''' gluNurbsProperty(''nobj'': PGLUnurbs; ''aproperty'': TGLEnum; ''value'': TGLfloat);
  
<br>
+
 
 +
 
 
== Parameter ==
 
== Parameter ==
 
<table border=1 rules=all>
 
<table border=1 rules=all>
Zeile 29: Zeile 32:
 
</table>
 
</table>
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
Zeile 51: Zeile 55:
  
 
'''GLU_CULLING'''
 
'''GLU_CULLING'''
: ''---''
+
: ''value'' ist ein Boolean wert der, wenn auf '''GL_TRUE''' gesetzt, angibt, dass [[NURBS]] Kurven bereits vor der [[Tesselierung]] verworfen werden können, wenn die Kontrollpunkte außerhalb des momentanen [[Viewport]]s liegen.
 +
 
 +
: Der Vorgabewert ist '''GL_FALSE''' (weil eine NURBS-Kurve nicht komplett innerhalb der konvexen Hülle (festgelegt durch die Kontrollpunkte) liegen kann).
  
 
'''GLU_PARAMETRIC_TOLERANCE'''
 
'''GLU_PARAMETRIC_TOLERANCE'''
Zeile 62: Zeile 68:
 
: '''GLU_SAMPLING_METHOD''' kann drei Werte annehmen:
 
: '''GLU_SAMPLING_METHOD''' kann drei Werte annehmen:
 
: '''GLU_PATH_LENGHT'''
 
: '''GLU_PATH_LENGHT'''
:: ''---''
+
:: Legt fest, dass die Flächen, die mit der maximalen Länge - angegeben in Pixeln, gemessen ab den Ecken der tessellierten Polygonen - gerendert wurden, nicht größer als der Wert sind, der durch '''GLU_PARAMETRIC_TOLERANCE''' angegeben ist.
 
: '''GLU_PARAMETRIC_ERROR'''
 
: '''GLU_PARAMETRIC_ERROR'''
:: ''---''
+
:: Legt fest, dass die Fläche mit dem Wert von '''GLU_PARAMETRIC_TOLERANCE''' gerendert wird. Diese Konstante gibt die maximale Distanz, in Pixel gerechnet, zwischen den tessellierten Polygonen und den entsprechenden Flächen an.
 
: '''GLU_DOMAIN_DISTANCE'''
 
: '''GLU_DOMAIN_DISTANCE'''
:: ''---''
+
:: Gibt an, wie viele Punkte in den u und v-Richtungen angenommen werden. Die Angabe erfolgt in Parametrischen-Koordinaten.
  
 
: Der Vorgabewert ist '''GLU_PATH_LENGTH'''.
 
: Der Vorgabewert ist '''GLU_PATH_LENGTH'''.
  
 
'''GLU_U_STEP'''
 
'''GLU_U_STEP'''
: ''---''
+
: Gibt die Anzahl der Punkte an, die in u-Richtung angenommen werden. Der Wert von '''GLU_U_STEP''' wird verwendet, wennn '''GLU_SAMPLING_METHOD''' auf '''GLU_DOMAIN_DISTANCE''' gesetzt wird. Der Standard-Wert ist 100.
  
 
'''GLU_V_STEP'''
 
'''GLU_V_STEP'''
: ''---''
+
: Gibt die Anzahl der Punkte an, die in v-Richtung angenommen werden. Der Wert von '''GLU_V_STEP''' wird verwendet, wennn '''GLU_SAMPLING_METHOD''' auf '''GLU_DOMAIN_DISTANCE''' gesetzt wird. Der Standard-Wert ist 100.
  
 
'''GLU_AUTO_LOAD_MATRIX'''
 
'''GLU_AUTO_LOAD_MATRIX'''
Zeile 86: Zeile 92:
 
: Vorgabewert ist '''GL_TRUE'''.
 
: Vorgabewert ist '''GL_TRUE'''.
  
<br>
+
 
 +
 
 +
 
 
== Hinweise ==
 
== Hinweise ==
 
Die folgenden Parameter für ''aproperty'' werden erst ab GLU Version 1.1 oder später unterstützt:
 
Die folgenden Parameter für ''aproperty'' werden erst ab GLU Version 1.1 oder später unterstützt:
Zeile 98: Zeile 106:
 
'''GLU_PATH_LENGTH''', '''GLU_PARAMETRIC_ERROR''', '''GLU_DOMAIN_DISTANCE'''  
 
'''GLU_PATH_LENGTH''', '''GLU_PARAMETRIC_ERROR''', '''GLU_DOMAIN_DISTANCE'''  
  
<br>
+
 
 +
 
 
== Siehe auch ==
 
== Siehe auch ==
 
[[gluGetNurbsProperty]], [[gluGetString]], [[gluLoadSamplingMatrices]],  
 
[[gluGetNurbsProperty]], [[gluGetString]], [[gluLoadSamplingMatrices]],  
Zeile 104: Zeile 113:
  
 
Hintergrundwissen: [[NURBS]]
 
Hintergrundwissen: [[NURBS]]
 +
 +
[[Kategorie:GLU|NurbsProperty]]

Aktuelle Version vom 22. April 2006, 19:26 Uhr

gluNurbsProperty

Name

gluNurbsProperty - setzt eine Eigenschaft eines NURBS-Objekts.


Delphi-Spezifikation

procedure gluNurbsProperty(nobj: PGLUnurbs; aproperty: TGLEnum; value: TGLfloat);


Parameter

nobj Das NURBS-Objekt dessen Eigenschaften verändert werden sollen. (Erstellt mit gluNewNurbsRenderer)
aproperty Gibt die Eigenschaft an, die geändert werden soll. Akzeptiert werden:
GLU_SAMPLING_TOLERANCE, GLU_DISPLAY_MODE, GLU_CULLING, GLU_AUTO_LOAD_MATRIX, GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD, GLU_U_STEP, und GLU_V_STEP
value Gibt den Wert an, auf den die Eigenschaft gesetzt werden soll.

value kann ein numerischer Wert oder einer der folgenden sein.

GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, oder GLU_DOMAIN_DISTANCE



Beschreibung

gluNurbsProperty wird benutzt um die Eigenschaften des NURBS-Objekts zu steuern. Diese Eigenschaften beeinflussen die Art und Weise wie die NURBS-Kurve gerendert wird.
Gültige Werte für property sind folgende:

GLU_SAMPLING_TOLERANCE

Gibt die maximale Länge in Pixeln an, die benutzt werden soll, wenn die Samplingmethode auf GLU_PATH_LENGHT gesetzt wurde.
Der Vorgabewert ist 50.0 Pixel.

GLU_DISPLAY_MODE

Der Parameter value definiert wie eine NURBS-Oberfläche gerendert werden soll.
value akzeptiert GLU_FILL, GLU_OUTLINE_POLYGON, oder GLU_OUTLINE_PATCH.
Bei GLU_FILL wird die Oberfläche als eine Menge von Polygonen gezeichnet.
GLU_OUTLINE_POLYGONE weißt die NURBS-Bibiothek an, nur die Umrandungen der Polygone (die bei der Tesselierung entstehen) zu zeichnen.
GLU_OUTLINE_PATCH sorgt dafür, dass nur die Umrandung der Abschnitte und Trimkurven (trim curves), die der Nutzer definiert hat, gezeichnet werden.
Vorgabewert ist GLU_FILL.

GLU_CULLING

value ist ein Boolean wert der, wenn auf GL_TRUE gesetzt, angibt, dass NURBS Kurven bereits vor der Tesselierung verworfen werden können, wenn die Kontrollpunkte außerhalb des momentanen Viewports liegen.
Der Vorgabewert ist GL_FALSE (weil eine NURBS-Kurve nicht komplett innerhalb der konvexen Hülle (festgelegt durch die Kontrollpunkte) liegen kann).

GLU_PARAMETRIC_TOLERANCE

Gibt den maximalen Abstand, in Pixeln, an, der benutzt werden soll wenn die Samplingmethode GLU_PARAMETRIC_ERROR ist.
Vorgabewert ist 0.5.

GLU_SAMPLING_METHOD

Gibt an wie ein NURBS-Objekt tesseliert werden soll.
GLU_SAMPLING_METHOD kann drei Werte annehmen:
GLU_PATH_LENGHT
Legt fest, dass die Flächen, die mit der maximalen Länge - angegeben in Pixeln, gemessen ab den Ecken der tessellierten Polygonen - gerendert wurden, nicht größer als der Wert sind, der durch GLU_PARAMETRIC_TOLERANCE angegeben ist.
GLU_PARAMETRIC_ERROR
Legt fest, dass die Fläche mit dem Wert von GLU_PARAMETRIC_TOLERANCE gerendert wird. Diese Konstante gibt die maximale Distanz, in Pixel gerechnet, zwischen den tessellierten Polygonen und den entsprechenden Flächen an.
GLU_DOMAIN_DISTANCE
Gibt an, wie viele Punkte in den u und v-Richtungen angenommen werden. Die Angabe erfolgt in Parametrischen-Koordinaten.
Der Vorgabewert ist GLU_PATH_LENGTH.

GLU_U_STEP

Gibt die Anzahl der Punkte an, die in u-Richtung angenommen werden. Der Wert von GLU_U_STEP wird verwendet, wennn GLU_SAMPLING_METHOD auf GLU_DOMAIN_DISTANCE gesetzt wird. Der Standard-Wert ist 100.

GLU_V_STEP

Gibt die Anzahl der Punkte an, die in v-Richtung angenommen werden. Der Wert von GLU_V_STEP wird verwendet, wennn GLU_SAMPLING_METHOD auf GLU_DOMAIN_DISTANCE gesetzt wird. Der Standard-Wert ist 100.

GLU_AUTO_LOAD_MATRIX

value ist ein Booleanwert mit folgender Bedeutung.
Wenn er GL_TRUE ist, lädt der NURBS-Code die Projektions- und Modelviewmatrix sowie den Viewport vom OpenGL Server um die Sampling- und Cullingmatrizen zu berechnen, die jede NURBS-Kurve benutzen soll, die gezeichnet wird.
Sampling- und Cullingmatrizen werden benötigt um die Tesselierung einer NURBS-Oberfläche in Linien oder Polygone, bzw. das Culling der NURBS-Oberfläche, wenn diese sich außerhalb des Viewport/ Sichtbereichs befindet, durchzuführen.
Wenn value GL_FALSE gesetzt wird, muss der User selbst die genannten Matrizen dem NURBS-Renderer zur verfügung stellen, damit dieser die Sampling- bzw. Cullingmatrizen konstruieren kann.
Dieses kann mit der gluLoadSamplingMatrices Funktion gemacht werden.
Eine Änderung von GL_TRUE auf GL_FALSE wirkt sich solange nicht auf die Sampling- bzw. Cullingmatrix aus, bis gluLoadSamplingMatrices aufgerufen wurde.
Vorgabewert ist GL_TRUE.



Hinweise

Die folgenden Parameter für aproperty werden erst ab GLU Version 1.1 oder später unterstützt:

GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD, GLU_U_STEP, und GLU_V_STEP

Die folgenden Parameter für value werden erst ab GLU Version 1.1 oder später unterstützt:

GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, GLU_DOMAIN_DISTANCE


Siehe auch

gluGetNurbsProperty, gluGetString, gluLoadSamplingMatrices, gluNewNurbsRenderer

Hintergrundwissen: NURBS