gluNurbsProperty 函数

gluNurbsProperty 函数 (NURBS) 属性设置非统一理性 B 样条。

语法

void WINAPI gluNurbsProperty(
   GLUnurbs *nobj,
   GLenum   property,
   GLfloat  value
);

parameters

nobj

NURBS 对象 (使用 gluNewNurbsRenderer) 创建的。

property

要设置的属性。 以下为有效值:

Value 含义
GLU_SAMPLING_TOLERANCE
指定采样方法设置为 GLU_PATH_LENGTH 时要使用的最大长度(以像素为单位)。 默认值为 50.0 像素。
GLU_DISPLAY_MODE
参数定义 NURBS 图面的呈现方式。 可以将 设置为 GLU_FILL、GLU_OUTLINE_POLYGON 或 GLU_OUTLINE_PATCH。
GLU_FILL。 表面呈现为一组多边形。 这是默认值。
GLU_OUTLINE_POLYGON。 NURBS 库仅绘制通过分割创建的多边形的轮廓。
GLU_OUTLINE_PATCH。 仅绘制用户定义的补丁和剪裁曲线的轮廓。
GLU_CULLING
参数是布尔值。 当值设置为GL_TRUE时,控制点位于当前视区外部的 NURBS 曲线在分割之前将被丢弃。 默认值为GL_FALSE (,因为 NURBS 曲线不能完全落在其控制点) 的凸壳内。
GLU_AUTO_LOAD_MATRIX
参数是布尔值。 设置为 GL_TRUE 时,NURBS 代码从 OpenGL 服务器下载投影矩阵、模型视图矩阵和视区,以计算呈现的每个 NURBS 曲线的采样和剔除矩阵。 需要采样和剔除矩阵,以确定 NURBS 图面的分割线段或多边形,以及如果 NURBS 图面位于视区之外,则将其剔除。
如果此模式设置为GL_FALSE,则必须为 NURBS 呈现器提供投影矩阵、模型视图矩阵和视区,以用于构造采样和剔除矩阵。 可以使用 gluLoadSamplingMatrices 函数执行此操作。
此模式的默认值为 GL_TRUE。 在调用 gluLoadSamplingMatrices 之前,将此模式从 GL_TRUE 更改为GL_FALSE不会影响采样和剔除矩阵。
GLU 版本 1.1 或更高版本支持以下属性参数,不适用于 GLU 1.0 版本:GLU_PARAMETRIC_TOLERANCE、GLU_SAMPLING_METHOD、GLU_U_STEP和GLU_V_STEP。
GLU 版本 1.1 或更高版本支持以下值参数,对 GLU 1.0 版无效:GLU_PATH_LENGTH、GLU_PARAMETRIC_ERROR和GLU_DOMAIN_DISTANCE。
GLU_PARAMETRIC_TOLERANCE
指定采样方法设置为 GLU_PARAMETRIC_ERROR 时要使用的最大距离(以像素为单位)。 默认值为 0.5。
GLU_SAMPLING_METHOD
指定如何对 NURBS 图面进行细化。 GLU_SAMPLING_METHOD可以具有以下三个值之一。
GLU_PATH_LENGTH。 默认值。 指定使用分割多边形边缘的最大长度(以像素为单位)呈现的图面不大于GLU_SAMPLING_TOLERANCE指定的值。
GLU_PARAMETRIC_ERROR。 指定在呈现图面时,GLU_PARAMETRIC_TOLERANCE的值指定分割多边形与其近似表面之间的最大距离(以像素为单位)。
GLU_DOMAIN_DISTANCE。 在参数坐标中,指定 uv 维度中每个单位长度要获取的采样点数。
GLU_U_STEP
指定在参数坐标中沿 u 维度获取的每个单位长度的采样点数。 当 GLU_SAMPLING_METHOD 设置为 GLU_DOMAIN_DISTANCE 时,将使用 GLU_U_STEP 的值。 默认值为 100。
GLU_V_STEP
指定在参数坐标中沿 v 维度获取的每个单位长度的采样点数。 当 GLU_SAMPLING_METHOD 设置为 GLU_DOMAIN_DISTANCE 时,将使用 GLU_V_STEP 的值。 默认值为 100。

value

要设置所指示属性的值。 参数可以是数值或以下三个值之一:GLU_PATH_LENGTH、GLU_PARAMETRIC_ERROR或GLU_DOMAIN_DISTANCE。

含义
GLU_PATH_LENGTH
默认值。 指定使用分割多边形边缘的最大长度(以像素为单位)呈现的图面不大于GLU_SAMPLING_TOLERANCE指定的值。
GLU_PARAMETRIC_ERROR
指定在呈现图面时,GLU_PARAMETRIC_TOLERANCE的值指定分割多边形与其近似表面之间的最大距离(以像素为单位)。
GLU_DOMAIN_DISTANCE
在参数坐标中,指定 uv 维度中每个单位长度要获取的采样点数。

返回值

此函数不返回值。

注解

使用 gluNurbsProperty 控制存储在 NURBS 对象中的属性。 这些属性会影响 NURBS 曲线的呈现方式。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Glu.h

Glu32.lib
DLL
Glu32.dll

另请参阅

gluGetNurbsProperty

gluGetString

gluLoadSamplingMatrices

gluNewNurbsRenderer