线性变换仿射变换:包括平移、旋转以及比例变换。这种变换能够保持直线建的平行性,并且可逆。射影变换:包括透视变换等。由于这些变换都是将三维实体投影到二维空间,所以不可逆。齐次坐标系OpenGL实际是在四维坐标中定义的,坐标为(x,y,z,w)在三维点空间上显示为(x/w,y/w,z/w)..
分类:
其他好文 时间:
2014-09-01 15:54:54
阅读次数:
327
坐标系与基本图元(6)灵活顶点格式灵活顶点格式(Flexible Vertex Format, FVF)用来描述在顶点缓冲区中的顶点存储格式中包含了哪些属性。Direct3D应用程序可以用几种不同的方式定义灵活顶点格式。灵活顶点格式使应用程序只使用它需要的顶点数据,排除那些它不需要的组成成分。这样,...
分类:
其他好文 时间:
2014-09-01 12:30:33
阅读次数:
257
今天在写一个时钟demo的时候, 时针的旋转用到了CGAffineTransformMakeRotation, 按理说. 图像的旋转是以图像本身的中心(center)为锚点的, 也就是在旋转过程中, 它的中心是固定的。 就和我们时针的效果一样。比如我下面的时针, 分针, 秒针旋转的代码:[objc]...
分类:
移动开发 时间:
2014-09-01 12:24:43
阅读次数:
162
坐标系与基本图元(2)创建顶点缓冲区在创建顶点缓冲区之前,需要先定义一个表示顶点的结构类型,描述顶点保存格式的FVF和一个保存顶点的结构数组。struct sCustomVertex{ float x, y, z, rhw; DWORD color;};#define D3DFVF_CUSTOM_V...
分类:
其他好文 时间:
2014-09-01 12:23:53
阅读次数:
246
坐标系与基本图元坐标系与基本图元(8) 摘要: 游戏程序通常都是运行在全屏幕模式下,进行全屏显示的关键是使用全屏显示的渲染设备。创建全屏显示模式渲染设备同窗口模式渲染设备基本相同,区别是将 d3dpp.Windowed设置为FALSE,告诉Direct3D系统,将要创建的是全屏模式渲染设备。此外,还...
分类:
其他好文 时间:
2014-09-01 12:23:23
阅读次数:
177
坐标系与基本图元(3)渲染顶点缓冲区图形void render(){ g_device->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_X#050505, 1.0f, 0); g_device->BeginScene(); g_device->SetStreamS...
分类:
其他好文 时间:
2014-09-01 12:23:03
阅读次数:
257
坐标系与基本图元(7)场景提交概述场景提交即将在后台缓冲区绘制好的场景提交到前台缓冲区,从而在屏幕上显示出来。提交接口函数是一组控制特定的渲染设备状态的方法,这些设备影响显示器的显示。(1)前台缓冲区:这是一块由显卡转换来的矩形存储区,这块矩形存储区的内容显示在显示器或其他输出设备上。(2)后台缓冲...
分类:
其他好文 时间:
2014-09-01 12:20:03
阅读次数:
218
坐标系与基本图元(8)全屏幕显示游戏程序通常都是运行在全屏幕模式下,进行全屏显示的关键是使用全屏显示的渲染设备。创建全屏显示模式渲染设备同窗口模式渲染设备基本相同,区别是将d3dpp.Windowed设置为FALSE,告诉Direct3D系统,将要创建的是全屏模式渲染设备。此外,还需要明确指定后台缓...
分类:
其他好文 时间:
2014-09-01 12:19:13
阅读次数:
226
坐标系与基本图元(1)Direct3D基本图元图元(primitives)是Direct3D中定义的基本图形表示,它是组成一个单一实体的一组顶点。最简单的图元是三维坐标系中多个点的集合,称为点列表(point list)。通常,图元是多边形(polygon),一个多边形是由至少三条边组成的封闭图形。...
分类:
其他好文 时间:
2014-09-01 12:18:03
阅读次数:
224
坐标系与基本图元(5)使用索引缓冲区绘制图形当绘制一个比较复杂的图形时,需要使用许多相互邻接的三角形。如果为每个三角形准备三个顶点数据,显然有许多数据是重复的,这样会浪费大量的内存和系统带宽。为了解决这一问题,可以先创建一个顶点缓冲区,将不重复的顶点数据写入顶点缓冲区,然后创建一个顶点索引缓冲区(i...
分类:
其他好文 时间:
2014-09-01 12:17:23
阅读次数:
211