windows API下的模板缓冲(stencil buffer)
发布时间:2020-12-14 05:50:37 所属栏目:Windows 来源:网络整理
导读:? 在windows API搭建的OpenGL窗口中使用模板缓冲,需要在像素格式描述表中设置stencil buffer位宽为8,这样窗口会自动生成stencil buffer,然后可以在opengl环境下使用模板缓冲了。 ? 一个渲染物体轮廓的示例,绿色为小长方体的边框 void Display() { glEnab
? 在windows API搭建的OpenGL窗口中使用模板缓冲,需要在像素格式描述表中设置stencil buffer位宽为8,这样窗口会自动生成stencil buffer,然后可以在opengl环境下使用模板缓冲了。
? 一个渲染物体轮廓的示例,绿色为小长方体的边框
void Display() { glEnable(GL_DEPTH_TEST); glStencilOp(GL_KEEP,GL_KEEP,GL_REPLACE); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); glStencilMask(0x00); // 绘制地板时确保关闭模板缓冲的写入 shader_gym->use(); shader_gym->setMat4("model",glm::mat4(1)); shader_gym->setMat4("view",phc.getViewMatrix()); shader_gym->setMat4("projection",phc.getProjectionMatrix()); gym->Draw(shader_gym->programId); glStencilFunc(GL_ALWAYS,1,0xFF); glStencilMask(0xFF); cube->scale(5); cube->Draw(*shader_cube1,phc); glStencilFunc(GL_NOTEQUAL,0xFF); glStencilMask(0x00); glDisable(GL_DEPTH_TEST); cube->scale(5.4); cube->Draw(*shader_cube2,phc); glStencilMask(0xFF); glEnable(GL_DEPTH_TEST); movement(); } ?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 将注册表值添加到域上的所有用户
- 远程访问Windows Vista到Mac OSX?
- Windows Phone 7 – WP7上的宽瓦通知?
- Windows Server2008建立组织单位、组、用户以及文件赋权部门
- windows-phone-8 – 来自XAML的WP8中的Mappolyline不起作用
- Windows 10 安装虚拟专用网client端
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死
- OpenCascade极简环境搭建(QT环境)
- 在turbo pascal 5.5中的旧IBM PS / 2上读/写文件
- 为什么我不能在Windows Server 2008中删除文件’favicon.ic