OpenGL: glPolygonOffset解决两个面共面
来源:互联网 发布:网络热门词汇英语 编辑:程序博客网 时间:2024/06/06 02:11
摘自http://www.gamergroup.cn/html/78/n-3078.html
当两个面共面时,会出现十分难看的z - fighting 问题,要解决此问题可以使用, Polygon Offset, 方法如下:
drawSomething();
//同一位置绘制另一个东西
glEnable( GL_POLYGON_OFFSET_FILL ); // This is the one we need...
glPolygonOffset( g_OffsetFactor, g_OffsetUnit );
drawOtherthing();
glPolygonOffset( 0.0f, 0.0f );
glDisable( GL_POLYGON_OFFSET_FILL );
其中
g_OffsetFactor代表 factor,
g_OffsetUnit 代表 units,
关于factor, units 的解释如下:
When GL_POLYGON_OFFSET 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.
这个函数以后可能用得到,tutorial04里面画阴影的时候用到了,不过阴影还是很难看
0 0
- OpenGL: glPolygonOffset解决两个面共面
- glPolygonOffset解决两个面共面
- OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题
- glPolygonOffset
- 《高效学习OpenGL》 之 多边形偏移 glPolygonOffset(),glPolygonMode()
- glPolygonOffset的用法
- glPolygonOffset的用法
- glPolygonOffset消遮挡闪烁
- opengl es2 创建两个三角形
- opengl编译错误解决
- 解决两个问题
- 解决SourceInsight两个问题
- Hadoop解决两个问题
- 解决了两个问题
- OpenGL编译错误的解决
- OPENGL标点问题的解决
- OpenGL编译错误的解决
- OpenGL编程中遇到的两个问题
- 通过VMWARE建立LVS+NGINX+TOMCAT+MYSQL+NFS架构入门
- IPv4、TCP、UDP校验和计算
- 去掉字符串中的指定字符
- 动态规划
- Coder-Strike 2014 - Qualification Round C. Kicker(推理题)
- OpenGL: glPolygonOffset解决两个面共面
- ace 安装 使用
- linux下scp命令使用
- IOS UIWebView的字体大小控制
- api读取注册表键值
- hibernate 一对多配置排序
- 浏览器自带的CSS
- 路由器常见安全问题以及解决方案
- SeaJS之use函数