• 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库

    相关概念

    1. Effect框架是微软额外提供的一个程序框架,用于管理着色器程序和渲染状态的工具代码,使用户在程序中使用shader时与C++程序更方便地衔接。这个框架对于编写D3D程序来说不是必需的,好比D3DX库对于D3D程序来说也是可有可无的。但它毕竟大大方便了我们使用shader,在学习过程把心思放在要点上,因此在后面学习过程中将全程使用Effect框架。

    在Direct3D 11中,Effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接一个单独的库文件(Effects11.lib用于release生成,而Effects11D.lib用于debug生成)。

    而且,在Direct3D 11中提供了effect库的完整源代码(DirectX SDKSamplesC++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运算,因此不同架构的显卡不可以再按单元数量评判优劣。 这种统一架构避免了传统架构中资源分配不合理造成的浪费现象。

     

     

  • 相关阅读:
    笨蛋的厄运
    模仿写了一个摸鱼应用解决原作者的问题
    retain和copy还有assign的区别
    分析与理解通知消息WM_NOTIFY
    备忘录
    数据结构C++模板实现之单向链表
    服务器(VPS合租)
    复制构造,赋值操作符,const重要性
    Windows 注册表操作简介
    窗口类封装之窗口对象消息处理的映射方法(1)
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/13600549.html
Copyright © 2020-2023  润新知