计算机图形学
HIVE-Qwh
CG小硕
展开
-
002-对象池
对象池: 预先先创建多个对象,存储在容器中;当程序之后需要用到容器中的对象时则从容器中自取。优点: 节省了程序每次创建对象及销毁对象的开支。缺点: 预先申请(耗费)一大块内存用来存储对象;且预创建对象的个数需要结合多种情况综合考虑,当数量过大时则对空间不友好。例子:粒子系统中存在大量创建与销毁粒子的操作,每一个粒子的结构一般为存储粒子自身的属性,粒子的初始化快速且简单,但是粒子的大量创建与销毁操作...原创 2018-02-18 23:52:51 · 318 阅读 · 0 评论 -
003-渲染管线
初级版本:渲染管线一般有以下阶段:顶点着色器->光栅化->片元着色器其中顶点着色器主要工作是进行顶点坐标变换,常见的变换为:局部坐标系->世界坐标系->相机坐标系->裁剪坐标系->屏幕坐标系。一般来说,顶点着色器将输入顶点变换到NDC坐标系下。因此在顶点着色器中常见的操作为(以OpenGL下为例): glPosition = ProjectionMatrix *...原创 2018-02-19 00:16:00 · 215 阅读 · 0 评论 -
OpenGL默认的render target
若不使用自己所定义的FBO,则每一次渲染将会被保存到OpenGL自己所定义的默认FBO上的color attachment上。而其默认的Color Attachment的格式应该为RGBA + RGBA + UNSIGNED_BYTE。当需要从其buffer中读取像素信息时,若直接在fragment shader中输出大于1.0f的数据,读取出来时会直接发生截断[0.0, 1.0]。尝试过使用下面...原创 2018-04-22 16:36:38 · 961 阅读 · 0 评论 -
OpenGL PBO的PACK操作
1、初始化glGenBuffers(1, &m_PBO);glBindBuffer(GL_PIXEL_PACK_BUFFER, m_PBO);glBufferData(GL_PIXEL_PACK_BUFFER, m_ScreenHeight * m_ScreenWidth * 4, NULL, GL_DYNAMIC_READ);glBindBuffer(GL_PIXEL_PACK_BUFF...原创 2018-04-21 21:20:23 · 254 阅读 · 0 评论