dx11学习 (一、二)
开始做dx11的支持工作啦,也是个学习的过程,记录一下吧,这些内容原作者放在好几篇博客中
一、
下边是上手的一个博客地址:
https://www.cnblogs.com/Ray1024/p/6048842.html
dx SDK下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=6812
示例代码:
http://www.d3dcoder.net/d3d11.htm
看完这个博客之后的总结:
1. 安装SDK环境
2. 链接dx库
附 相关概念
在Direct3D 11中,Effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接一个单独的库文件(Effects11.lib用于release生成,而Effects11D.lib用于debug生成)。
而且,在Direct3D 11中提供了effect库的完整源代码(DirectX SDK\Samples\C++\Effects11)。因此,你可以根据需要修改effect框架
2. D3DX中有很多函数以D3D或者以D3DX开头,譬如D3DCOLOR与D3DXCOLOR。
D3D更底层,而D3DX是基于D3D实现的,更加功能强大的函数库。
其中,D3DXMATERIAL指的是广义的材质结构,即纹理+材质,而D3DMATERIAL9则表达的是单纯的材质,即物体对光照的反射作用。
二、
这里讲述了d3d的部分基础知识,虽然在相关资料中也可以查到,博客中的针对性还是比较强:
https://www.cnblogs.com/Ray1024/p/6065598.html
总结:
纹理:
texture,即我们常像素,超级采样和多重采样时都会使用4x的存储,但能减少锯齿效应(阶梯效应),有1D、2D、3D
深度缓存:
初值为1.0(远端,最小值0.0)渲染时有更小的深度值,则替换该位置,最终得到最近的像素。
显卡架构:
dx9时代以独立的并行处理单元,即,顶点着色器和像素着色器数量来评判显卡好坏,在每个周期输出受VS(顶点着色器)、ps、tmu、rop(像素着色单元、纹理单元、光珊引擎构成一条渲染管线)中数量短的制约。
dx10之后的显卡为提高处理显卡单元的使用率,不再区分顶点着色器、渲染管线,第个流处理单元在执行任意一种shader运算,因此不同架构的显卡不可以再按单元数量评判优劣。 这种统一架构避免了传统架构中资源分配不合理造成的浪费现象。