OpenGL踩坑记录

本文详细记录了在OpenGL中处理3D模型时的离屏渲染过程,包括创建fbo、关联texture和rbo。特别强调了离屏渲染必须关联rbo,并指出开启和关闭深度测试的重要性,以避免渲染黑屏问题。此外,还提到了当OpenGL使用深度缓冲区后渲染消失的可能原因——深度缓冲区被关闭,并介绍了glDepthMask函数用于控制深度缓冲区的写入状态。最后,讨论了纹理缓存创建时指定内存大小的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3D模型加载

在处理3D模型的时候,我们经常的操作是首先创建一个fbo,fbo关联texture,rbo。我们第一次渲染的时候是直接渲染到fbo关联的纹理上,然后经过其他纹理滤镜的处理后,再把它显示出来。

这里有几个需要注意的点。

  1. 3D 纹理离屏渲染渲染一定要关联一个rbo。
  2. 离屏渲染前打开深度测试,离屏渲染之后一定要关掉深度测试。再进行其他的渲染操作,否则会出现渲染黑屏纹理。

OpenGL RBO

有时候我们会发现openGL 使用深度缓冲区后,渲染效果完全消失了,那可能是深度缓冲区被关闭了。

名称

glDepthMask - 启用或禁用写入深度缓冲区

C规范

void glDepthMask( GLboolean flag);

参数

flag

指定是否可以写入启用深度缓冲区。 如果flag为GL_FALSE,则禁用深度缓冲区写入。 否则,它可以启用。 初始状态为启用深度缓冲区写入。

描述

glDepthMask指定是否可以写入启用深度缓冲区。 如果flag为GL_FALSE,则禁用深度缓冲区写入。 否则,它可以启用。 初始状态为启用深度缓冲区写入。

相关Gets

glGet 参数GL_DEPTH_WRITEMASK

另见

glColorMask,glDepthFunc,glDepthRangef,glStencilMask

版权

https://www.khronos.org/registry/OpenGL-Refpages/es2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值