DirectX11(D3D11)
文章平均质量分 96
GamebabyRockSun_QQ
曾经拥有的,不要忘记,
已经得到的,更要珍惜,
属于自己的,不要放弃,
已经失去的,留着回忆,
想要得到的,必须努力,
但最重要的,是好好爱惜自己!
展开
-
DirectX12(D3D12)基础教程(十三)——D2D、DWrite On D3D12与文字输出
1、 前言 在经过了前面一系列章节的“狂轰滥炸”式的学习之后,如果你现在跟进到了这里,那么请为自己点个赞先! 从本章开始,教程内容都会开始使用Markdown方式进行发布。一方面主要是为了练习Markdown编辑器的使用;另一方面Markdown目前已经成为比较流程的程序文档的编辑方式,我也来跟跟潮流,也是让大家习惯Markdown。还有就是Markdown的公式编辑比较简洁,后续的文章中...原创 2020-03-12 01:37:43 · 6278 阅读 · 20 评论 -
为何D3D11的几个矩阵需要转置?
在学习D3D11的时候遇到一个问题,事情是这样的:D3D11引入了常量缓存(const buffer)用来实现数据的高速传输,这块儿buffer是CPU Only Write,GPU Only Read这样的特点,其他还是D3D9的惯例。在我调用完g_pD3DImmediateContext->Map的时候,出现了没有任何图像的问题,后经过改造后,显示终于正常了,先上代码: // ...原创 2017-10-10 14:21:59 · 1150 阅读 · 0 评论 -
DirectX12(D3D12)基础教程(一)——基础教程
目录1、前言2、调用D3D12的基本步骤和准备工作3、包含头文件和引用库文件4、定义待渲染3D数据结构5、定义变量6、创建窗口7、创建DXGI8、创建D3D2设备对象接口9、创建D3D2命令队列接口10、创建交换链11、创建RTV描述符堆和RTV描述符12、创建根签名对象接口13、编译Shader及创建渲染管线状态对象接口14、加载待渲...原创 2018-09-16 23:31:16 · 97966 阅读 · 190 评论 -
D3D11和D3D12多线程渲染框架的比较(五)
1. 多趟渲染与多线程渲染接下来让我们更进一步,再来设想一个更复杂的场景,还是之前那个一个线程(CPU线程)+命令列表(GPU线程)渲染一个正方体,另一个线程+命令列表渲染一个球体的例子,当然我们还要加入一个线程+命令队列渲染一个平面,而球体和正方体都放在这个平面上(看起来有点像素描,原谅我很懒没有配任何图像),只不过在这里我们加入了阴影效果(求此时你看懂这个问题时的原创 2017-12-17 21:51:23 · 3019 阅读 · 8 评论 -
D3D11和D3D12多线程渲染框架的比较(四)
1. 命令列表及命令的原生并行性至此如果你还没有看晕的话,或者说你已经明白了前面的这些概念铺垫之后,或许心中还有一个疑问就是为什么说可以用多个命令列表来记录可能不同的命令,最后再来执行,这样不同的命令队列之间会不会冲突呢(更直白的说不通的命令列表直接会不会有什么先后关系的约束从而使得异步执行这种方式失去了意义)?举例来形象的说明,比如我们用一个CPU线程+一个命令队列原创 2017-12-16 12:24:43 · 3197 阅读 · 16 评论 -
D3D11和D3D12多线程渲染框架的比较(三)
1. CPU线程和GPU线程的区别另外我们还需要深刻的理解的一个概念就是CPU线程和GPU线程的区别。1.1. CPU线程CPU线程在Windows操作系统中更多的是指一个存储了几乎所有CPU寄存器状态以及堆栈等资源信息的内核对象(可能还有内核安全信息等),是一个复杂的重量级的对象,并且在Windows中线程是最小的执行单元。同时得益于CPU单核原创 2017-12-15 08:47:46 · 5124 阅读 · 4 评论 -
D3D11和D3D12多线程渲染框架的比较(二)
1. 多线程的一些基础知识和问题1.1. 并发和并行如果你对多线程编程理解比较深刻的话,那么首先第一个要搞明白的概念就是“并发”和“并行”的区别,并发很多时候指的是在一个时间段内,共同执行的任务数。比如1秒钟之内轮流执行了50个左右的线程;再比如说一个网站的并发访问峰值是1秒钟10000次,这些任务中的某几个可能在某一时刻内是同时执行的也可能是在某个时间段内是先后执行的,但总原创 2017-12-13 21:56:13 · 3989 阅读 · 0 评论 -
D3D11和D3D12多线程渲染框架的比较(一)
前言 D3D12伴随DirectX12自2014年正式发布以来已经近3年多时间了。遗憾的是我最近才有时间仔细研究D3D12接口及编程方面的内容。D3D12给我总体的感觉用一句话来概括就是——D3D12是一个“显卡操作系统!”。 得益于我对Windows内核编程的深入了解和掌握,突然发现掌握起D3D12多线程渲染时居然可以无障碍学习,看来并不是学过的东西都会过时,这也是让我暗自窃喜的地方。正所谓原创 2017-12-13 20:25:32 · 11366 阅读 · 0 评论 -
D3D11设备接口的动态创建方法
在微软的例子中,提供了一种动态创建ID3D11Device接口指针的方法,发在这里,供大家参考.该方法的优势就是可以方便的判定系统中是否支持D3D11,并且针对可能的情况,通过MessageBox的方法,给出了可能的解决方案:HRESULT WINAPI Dynamic_D3D11CreateDevice( IDXGIAdapter* pAdapter, ...原创 2017-10-10 14:21:03 · 2042 阅读 · 0 评论