1、基本着色器的架构
顶点着色器:接收客户端输入的Attribute属性数据,有些计算后自己用于顶点变换,有些传给片段着色器。除此之外,顶点着色器还接受uniform数据,一般是变换矩阵。最后输出顶点的位置变换值。
片段着色器:接收来自顶点着色器输出的纹理坐标和纹理等属性,另外也接收用于计算光照的光照颜色的uniform值,最后输出像素的颜色值。
2、Shader的变量和数据...
分类:
其他好文 时间:
2015-05-18 14:43:53
阅读次数:
515
如果你想把图形渲染在正确的位置上,那么坐标的设置就很重要了。在OpenGL中,与坐标相关的主要有笛卡尔坐标、坐标裁剪、纹理坐标、MVP(Model View Projection)转换。 1.笛卡尔坐标 在二维绘图中,笛卡尔坐标有一个X轴和一个Y轴组成,X轴为水平方向,Y轴为垂直方向,X和Y相互垂直...
分类:
其他好文 时间:
2015-05-12 15:33:28
阅读次数:
186
一、使用MipMap贴图(主要是应用在纹理缩小过滤中)
优点:
防止当纹理缩小太大的时候,出现闪烁的问题
提高性能,需要缩小的时候就不加载大内存的纹理
缺点:
需要额外的内存作为代价
组成:由一系列缩小的纹理图像组成,子层是父层的1/4
过滤类型:NEAREST快速,LINEAR效果好
GL_NEAREST_MINMAP_NEAREST
选择最邻近Mip层并执行邻近过滤
GL_...
分类:
其他好文 时间:
2015-05-08 16:37:20
阅读次数:
150
纹理对象的使用:纹理图像数据的类型,图像数据的导入导出方式,纹理的使用过程:图像数据的加载,纹理参数的设置,纹理的绑定。
一、图像数据的分类:位图图像和像素图像
二、像素图像数据的包装:
在OpenGL中:使用4字节的行对齐方式,每一行补全到4的倍数,使用glPixelStorei(pname,param)可以改变或者恢复像素的存储方式
介绍常用的两组:内存缓冲区的压缩和解...
分类:
其他好文 时间:
2015-05-07 16:42:29
阅读次数:
182
1、向量:
点乘:float m3dDotProduce3(u,v):返回两个单位向量的余弦值
叉乘:float m3dCrossProduct3(result,u,v):返回垂直于两个向量定义的平面的向量
2、矩阵:
OpenGL使用的是列优先排序的矩阵
单位矩阵(对角线为1,其他为0):任何向量乘以一个单位矩阵都不会发生任何改变
3、变换:最终获得的变换矩阵会应...
分类:
其他好文 时间:
2015-05-05 19:36:42
阅读次数:
339
1、渲染中的双缓冲:
使用但缓冲的时候,在渲染每一帧的绘图时,会对画板进行擦除然后在慢慢填充绘制,如果绘制时间过长的时候,就会出现闪烁的现象。为解决这个问题,所以引入双缓冲
双缓冲相当于,在显示的画板中重新创建另外一个画板,绘制的过程在另外的画板进行,绘制完成之后,将显示的画板的内容直接替换成另外一个画板的内容。这样呈现的过程中就不会出现闪烁的问题,即使是绘制的过程比较慢,最多就是出现顿的现象...
分类:
其他好文 时间:
2015-05-04 13:55:27
阅读次数:
786
做三维重建需要用到OpenGL,开始看《OpenGL超级宝典》,新手第一步配置环境就折腾了一天,记录下环境的配置过程。《超级宝典》中的例子使用了GLEW,freeglut以及作者自己开发的GLTools这三个库。1.GLEWThe OpenGL Extension Wrangler Library ...
分类:
其他好文 时间:
2015-04-14 19:23:22
阅读次数:
248
1、又和上次一样犯了个错误,深度缓冲标识位GL_DEPTH_BUFFER_BIT写成GL_COLOR_BUFFER_BIT。导致图形绘制没有在窗口中出现
2、注释是我的。
3、好消息:code compare插件和工具的使用。之前朋友推荐我使用,一直没有场景。现在知道:svn同文件的不同版本在同一路径下的对比使用smartSVN;不同文件或者不同路径任何版本对比使用code compare工具...
分类:
其他好文 时间:
2015-01-10 23:44:15
阅读次数:
528
OpenGL超级宝典(第五版)环境配置1.各种库的配置(1)glew下载:https://sourceforge.net/projects/glew/files/glew/1.7.0/glew-1.7.0.zip/download将include文件夹下的.h文件拷贝到C:\Program File...
分类:
其他好文 时间:
2014-10-13 19:10:21
阅读次数:
289