DirectX 基础总结笔记
即显卡。指硬件及其驱动程序
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 基础总结笔记相关推荐
- Unity3D基础知识笔记
Unity3D基础知识笔记 一.Unity简介 1)Unity3D概念 2)Unity3D的特点 二.Unity3D的发展历史 三.软件安装 一.Unity简介 1)Unity3D概念 Unity是由 ...
- UE5 Shader基础学习笔记——01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合
UE5 Shader基础学习笔记--01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合 Lec01 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引...
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 原文:Introduction to 3 ...
- access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...
- guido正式发布python年份_Python 基础学习笔记.docx
Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...
- DirectX 3D学习笔记(一)
DirectX 3D学习笔记(一) Ⅰ.渲染状态 设备的渲染状态控制Direct3D设备的光栅化组件的行为.通过改变光栅渲染状态属性,可以设置使用何种方式来进行渲染着色,以及如何进行雾化等. 在Dir ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步
http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...
- Python基础入门笔记(二)
前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...
- 11岁过python1级_11岁表弟写的Python零基础入门笔记!
一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...
最新文章
- Linux 裸设备基础知识(转)
- 分析JDK源码 | Java Object
- framebuffer的入门介绍-实现程序分析【转】
- 数据结构源码笔记(C语言):分块法查找
- 如何用C#在Excel中生成图表?
- C/C++ scanf 函数中%s 和%c 的简单差别
- 常见的字符函数与字符串函数介绍(1)
- 【Flink】Flink状态的缩放(rescale)与键组(Key Group)设计
- 【报告分享】2021开放数字资产价值报告:数字化孕育新的发展动能.pdf(附下载链接)...
- honeywell新风系统控制面板说明_详解装了新风系统,怎么清洗维护简单?
- 一次编辑 GridView 的所有行
- python pandas库-dataframe.pivot()方法的理解
- jsessionid和jwt_jsessionid
- error Code:410 Error Message:appid and openid not match 威富通技术支持,兴业银行微信支付接入支持
- 2021年中国水力发电装机量、发电量和竞争格局情况,总水电装机容量达391GW「图」
- 系统集成考前冲刺口诀
- CleanMyMac序列号密钥如何清理苹果电脑内存?
- Redis - PHP扩展 - phpredis - 安装和使用
- python狗品种识别_卷积神经网络(CNN)项目,给你一个狗的图像,你的算法将会识别并估计狗的品种...
- [C++日常小题] 寻找第k大数字(numberk)