这篇文章是针对在你看了书本或者其他资料对opengl模板原理的一般性介绍后但又不理解模板到底是怎么工作的情况而写的,所有相关函数的原型及参数不再做详细介绍。
opengl的模板就像是挡在屏幕前的一块挡板,如果挡板是透明的,则可以看到整个屏幕的图像,如果是部分透明部分不透明,则只可以看到透明部分的屏幕图像。
为了抛弃书本或其他叙述性文字的笼统介绍,这里从代码解析角度分析,相信更能让人明白模板的原理:
glClearStencil(0.0f);
glEnable(GL_STENCIL_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glStencilFunc(GL_NEVER,0x0,0x0);
glStencilOp(GL_INCR,GL_INCR,GL_INCR);//
glColor3f(1.0f,1.0f,1.0f);
glBegin(GL_LINE_STRIP);
for (dAngel=0;dAngel<380.0;dAngel+=0.1)

本文旨在帮助理解OpenGL模板缓冲的工作原理,通过代码示例解释模板如何控制像素的可见性。首先,使用glClearStencil初始化模板值为0,然后启用模板测试。接着,通过glStencilFunc和glStencilOp设置规则,使得线条绘制时模板值递增,形成不透明区域。最后,改变测试条件,使得模板值为1的区域变为透明,允许其他颜色显示,从而实现特定形状的遮罩效果。
最低0.47元/天 解锁文章
3692

被折叠的 条评论
为什么被折叠?



