opengl填充缓冲区的问题

zzllvlv 2017-08-19 09:39:32
填充缓冲区的代码如下:
glBindBuffer(GL_PIXEL_PACK_BUFFER, pixBuffObjs[0]);
glBufferData(GL_PIXEL_PACK_BUFFER, pixelDataSize, pixelData,
GL_DYNAMIC_COPY);
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
书上说使用glBufferData之前必须绑定。但是用glBufferData之后又通过绑定0来解绑。这样一来,GL-PIXEL-PACK-BUFFER这个缓冲区就没有对象与它绑定了,之前填充的数据不会消失吗?如何能再次调用之前存入的数据呢?
...全文
1211 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
OpenGL(Graphics Library,GL图形库)图形系统是图形硬件的一个软件接口,它允许我们创建交互性的程序,产生移动三维物体的彩色图像。使用OpenGL,我们可以对计算机图形技术进行控制,产生逼真的图像或者虚构出现实世界没有的图像。本书解释了如何使用OpenGL图形系统进行编程,实现所需要的视觉效果。   本书内容   本书共分15章。前5章描述了一些基本信息,读者需要理解这些内容,才能在场景中绘制正确着色和光照的三维物体。   ·第1章对OpenGL可以实现的功能进行简要的介绍。该章还提供了一个简单的OpenGL程序,并介绍需要了解的一些基本编程细节,有助于学习后续章节的内容。   ·第2章解释如何创建一个物体的三维几何图形描述,并最终把它绘制到屏幕上。   ·第3章描述三维模型在绘制到二维屏幕之前如何进行变换。我们可以控制这些变换,显示模型的特定视图。   ·第4章描述如何指定颜色以及用于绘制物体的着色方法。   ·第5章解释如何控制围绕一个物体的光照条件,以及这个物体如何对光照作出反应(也就是说,它是如何反射或吸收光线的)。光照是一个重要的主题,因为物体在没有光照的情况下看上去往往没有立体感。   接下来的几章说明如何对三维场景进行优化以及如何添加一些高级特性。在没有精通OpenGL之前,读者可以选择不使用这些高级特性。有些特别高级的主题在出现时会有特殊的标记。   ·第6章描述创建逼真场景所需要的一些基本技巧:alpha混合(创建透明物体)、抗锯齿(消除锯齿状边缘)、大气效果(模拟雾和烟雾)以及多边形偏移(在着重显示填充多边形的边框时消除不良视觉效果)。   ·第7章讨论如何存储一系列的OpenGL命令,用于在以后执行。我们可以使用这个特性来提高OpenGL程序的性能。   ·第8章讨论如何操作表示位图或图像的二维数据。位图的一种常见用途就是描述字体中的字符。   ·第9章解释如何把称为纹理的一维、二维和三维图像映射到三维物体表面。纹理贴图可以实现许多非常精彩的效果。   ·第10章描述OpenGL实现中可能存在的所有缓冲区,并解释如何对它们进行控制。我们可以使用这些缓冲区实现诸如隐藏表面消除、模板、屏蔽、运动模糊和景深聚焦等效果。   ·第11章显示了如何使用GLU(OpenGL Utility Library,OpenGL工具函数库)中的分格化和二次方程函数。   ·第12章介绍生成曲线和表面的高级技巧。   ·第13章说明如何使用OpenGL的选择机制来选择屏幕上的一个物体。此外,该章还解释了反馈机制,它允许我们收集OpenGL所产生的绘图信息,而不是在屏幕上绘制物体。   ·第14章描述如何用巧妙的或意想不到的方法来使用OpenGL,产生一些有趣的结果。这些技巧是通过对OpenGL及其技术前驱Silicon Graphics IRIS图形函数库的多年应用和实践总结出来的。   ·第15章讨论OpenGL 2.0所引入的变化,包括对OpenGL着色语言的介绍。OpenGL着色语言通常又称为GLSL,它允许对OpenGL的顶点和片断处理阶段进行控制。这个特性可以极大地提高图像的质量,充分体现OpenGL的计算威力。   另外,本书还包括几个非常实用的附录:

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