openGL API之glPolygonOffset函数

glPolygonOffset函数用于设置多边形深度值的偏移,它通过factor和units参数调整深度值,解决Z-fighting问题,适用于隐藏线渲染、贴花应用和高亮边框渲染。当启用特定模式时,每个片段的深度值会根据此函数计算的偏移量进行调整。
摘要由CSDN通过智能技术生成

openGL系列文章目录

glPolygonOffset官方文档

glPolygonOffset官方文档地址
Name
glPolygonOffset — set the scale and units used to calculate depth values

C Specification
void glPolygonOffset( GLfloat factor,
GLfloat units);

Parameters
factor
Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.

units
Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.

Description
When GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, or GL_POLYGON_OFFSET_POINT is enabled, each fragment’s depth value will be offset after it is interpolated from the depth values of the appropriate vertices. The value of the offset is factor × DZ + r × units , where DZ is a measurement of the change in depth relative to the screen area of the polygon, and r is the smallest value that is guaranteed to produce a resolvable offset for a given implementation. The offset is added before the depth test is performed and before the value is written into the depth buffer.

glPolygonOffset is useful for rendering hidden-line images, for applying decals to surfaces, and for rendering solids with highlighted edges.

Associated Gets
glIsEnabled with argument GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, or GL_POLYGON_OFFSET_POINT.

glGet with argument GL_POLYGON_OFFSET_FACTOR or GL_POLYGON_OFFSET_UNITS.

Version Support
OpenGL Version
Function / Feature Name 2.0 2.1 3.0 3.1 3.2 3.3 4.0 4.1 4.2 4.3 4.4 4.5
glPolygonOffset ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
See Also
glDepthFunc, glEnable, glGet, glIsEnabled

Copyright
Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see https://khronos.org/registry/OpenGL-Refpages/LICENSES/LicenseRef-FreeB.txt.

一翻译

名称
glPolygonOffset - 设置用于计算深度值的比例和单位

C规范
void glPolygonOffset(GLfloat factor,

                                   GLfloat units);

1
参数
factor

指定用于为每个多边形创建变量深度偏移的比例因子。初始值为0。

units

乘以特定于实现的值以创建恒定的深度偏移。初始值为0。

描述
启用GL_POLYGON_OFFSET_FILL后,每个片段的深度值将在从相应顶点的深度值进行插值后进行偏移。偏移的值是factor×DZ + r×units,其中DZ是相对于多边形的屏幕区域的深度变化的度量,并且r是保证给定的可解析偏移的最小值实现。注意在执行深度测试并将值写入深度缓冲区之前添加偏移量。

glPolygonOffset可用于渲染隐藏线图像,将贴花应用于曲面以及渲染具有突出显示边的实体。(用于解决Z-fighting)

相关Gets
glIsEnabled 参数GL_POLYGON_OFFSET_FILL。

glGet 参数GL_POLYGON_OFFSET_FACTOR或GL_POLYGON_OFFSET_UNITS。

另见
glDepthFunc,glEnable,glGet ,glIsEnabled

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值