Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

OpenGL超级宝典学习笔记——显示列表

OpenGL超级宝典学习笔记——显示列表

前言在先前的章节中,我们已经讨论OpenGL基本的一些渲染技术。这些基本的技巧足够渲染简单的图像,然而在渲染精细的画面逼真的画面的时候(非常多的顶点和纹理),如果使用之前的方式渲染(立即模式)速度就很慢了,考虑到性能的原因(特别是实时渲染)我们需要以更快的方式完成画面的渲染。精细的画面有大量的数据需要CPU和GPU去处理,而且把数据从应用程序发送到显卡有带宽和显存的瓶颈。显示列表到目前为止,我们的图元都是在一对glBegin/glEnd之间调用glVert...
OpenGL超级宝典学习笔记——顶点数组

OpenGL超级宝典学习笔记——顶点数组

顶点数组当我们有来自模型的大量数据的时候,使用显示列表来对这些数据进行预编译,需要遍历这些顶点数据(一次一个顶点数据)把数据传给OpenGL。依赖于顶点的数量,这会带来潜在的性能损耗。而且这些数据不一定是静态的,有可能在我们每次渲染的时候,我们需要对这些数据进行更改。这个时候就不适合使用显示列表。在OpenGl中,使用顶点数组能够很好的解决这两个问题。使用顶点数组,我们可以随时进行预编译或修改几何图形,然后一次性传输这些数据。基本的顶点数组几乎和显示列表一...
OpenGL超级宝典学习笔记——生成轮廓

OpenGL超级宝典学习笔记——生成轮廓

有时我们不需要物体的许多细节,而只需要其外围的轮廓来描绘物体大概的形状比如物体的阴影。如果我们简单的使用线框模式绘制一个立方体如下:下面介绍OpenGL生成轮廓的两种方式。多边形偏移多边形偏移是一个挺有用的技巧,有时会用来解决z-fighting。z-fighting在开启深度测试时,如果两个重叠物体的深度值非常接近,那么就有可能会产生z-fighting(因为在绘制物体时采用插值的方式,而插值会有一定的误差)。如下图遇到这种情况,我们就可以使用多变形偏移...
OpenGL超级宝典学习笔记——性能比较

OpenGL超级宝典学习笔记——性能比较

