
DX Sample 笔记
文章平均质量分 75
aslan_dd
这个作者很懒,什么都没留下…
展开
-
学习计划
下一步,打算完整的学习一边DX,看龙书,编译所有的C++ sample 以前接触dx都是看其他博客,不够完整和彻底。 每看一部分,写下相应的学习笔记原创 2013-11-30 10:31:35 · 476 阅读 · 0 评论 -
1 初始化Direct3D
创建设备 我们看到的一切都是由设备来处理的,可以把这个设备理解为我们和硬件交流的媒介 设备能听懂我们说的,硬件能听懂设备说的。 创建设备步骤: SDK里的第一个demo Tutorial 1: Creating a Device 里有说 这里对于我们比较重要的是2和4 先获取相应版本的接口,然后创建并且填充D3DPRESENT_PARAMETERS结构体(原创 2013-11-30 14:59:42 · 674 阅读 · 0 评论 -
3 rendering pipeline
3d绘制流水线,已经形成很多年的理论,把虚拟的3D世界的场景转化为2d的图像显示在屏幕上 是这么个流程: 局部坐标系 世界坐标系 观察坐标系 背面消隐 光照 裁剪 投影 视口坐标系 光栅化 其中,关于坐标系的变换都是由矩阵运算实现的,DX提供了这些运算,因为这些原创 2013-12-07 09:08:01 · 599 阅读 · 0 评论 -
2 Vertex
3D世界的所有东西都是由多边形逼近形成的,同样一个模型用的多边形越多就越细致 构成就需要顶点,对于定点,首先要理解的是FVF(可塑顶点格式) D3D中定义定点是按照我们的具体需求 有时候只需要坐标,有时候还需要颜色,纹理坐标等等其他量 为了让我们的device能认识我们定义的顶点,就要用D3DFVF定义的标志定义我们的FVF 举个栗子=。= struct CUSTOMVERTEX原创 2013-12-01 11:46:23 · 631 阅读 · 0 评论 -
5 颜色
D3D中,颜色都是由RGB三元组表示 都是32位的颜色,排列是 A R G B,一个透明度,三个原色 有两种结构来保存颜色 分别是 D3DCOLOR和D3DCOLORVALUE D3DCOLOR 是用 0-255的值来表示每一个分量的亮度值 D3DCOLORVALUE用 0-1的值来表示每个分量的亮度 这两种定义可以互相转换,在其实现的构造函数中有相应的构造函数可以原创 2014-01-02 10:17:05 · 592 阅读 · 0 评论 -
6 光照
上帝说要有光,于是就有了光 3D世界中的光是按照物理世界的光模拟的,从而可以做出非常逼真的效果 使用光照时,顶点的颜色是由光照计算引擎依据 光源类型,材质,物体对于光源的朝向(决定反射类型)计算每个顶点的颜色值 D3D光照模型里,光源发出的光由3种光组成 环境光 漫反射 镜面反射 环境光是物体不是被光源直接照亮,而是由其他物体反射光而被照亮 漫反射用来模拟从每个角度原创 2014-01-03 11:30:21 · 510 阅读 · 0 评论 -
4 D3D绘制
利用D3D接口绘制简单几何体 顶点缓存和索引缓存 两者用法相似 顶点缓存是一个包含内存数据的连续内存空间 索引缓存是一个包含索引数据的XXXXX 用它们的原因是他们存放数据的地方是显存,在绘制的时候,使用现存数据比内存数据会快的多 代码中,顶点缓存用接口 IDirect3DVertexBuffer9 索引是 IDirect3DIndexBuffer9 (direc原创 2013-12-27 10:20:10 · 596 阅读 · 0 评论 -
7 纹理映射
借助纹理映射技术,可以把图像数据映射到三角形单元中,为3D图型添加更具细节的描绘 使用纹理映射,需要学习 映射方式 纹理创建 纹理过滤 纹理坐标 D3D所使用的纹理坐标由平面坐标构成 水平u轴 和 竖直v轴 由坐标对 (u,v)标识的纹理元素称为纹理元 之前说过,纹理映射是把图像数据映射到三角形单元中,在3d世界中所有的单元都是由三角形构成的 要实现纹理映射,需要给顶点原创 2014-02-22 11:51:12 · 768 阅读 · 0 评论 -
8 融合技术
融合技术应用在当前光栅化的像素与已经光栅化的像素处于同一位置时 就是正在处理的图元和已经在后台缓冲中的像素进行融合。 以此获得一些色彩上的特效 融合的前提是画在前面的物体是有一定透明度的,然后透过它看它后面的东西,体现出那种“透着看”的感觉的技术 就是融合技术 融合方程 融合的前提是融合方程,由融合公式得出最后屏幕上融合位置的像素值,从而呈现出融合效果 OutputPixel原创 2014-02-24 16:29:26 · 762 阅读 · 0 评论