DirectX11入门教程——第二篇:DirectX11的基础知识
本系列系作者原创,可随便转发但一定要注明出处
刚才明明说尽量不跳章的,为啥一进来就变成第二章,这里首先用几句话说明一下原因:因为第一章我想留给更基础更概念的GPU发展史和管线描述。在此对不起大家了。不过我保证这个系列初步成型后绝对不跳章
2010年5月微软发布了DirectX11这个DirectX SDK系列家族的最新成员,伴随着SDK的升级,DirectX11带给我的是功能的扩展,性能的改善,GPU存储空间的完全虚拟化等一系列好处!下面简要说明一下DirectX11相对于系列前辈的主要新特征:
关于Direct3D10特性的继承(针对有经验的读者)
由于Direct3D11是在对Direct3D10进行扩展设计的原则下产生的。其改动有:设备丢失处理废弃,CAPS Bit废弃,
固定流水线终于被废弃,但Geometry Shader得到了保留。
Computer Shader
相对于CPU作为操作系统、一般应用程序的通用架构来说,GPU一直作为图形,图形处理的专用架构来使用。由于Computer Shader的出现,GPU终于可以做为专也图形处理以外的数据并行处理等通用架构来使用了!
这里要做一点说明的是:Computer Shader是通过Direct3D设备被其他图形处理系的Shader和资源共享的!不能直接与其他Shader进行连接!
Tessellation
一句话就是:将精度比较低的Primitive进行分割,以获得更高精度的Primitive的功能,该功能为一个阶段3个单元
其中Hull和Domain是可编程的,Tessellator是固定管线,具体为啥要这么设计后面高级部分会进行详细说明
MultiThread Rendering
由于Direct3D11强化了多线程处理,以前的ID3D9Device、ID3D10Device在Direct3D11中被一分为二,即:
ID3D11Device和ID3D11DeviceContext。ID3D11DeviceContext被分类为ImmediateContext和DeferredContext。其中ImmediateContext为Device直接渲染的DeviceContext所以只能有一个,单线程渲染的情况下也只需要创建一个ImmediateContext即可。相对的DeferredContext可以有多个他们被主线程以外的工作线程使用。
动态 Shader Link
对于一般的的渲染过程,对于不同Material需要切换不同的Shader进行渲染。因此渲染的对象不同可能需要使用的Shader也不同。在解决这个问题上一般有两个方案:1 创建一个具有所有功能的万能Shader。只制作所需的不同原子功能的Shader组件,以后对他们进行组合就行了。第一种方案无疑是以牺牲性能为前提的。第二种方案由于组合Shader的增加,引擎需要管理数量爆炸的Shader组合。动态 Shader Link的引入无疑解决了第二种方案产生的棘手问题。
Feature Level的支持
在Direct3D10的时代,使用Direct3D10的应用程序的运行必须得到硬件的支持,在Direct3D11中由于引入了6个阶段的FeatureLevel,对于Direct3D9/10/11的硬件设备 根据对应的FeatureLevel都能运行使用Direct3D11特性的应用程序。因此有人说使用了Direct3D11特性的程序只能在Direct3D11设备上运行完全是谬论!
Resource
Direct3D11定义了读取专用/写入专用,结构体Buffer等各种新类型的Resource。这里就不做更多复数了。更让人激动的是Direct3D11终于支持了大于4G的Resource,这虽然让人激动,但还是需要注意:Resource Index仍然是32位。这一点可能稍微让人有点不爽!
Shader Mode 5.0
Direct3D11中SM终于升级到5.0了,大家鼓掌!!!与Direct3D10一样采用了 Unified-Shader的架构,即:包括Computer Shader在内所有Shader都是用同样的HLSL通用语法。关于HLSL我在想是另外放在Shader专题里呢还是混在这个入门教程里讲。这个希望大家能给点意见。
WARP(Windows Advanced Rasterizer)
手有点累了,这个内容也有点烦了,随让我是个没长性的人呢?暂时写到这里,本章未完待续。
DirectX11入门教程——第二篇:DirectX11的基础知识相关推荐
- 狸窝音频剪辑软件_剪映零基础入门教程第二篇:剪辑软件剪映的音频功能怎么样...
在制作短视频的时候大家常用的剪辑软件有哪些呢?说实话目前市面上的剪辑软件还是比较多的,有时候让用户们都纠结于到底哪款软件才是最好用的那款呢?但是我想用的最多的还是抖音自家推出的小软件剪映吧,不仅仅是因 ...
- matlab 判断两个矩阵有元素相等_Matlab入门教程 第 1 章 Matlab基础知识之基本运算...
1.6 Matlab 基本运算 Matlab 包含三种运算:算术运算.关系运算和逻辑运算. 1.6.1 算术运算 ① 基本算术运算 基本算术运算符:+.-.*./(右除).\(左除).^(乘方) ? ...
- 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...
经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...
- 九宫怎么排列和使用_广告视频配音剪映零基础入门教程第二十三篇:剪辑之九宫格教程...
朋友圈最火九宫格视频你们知道是怎样制作的吗?我们常常在玩朋友圈的时候想用九宫格照片,但是你们有没有遇到这种情况,想玩九宫格却发现找不到那么多能用的照片,那这时候怎么办呢?玩腻了平常图片的发法,今天我们 ...
- 第二篇:Go基础入门
第二篇:Go基础入门 2.1.第一个Go语言程序 下面我们就要正式进入Go语言的学习了. 首先还是一个传统的仪式:用程序在屏幕上输出"hello world" 步骤: 1.新建一个 ...
- 微信公众号开发入门教程第一篇
微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...
- JNI入门课程-第二章:JNI基础调用
序章: 1.本篇是JNI入门教程的第二篇,偏基础功能的实现.完整教程连接如下: https://blog.csdn.net/rzleilei/article/details/122084609http ...
- EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念
目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application ...
- ESP32-C3入门教程 IoT篇⑦——微软云 Microsoft Azure 物联网 IoT Central EspAzureIoT 实战
文章目录 一.前言 二.微软云 Microsoft Azure 物联网 IoT 三.Azure IoT Central 实操 四.编译下载运行 五.源码浅析 六.运行效果 七.其他 八.参考 一.前言 ...
最新文章
- LabVIEW读写各类格式图像的方法(基础篇—1)
- kernel 自定义字符驱动 第一次实验
- Microchip PIC系列8位单片机入门教程(七)PWM
- python程序写诗_用Python光速为你写诗
- Ceph新建monitor或者osd报错:use --overwrite-conf to overwrite
- matlab实现转换音频格式文件,mp3到wav的转换
- C++ 单例模式-打印机案例
- MultiWarhead 球缺罩界面设计
- 基于LayUI使用FullCalendar实现日程管理
- idea的git报错You have not concluded your merge
- B站千万粉丝——老师好我叫何同学
- .net wap网站开发资料收集
- xp没有本地计算机策略,WinXP没有网络适配器怎么添加?本地连接消失了如何恢复?...
- diy nas配置推荐2019_打造家用NAS之一(2019年版)
- a-table的数据内容特定处换行处理
- WebRtc视频特效
- python多线程详解 Python 垃圾回收机制
- [js高手之路] dom常用API【appendChild,insertBefore,removeChild,replaceChild,cloneNode】详解与应用
- 业务巡检系统的整体设计和数据流程
- 杰理之EQ常见问题【篇】
热门文章
- 论文《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
- 上榜 | Navicat 入选信通院发布《全球数据库产业图谱》
- Flying.Swords.of.Dragon.Gate.2011.720p.HDTV.x264-NGB龙门飞甲
- 驱动注册和设备注册分析-1
- python两人一碰_用Python实现经典90坦克大战(支持单双人模式)
- 吐槽编程问题的五张漫画
- 缓解焦虑症的4个方法,让你重拾生活的信心和勇气
- 智能门锁:指纹识别概述
- 阅读《从0到1》(Zero to One)
- Messager for sch_zhj@hotmail.com