Windows 8 Directx 开发学习笔记(四)示例程序小结
2012-10-29 08:26
507 查看
VS2012的示例程序包括了最基本的DirectX流程,涉及许多知识,所以看完代码之后还是感觉没有头绪,打算对整个过程再整理一下,方便进一步的学习。
正方体在空间中可以用它的8个顶点定义,而每个顶点可以包含除坐标外的信息,如颜色。设置好属性后,数据是以数组的形式存在内存中的。由于所有的数据都是浮点数,所有需要输入布局来控制读取数据,如下图。
使用输入布局能够区分出各个顶点,把这些顶点输入顶点着色器进行处理,相当于在DirectX的三维空间中绘制出8个顶点,如下图:
虽然顶点能够定义一个正方体,但是绘制正方体主要是绘制它的面。这8个顶点已经包括颜色信息,接下来需要利用这些信息绘制正方体的6个面。如果不进行说明的话,8个点可以绘制很多很多面,不一定能组成正方体,加上DirectX只能绘制三角形,所以需要一个索引数组对如何拼接进行说明。下图说明的是拼接+x面和-y面。通过指定索引,DirectX会绘制左边的正方体,而不是右边的两个交叉平面。
以上完成对虚拟三维空间中资源的定义,如何观察空间并将看到的内容投影到屏幕上还有一段路要走。首先就是定义眼睛(或者摄像机)的位置同时设置观察点和可视角度,模拟一个真实的眼睛,如下图。
既然是眼睛,就应该有视力,在DirectX里可以设置前后两个参考面,夹在两个面内的空间将会投影在屏幕上。最后还需要使用像素着色器进行处理,完成后这一帧图像才会真正显示。
通过示例程序,对DirectX有些了解,接下来需要用实际的小功能来熟悉绘制图像的原理。
正方体在空间中可以用它的8个顶点定义,而每个顶点可以包含除坐标外的信息,如颜色。设置好属性后,数据是以数组的形式存在内存中的。由于所有的数据都是浮点数,所有需要输入布局来控制读取数据,如下图。
使用输入布局能够区分出各个顶点,把这些顶点输入顶点着色器进行处理,相当于在DirectX的三维空间中绘制出8个顶点,如下图:
虽然顶点能够定义一个正方体,但是绘制正方体主要是绘制它的面。这8个顶点已经包括颜色信息,接下来需要利用这些信息绘制正方体的6个面。如果不进行说明的话,8个点可以绘制很多很多面,不一定能组成正方体,加上DirectX只能绘制三角形,所以需要一个索引数组对如何拼接进行说明。下图说明的是拼接+x面和-y面。通过指定索引,DirectX会绘制左边的正方体,而不是右边的两个交叉平面。
以上完成对虚拟三维空间中资源的定义,如何观察空间并将看到的内容投影到屏幕上还有一段路要走。首先就是定义眼睛(或者摄像机)的位置同时设置观察点和可视角度,模拟一个真实的眼睛,如下图。
既然是眼睛,就应该有视力,在DirectX里可以设置前后两个参考面,夹在两个面内的空间将会投影在屏幕上。最后还需要使用像素着色器进行处理,完成后这一帧图像才会真正显示。
通过示例程序,对DirectX有些了解,接下来需要用实际的小功能来熟悉绘制图像的原理。
相关文章推荐
- Windows 8 Directx 开发学习笔记(十三)利用模板实现木箱镜像
- Windows 8 Directx 开发学习笔记(二)建立模型及初始化设备
- Android开发学习笔记(三)——基于Eclipse开发环境的搭建及HelloAndroid示例程序的创建
- Windows 8 Directx 开发学习笔记(五)山峰河谷模型的简单实现
- Windows调试学习笔记:(二)WinDBG调试.NET程序示例
- Windows 8 Directx 开发学习笔记(六)添加水模型
- Windows 8 DirectX 开发学习笔记(十五)使用Billboard实现树木贴图
- Windows 8 DirectX 开发学习笔记(十六)使用Terragen生成自然环境贴图
- 【hadoop】Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发
- Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分
- Windows 8 Directx开发学习笔记(一)应用基本框架
- Windows 8 Directx 开发学习笔记(八)要有光
- Windows 8 Directx 开发学习笔记(十二)利用混合实现浮在水面的木箱
- Windows 8 Directx 开发学习笔记(三)摄像机设置及控制正方体旋转
- Windows 8 Directx 开发学习笔记(十)纹理贴图实现旋转的木箱
- Windows 8 Directx 开发学习笔记(十一)地形纹理贴图
- Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发
- Windows 8 Directx 开发学习笔记(九)材质定义及混合光照效果实现
- Windows 8 Directx 开发学习笔记(七)水波纹的实现
- Android开发学习笔记6--安卓程序调试方法