本文通过包含许多顶点数据的复杂模型来比较使用glBegin()/glEnd立即模式,显示列表,以及顶点索引数组的性能与内存。F-16 Thunderbird的飞机模型有3704个独立的三角形,通过Deep Exporation工具的索引模式编制后,共有1898个独立的顶点,2716个法线,2925个纹理坐标。下面代码展示DrawBody函数,通过遍历索引来为每一个独立的三角形设置并发送纹理,法线和顶点坐标。void DrawBody(void){int i...
OpenGL超级宝典学习笔记——顶点缓冲区对象

OpenGL超级宝典学习笔记——顶点缓冲区对象

显示列表可以快速简单地优化立即模式(glBegin/glEnd)的代码。在最坏的情况下,显示列表的命令被预编译存到命令缓冲区中,然后发送给图形硬件。在最好的情况下,是编译后放在图形硬件中以减少传输的带宽。显示列表的优化根据实现的不同而有所不同,而且显示列表一旦被创建就不可以修改,灵活性差。顶点数组提供了我们想要的灵活性,最坏的结果不过是把数据块复制给硬件而已(比立即模式快的多)。而索引顶点数组可以减少向硬件传输的顶点数据的数量,减少变换的开销。OpenGL...
Joomla Akeeba Kickstart反序列化远程代码执行漏洞

Joomla Akeeba Kickstart反序列化远程代码执行漏洞

发布日期:2014-08-24更新日期:2014-10-24受影响系统:Joomla! Akeeba描述:CVE(CAN) ID: CVE-2014-7228Joomla Akeeba是负责Joomla!更新的组件。Joomla! 2.5.25之前版本、3.2.5及之前版本、3.3.0至3.3.4版本在实现上存在安全漏洞,此漏洞仅可在Joomla! CMS更新时利用。成功利用后导致远程代码执行。<*来源:vendor*>建议:厂商补丁:Joom...
OpenGL超级宝典学习笔记——选择

OpenGL超级宝典学习笔记——选择

有时我们不仅仅是渲染场景,而且还要与渲染的场景进行交互。大多数情况下是使用鼠标进行交互。注:viewing volume(可视区域,视景体)选择OpenGL的选择模式允许你通过鼠标点击屏幕,来选择鼠标下面的物体。使用OpenGL的选择特性,当你点击屏幕时就指定了一个可视区域,决定了哪些物体在这个可视区域中。基于你的屏幕坐标和你指定的像素大小,glu库提供了一个有用的函数gluPickMatrix来产生一个矩阵,使用这个矩阵可以在你当前鼠标的位置产生更小的可...
HP Data Protector EXEC_INTEGUTIL远程代码执行漏洞

HP Data Protector EXEC_INTEGUTIL远程代码执行漏洞

发布日期:2014-10-21更新日期:2014-10-24受影响系统:HP Data Protector 9描述:HP OpenView Storage Data Protector软件是企业环境中单个服务器自动备份和恢复的软件,支持磁盘存储或磁带存储目标。HP Data Protector 9在处理EXEC_INTEGUTIL消息时会触发Backup client服务内的漏洞,该服务默认监听在TCP/555上,成功利用此漏洞后可利用EXEC_INTEG...
OpenGL超级宝典学习笔记——反馈

OpenGL超级宝典学习笔记——反馈

反馈像选择一样也是一种渲染模式,不会往帧缓冲区中写数据,而是把信息填充到反馈缓冲区中。与选择模式返回名称栈不同,反馈的这些信息包括窗口坐标中经过变换的顶点数据,经过光照计算后的颜色数据,以及纹理数据和其他在光栅化图元中需要使用的数据。通过调用glRenderMode(GL_FEEDBACK)进入反馈模式,调用glRenderMode(GL_RENDER)填充反馈缓冲区,并返回正常渲染模式。反馈缓冲区反馈缓冲区是浮点数数组,通过glFeedbackBuffe...
OpenGL超级宝典学习笔记——遮挡查询

OpenGL超级宝典学习笔记——遮挡查询

在一个场景中,如果有有些物体被其他物体遮住了不可见。那么我们就不需要绘制它。在复杂的场景中,这可以减少大量的顶点和像素的处理,大幅度的提高帧率。遮挡查询就是允许我们判断一组图形在进行了深度测试之后是否可见。遮挡查询之前为了显示遮挡查询对性能的提升,我们需要一个对照组(不使用遮挡查询来渲染场景)。首先我们先绘制“主遮挡物”。这个主遮挡物不需要太多的细节,一般是墙,天花板,地板之类的物体。在下面的例子中我们,使用6面墙来组成这个主遮挡物...
OpenGL超级宝典学习笔记——深度纹理和阴影

OpenGL超级宝典学习笔记——深度纹理和阴影

之前我们介绍过简单的把物体压平到投影平面来制造阴影。但这种阴影方式有其局限性(如投影平面须是平面)。在OpenGL1.4引入了一种新的方法阴影贴图来产生阴影。阴影贴图背后的原理是简单的。我们先把光源的位置当作照相机的位置,我们从这个位置观察物体,我们就知道哪些物体的表面是被照射到(被光源看到)的,哪些是没有被照射到(被遮挡住)的(在某个方向上离光源最近的表面是被照射的,后面的表面则没有被照射到)。我们开启深度测试,这样我们就可以得到一个有用的深度缓冲区数据...
OpenGL超级宝典学习笔记——新的模式

OpenGL超级宝典学习笔记——新的模式

在传统上,图形硬件设计的目标是快速地执行相同的硬编译的计算指令集。计算的步骤可以被跳过,参数可以被调整,但计算本身却是固定的。所以旧式的GPU设计被称为是“固定功能”的。现在的趋势是朝着通用图形处理器的方向发展。就像CPU一样,GPU也可以用任意的指令序列来执行图形计算。GPU和CPU最大的区别是,GPU的浮点数计算能力更强。在OpenGL2.0之前是固定函数渲染管线,在OpenGL2.0之后就是可编程函数渲染管线了。走出旧的模式在...
<< 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 >>