OpenGL渲染到纹理

本文介绍了OpenGL中两种渲染到纹理的方法:CopyTexImage2D和Frame Buffer Object(FBO)。CopyTexImage2D虽然简单但效率较低,而FBO提供更高的效率和更多灵活性,类似于Direct3D的rendertarget。使用FBO时需注意绑定color、depth和stencil,以及正确管理帧缓冲区的绑定与解除绑定。
摘要由CSDN通过智能技术生成


OpenGL渲染到纹理有两种方法,第一种是用CopyTexImage2D拷屏,NeHe的教程用的是这种方法;第2种是Frame Buffer Object。两种方法各有千秋,拷屏简单,但是效率低,比如一个粒子系统需要做haze,需要用到render target,那么每个这样的粒子系统都要拷贝屏幕一次,效率就会很差了;当然用hash表存一下也是个不错的选择。FBO和Direct3D的rendertarget 感觉相同,设置一下拷贝到离屏表面;渲染场景,这时屏幕上看不到东西直到取消。不过第一次用的话会掉到很多坑里,再次抱怨下OpenGL的文档实在太烂了。

方法1:CopyTexImage2D

    GL.BindTexture(OpenGL.GL_TEXTURE_2D, rendertarget); // Bind To The Texture
    GL.CopyTexImage2D(OpenGL.GL_TEXTURE_2D, 0, OpenGL.GL_RGB, 0, 0, width, height, 0);
    GL.ClearColor(0.0f, 0.0f, 0.0f, 1.0f);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值