您的位置:首页 > 运维架构

OpenGL 多边形偏移高亮物体边 Polygon offset

2014-12-01 17:18 176 查看
直接绘制一个物体两次分别以GL_FILL, GL_LINE会出现片段重叠现象,线框会断断续续的,这是由于片段深度浮点精度造成深度比较时出问题:



解决办法:

参考OpenGL programming guide 8th p164

Polygon Offset

先用面绘制一遍物体,后设置填充模式为线,再设置多边形偏移靠近观察点一些,再绘制一遍物体。

glm::vec4 Color(1.0, 0, 0, 1.0);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glUniform4fv(renderTech.getUni("Color"), 1, &Color.x);
pObj->renderOBJ();

Color = glm::vec4(1.0,1.0, 0, 0);
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glEnable(GL_POLYGON_OFFSET_LINE);
glPolygonOffset(-1.0, -1.0);    //****** move closer to camera
glUniform4fv(renderTech.getUni("Color"), 1, &Color.x );
pObj->renderOBJ();

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: