1、 适配器adapter

即显卡。指硬件及其驱动程序

2、 设备 device

在应用中,我们需要创建多个针对适配器的连接,每个连接能够处理目前的现代图形处理器可以制作的3D魔幻效果。每个连接称为一个设备。

Device是指用来访问特定窗口并在该窗口上绘图的主要对象。

有3种不同的设备

1 Hardware(hardware abstraction layer ,HAL):可以直接访问硬件的加速特性

2 Reference(Reference Rasterizer): 具有DirectX函数的大部分特征,不依赖硬件,但很慢,适应于测试

3 Software(Software device):除非使用插件程序(plug-in),一般不用

3、DirectX pipeline

图形显示卡的处理分为几个不同的阶段,这些阶段通常分为3部分。

第一部分:transform and lighting stage(T&L)

将定义的坐标系下的3D模型顶点转换到一个与该模型所处的视图(或场景)相对应的坐标系,最后转换到该视图的一个特定视口下。在这个过程中,图形pipeline将依据场景中的光源并使用相关技术改变顶点的色彩和亮度。这个阶段通常称为transform and lighting stage(T&L).

第二部分:裁切阶段

裁减那些不会出现在观察者最终看到的图像中的部分图像。

第三部分:rasterization

产生所有的魔幻效果并把3D视图转换到屏幕上可以显示的2D图像

Pixel Shading技术允许基于每个像素来实施特殊的光亮效果。

3、 显示模式

定义那些保存屏幕状态基本信息的对象(DisplayMode类)。基本信息包括:宽度,高度,刷新率和一个格式标识符(关于显示器如何管理色彩显示的额外信息)

4、3D坐标系

使用左手坐标系。Z值越大,对象就越远

5、 投影

有两种类型的投影

一:透视投影

二:正交投影(水平投影):Z轴将会被忽略,主要用于2D

Direct3D提供了6个主函数允许我们为游戏制定一种投影方式,这些函数将返回一个矩阵用以计算转换。

Matrix.OrthoRH, Matrix.OrthoLH: 定义了一个正交投影(RH 右手坐标系,LH左手坐标系)。函数将接受视口的宽度,高度和可观察的z轴的范围

Matrix.PerspectiveRH, Matrix.PerspectiveLH: 返回一个针对透视投影的变换矩阵,传递视口的宽度,高度和z轴的可见距离

Matrix.PerspectiveFovRH, Matrix.PerspectiveFovLH: 返回一个透视投影的变换矩阵,传递一个视角和z轴距离。该视角与视野范围(FOV)相应弧度向对应。

6、 矩阵变换

Device具有3个特殊的属性:

1 .Transform.Projection 用来接收投影矩阵

2 .Transform.World 表明在3D世界进行变换

3 .Transform.View 指出了取景窗位置

7、定位camera

通过定位camera,以便从不同点观测同样的场景。DirectX的camera指观测矩阵(View Matrix). 可以计算观测矩阵并把它设为.Transform.View属性,或使用helper函数的Matrix.LookAtLH, Matrix.LookAtRH. 这些函数定义了观测位置和观测方向。有3点需要注意:camera所处的位置,camera正在观测的3D位置,当前的向上方向(通常是y轴方向)

8、 Drawing Primitives

定义一个3D对象所需的顶点集合。

Direct3D创建一组简单三角形的步骤:

1 创建一个顶点缓冲区

2 依据定义的顶点类型,用对象的每个顶点填充缓冲区。

3 使用希望的primitives类型(PointList,TriangleList)把缓冲区的内容绘制到设备上。

图形pipeline显示的每个场景最终都是三角形。系统将删除那些再culling进程中不可见的三角形,这个进程成为backface culling

9、 deviceReset事件

每当设备重新设置时,必须创建新的顶点缓冲区。实现的最佳方法是为DeviceReset事件注册一个事件处理程序

device.DeviceReset += new System.EventHandler(this.OnResetDevice);

转载于:https://www.cnblogs.com/kingplayer/archive/2006/10/15/529680.html

DirectX 基础总结笔记相关推荐

  1. Unity3D基础知识笔记

    Unity3D基础知识笔记 一.Unity简介 1)Unity3D概念 2)Unity3D的特点 二.Unity3D的发展历史 三.软件安装 一.Unity简介 1)Unity3D概念 Unity是由 ...

  2. UE5 Shader基础学习笔记——01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合

    UE5 Shader基础学习笔记--01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合 Lec01 ...

  3. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引...

    Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 原文:Introduction to 3 ...

  4. access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化

    往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...

  5. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

  6. DirectX 3D学习笔记(一)

    DirectX 3D学习笔记(一) Ⅰ.渲染状态 设备的渲染状态控制Direct3D设备的光栅化组件的行为.通过改变光栅渲染状态属性,可以设置使用何种方式来进行渲染着色,以及如何进行雾化等. 在Dir ...

  7. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  8. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...

  9. Python基础入门笔记(二)

    前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...

  10. 11岁过python1级_11岁表弟写的Python零基础入门笔记!

    一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...

最新文章

  1. Linux 裸设备基础知识(转)
  2. 分析JDK源码 | Java Object
  3. framebuffer的入门介绍-实现程序分析【转】
  4. 数据结构源码笔记(C语言):分块法查找
  5. 如何用C#在Excel中生成图表?
  6. C/C++ scanf 函数中%s 和%c 的简单差别
  7. 常见的字符函数与字符串函数介绍(1)
  8. 【Flink】Flink状态的缩放(rescale)与键组(Key Group)设计
  9. 【报告分享】2021开放数字资产价值报告:数字化孕育新的发展动能.pdf(附下载链接)...
  10. honeywell新风系统控制面板说明_详解装了新风系统,怎么清洗维护简单?
  11. 一次编辑 GridView 的所有行
  12. python pandas库-dataframe.pivot()方法的理解
  13. jsessionid和jwt_jsessionid
  14. error Code:410 Error Message:appid and openid not match 威富通技术支持,兴业银行微信支付接入支持
  15. 2021年中国水力发电装机量、发电量和竞争格局情况,总水电装机容量达391GW「图」
  16. 系统集成考前冲刺口诀
  17. CleanMyMac序列号密钥如何清理苹果电脑内存?
  18. Redis - PHP扩展 - phpredis - 安装和使用
  19. python狗品种识别_卷积神经网络(CNN)项目,给你一个狗的图像,你的算法将会识别并估计狗的品种...
  20. [C++日常小题] 寻找第k大数字(numberk)

热门文章

  1. C语言状态机编程进阶
  2. SIP信令中的PRACK的含义和使用
  3. Proteus仿真C51利用双定时器输出占空比可变的PWM
  4. Java实现多张图片转pdf
  5. (七)练习:美萍酒店管理系统中系统设置的房间管理选项卡部分测试
  6. arcgis中python计算面积的表达式_ArcGIS应用——四种计算图斑面积的方法
  7. Matlab imfilter函数
  8. 计算机发展史的第五个阶段,信息技术的发展历程是怎样的? 信息技术的发展历程分五个阶段...
  9. PLC对步进电机的快速精确定位控制
  10. Android——Binder机制