【Direct3D – 1】D3D基本概念解释

【Direct3D – 1】D3D基本概念解释概念是人们为了准确描述一个客观事物而总结提炼的关键词语

大家好,欢迎来到IT知识分享网。

概念是人们为了准确描述一个客观事物而总结提炼的关键词语。诸如数学中最基本的概念:点、线、面,函数……,物理中的“质点”等等,当我们过去在学习这些知识的时候,其实最重要的就是建立起对这些概念的准确认识,而只有当大多数人们对这些普适应的概念达成共识,学科才得以成立。

学生经常会做错题,最常见的原因就是没有理解概念。

在D3D的学习中,有以下概念需要掌握和理解。

D3D是一套底层的绘图API,从本质上讲,还是软件接口,我们通过这一些列接口,控制绘图硬件,为实际的计算机应用实现图形、三位图形建模应用提供方法。

渲染

  1. 创建D3D资源以及设备
    这一步,没什么可以说的,调用D3D提供的接口,传入对应的参数。以D3D9为例子:
Direct3DCreate9(); // 获得COM编程接口IDirect3D9 IDirect3D9->CreateDevice(); 通过IDirect3D9创建Device(设备)。 
  1. 确定坐标
    无论是二维还是三维场景,我们需要将数据展示在屏幕的什么地方,这就是首席按需要设定的,二维比较简单,可以直接使用屏幕坐标系,来确定, 但是三位就复杂了,软件中有四个主要的窗口,分为顶视图、正视图、侧视图和透视图。我们大多数时候渲染的是透视图而不是其它视图,透视图的摄像机基本遵循真实摄像机的原理,所以我们看到的结果才会和真实的三维世界一样,具备立体感。
    D3D中坐标系分为几种:局部坐标、世界坐标、观察坐标、投影工作表,这些坐标系就是我们从不同的角度去描述一个三位图形在计算机二维画面中怎么呈现出来的。具体之后的实践中会讲解。
    总的来说,坐标的确定,确定的就是我们将要显示的图形放在了屏幕的什么位置。


  2. 创建资源
    渲染的时候,图像数据需要保存,保存在表面(Surface)还是纹理(Texture),创建方式也是有区别的。本质上,Surface和Texture都是一块内存,将要存储是图形数据。而创建这些资源的时候,是基于2中确定好的坐标来创建的。
  3. 开始绘制
    绘制过程是一个复杂的过程,首先是设置资源(顶点、纹理等缓冲区)到设备数据流,然后是修改和改变视图的位置,这里的设备数据流指的是D3DAPI中的抽象数据,最后将数据流刷至屏幕。

简单来说,渲染的基本过程即使这样。可能有描述不准确的地方,但是大概过程就是如此,对于从未接触过D3D渲染的人来说,现有这样一个概念,通过代码实践之后,回来再看,就更深刻的了解这个过程了。

D3D设备

可以将D3D设备理解为一个接口的集合,这个接口的集合抽象了显卡的参数和资源,甚至可以理解为D3D设备就是简单本机一块显卡的抽象。使用 Direct3Dcreate9()接口可以创建一个设备,通过设备对象,可以调用其中的所有接口。

纹理

表示物体表面细节的一幅或几幅二维图形,也称纹理贴图(texture mapping)当把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实。纹理映射是一种允许我们为三角形赋予图象数据的技术;这让我们能够更细腻更真实地表现我们的场景。

就像我们肉眼看见的三维物体,不透明物体的内部我们肉眼看不见,肉眼所看见的仅仅是三位物体的表面,可以就D3D中的为例简单的理解为物体的表面,当我们在系统创建一个三维的立方体的时候,每一个三位物体的二维表面,就是我们使用纹理来绘制的。

本质来讲,纹理就是系统中的一块被特殊说明的内存。这块资源的操作方法,有却别于系统的普通内存。

三角形

在Direct3D中经常会出现“三角形”这个概念。这是因为在3D图形渲染中,所有的物体都是由三角形构成的。因为一个三角形可以表示一个平面,而3D物体就是由一个或多个平面构成的。

交换链(SwapChain)

DirectX的抽象层次

在这里插入图片描述
知道D3D API处于计算机系统的那个层次很重要,类比C++编程模型,最底层是硬件,上一层是可以直接操作硬件的汇编,然后是更高级的语言C++; 而上图中的 HAL(硬件抽象层)们可以劣迹为显示硬件的上层“汇编”。

本文错误在所难免,随着深入的学习,期望不断深入理解。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/114873.html

(0)
上一篇 2025-12-06 13:33
下一篇 2025-12-06 14:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信