zoukankan      html  css  js  c++  java
  • DirextX Training笔记

    1. DirextX是一套图形编程的API,它内部实现基于的是WDDM (windows display driver model)。WDDM的主要功能包括:图形功能的核心实现,显存管理,GPU调度和各种3D功能。

    2. WDDM1.0是Vista引入的。从它开始,才支持显存虚拟化、GPU调度这些对物理内存和CPU老早就有的机制。

    3. 显卡的驱动包括用户态(*.sys)和内核态(*.dll)。

    4. Windbg对于内核态debug非常好用;用户态下,也值得一试(张银奎的demo)。用Windbg调试挖地雷,在例子中:挖地雷用的是Dx9的API,pc上装的Dx11,然后显卡支持Dx10。Remote Debugging是必须的,因为调试内核态是不能pause当前pc的OS的。

    5.  Dx11引入了很多新的有价值的特性:严格的Dx10超集;Shader Model 5.0;Tessellation;Direct Compute。

    6. 从Dx10开始,要求显卡硬件厂商必须全部实现了一个Ms规定的Feature list才能标称支持一个版本的Dx。Dx10之前,显卡声称支持某个DxXX,其实只是支持了一部分feature,这就对Dev编程造成了很多问题。ID3d11Device::GetFeatureLevel来检查硬件级别。

    7. Dx11的兼容模式:让应用程序既可以在Dx10/11硬件上运行,也可以在Dx9硬件上运行。我们的代码,在于Dx运行时接口的部分,编写两套代码:针对Dx9;针对Dx11。由于Dx11是Dx10的严格超集,所以,Dx10的硬件直接调用Dx11的那套代码是没有任何问题的。

    8. Dx11的tessallation:

    切分三角面片对于图形显示非常重要。对于游戏和三维图形软件来说,是实时render;对于电影来说,则是离线render。 离线render,可以按帧渲染,所以,可以无限切分三角面片来获得最佳显示效果。而实时render,则必须要平衡切分程度和render性能的问题。Tessellation的作用在于从GPU level对游戏或三维软件切分后的mesh数据进一步切分,从而获得更好的显示效果并平衡性能的损耗。

     

  • 相关阅读:
    【QT】Linux下安装QT开发环境
    【C#】Winform嵌入dll到exe中
    使用maven插件构建docker镜像并推送到阿里镜像仓库
    蓝牙耳机连接 win10音量异常
    max virtual memory areas vm.max_map_count [65530] is too low
    docker 安装 confluence
    jenkins docker push脚本
    docker 删除指定名称的所有容器
    docker 安装 xxl-job-admin
    docker 安装 sentinel
  • 原文地址:https://www.cnblogs.com/taoxu0903/p/1775143.html
Copyright © 2011-2022 走看看