齐次裁剪空间坐标系(范围 -1<=x <=1,-1<=y<=1,-1<=z <=1, )是左手坐标系,为什么? 其实也很好理解,如上图 , A和B点经过投影变换后其x坐标是一样的(不再是投影平截体中的那种相对关系), 而近裁剪面上的点的z坐标经过投影变换后变为-1 , 而远裁剪面上的z坐标为1 ,所以齐次裁剪空间坐标系的z轴的正方向正好和相机坐标系中的z轴正方向是相反的。...
分类:
其他好文 时间:
2015-05-14 16:34:45
阅读次数:
498
在OpenGL中存在着多种缓冲区,这些缓冲区大致分为: 深度缓冲区:存储每个像素的深度值,当启动深度测试时,片段像素深度值和深度缓冲区深度值进行比较,决定片段哪些像素点数据可以替换到颜色缓冲区中。 模板缓冲区(Stencil Buffer):与颜色缓冲区和深度缓冲区类似,模板缓冲区可以为屏幕上的.....
分类:
其他好文 时间:
2015-01-31 19:14:12
阅读次数:
209
特效类即是GridAction类,其实就是基于网格的3D动作类。需开启OpenGL的深度缓冲,否则容易3D失真。下边是一个snippet,创建网格对象,并将其添加到当前layer;同时,将进行3D特效的对象,添加到网格对象上。 gridNodeTarget = NodeGrid::cr...
分类:
其他好文 时间:
2015-01-12 01:32:00
阅读次数:
196
1、又和上次一样犯了个错误,深度缓冲标识位GL_DEPTH_BUFFER_BIT写成GL_COLOR_BUFFER_BIT。导致图形绘制没有在窗口中出现
2、注释是我的。
3、好消息:code compare插件和工具的使用。之前朋友推荐我使用,一直没有场景。现在知道:svn同文件的不同版本在同一路径下的对比使用smartSVN;不同文件或者不同路径任何版本对比使用code compare工具...
分类:
其他好文 时间:
2015-01-10 23:44:15
阅读次数:
528
一、关于各种缓冲区色缓冲区就是帧缓冲区,你需要渲染的场景最终每一个像素都要写入该缓冲区,然后由它在渲染到屏幕上显示. 深度缓冲区与帧缓冲区对应,用于记录上面每个像素的深度值,通过深度缓冲区,我们可以进行深度测试,从而确定像素的遮挡关系,保证渲染正确. 模版缓冲与深度缓冲大小相同,通过设置模版缓冲每个...
分类:
其他好文 时间:
2014-12-19 00:27:34
阅读次数:
263
像素格式——PIXELFORMATDESCRIPT、设备上下文、渲染上下文 在OpenGL对窗口进行渲染之前,必须根据渲染需要对窗口进行配置。 需要硬件渲染还是软件渲染? 渲染使用但缓冲还是双缓冲模式? 是否需要深度缓冲区? 是否需要模板、目标Alpha或累计缓冲区? 当为窗口设置这些参...
分类:
其他好文 时间:
2014-12-12 16:26:30
阅读次数:
180
使用三角形或者多边形结合在一起,我们可以绘制实心物体(3D物体)。本篇中使用三角形绘制圆锥形。
下面测试第一个OpenGL程序:
void renderScene(void)
{
float angle;
float x, y;
static int triangleNum = 1;
//清除颜色缓冲区和深度缓冲区
glClear(GL_COLOR_BUFFER_BIT | GL_D...
分类:
其他好文 时间:
2014-12-11 15:47:44
阅读次数:
241
#include
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲以及深度缓冲
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_POLYGON); // 绘画开始话多边形
/*glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.75, 0.25, 0...
分类:
其他好文 时间:
2014-10-21 21:31:25
阅读次数:
179
在绘制每一帧图形前都要先清空视区,即清空渲染目标表面上的视区矩形的内容:颜色缓冲区、深度缓冲区或者模板缓冲区。 HRESULT Clear( [in] DWORD Count, //重置的矩形区域数量 [in] const D3DRECT *pRects, //重置的矩形区域数组指针 [in] DW...
分类:
其他好文 时间:
2014-08-05 13:21:29
阅读次数:
290
OpenGL中的缓冲区
颜色缓冲区
OpenGL在绘制图元时,先是在一个缓冲区中完成渲染,然后再把渲染结果交换到屏幕上。我们把这两个缓冲区称为前颜色缓冲区(屏幕)和后颜色缓冲区。在默认情况下,OpenGL命令是在后颜色缓冲区进行渲染的。当然,也可以直接在前颜色缓冲区中进行渲染。
若要在前颜色缓冲区中进行渲染,第一种方法是直接告诉OpenGL希望在前...
分类:
其他好文 时间:
2014-05-08 04:54:02
阅读次数:
309