原文:Direct3D基础知识

重新从头开始学习DX,以前太急于求成了,很多基础知识都没掌握就开始写程序了,结果出了问题很难解决.
1.       D3D体系结构
D3D与GDI处与同一层次,区别在于,D3D可以使用HAL(Hardware Abstraction Layer)通过DDI来访问图形硬件,充分发挥硬件性能.
2.       D3D设备对象
2.1 D3D设备类型
HAL,支持硬件加速光栅化和硬件或软件处理
Software Device,硬件模拟层
REF,reference device,SDK专用.不过nVidia的PerfHUD就是用的这种设备类型
2.2   D3DPRESENT_PARAMETERS
1: typedef struct D3DPRESENT_PARAMETERS {
 2:     UINT BackBufferWidth, BackBufferHeight;//后台缓冲区宽高
 3:     D3DFORMAT BackBufferFormat;//后台缓冲区像素格式
 4:     UINT BackBufferCount;//后台缓冲区的数量
 5:     D3DMULTISAMPLE_TYPE MultiSampleType;//多重采样类型,用于反锯齿
 6:     DWORD MultiSampleQuality;
 7:     D3DSWAPEFFECT SwapEffect;//后台缓冲区复制到前台缓冲区的方式
 8:     HWND hDeviceWindow;//图形绘制窗口
 9:     BOOL Windowed;//窗口/全屏
10:     BOOL EnableAutoDepthStencil;
11:     D3DFORMAT AutoDepthStencilFormat;
12:     DWORD Flags;
13:     UINT FullScreen_RefreshRateInHz;//刷新速率,窗口时必须为0
14:     UINT PresentationInterval;
15: } D3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS;
BackBufferWidth与BackBufferHeight为0时系统自动使用当前窗口客户区宽高
BackBufferCount取0和1时都表示一个后台缓冲区
hDeviceWindow为NULL时默认为当前被激活的窗口
BackBufferFormat取D3DFMT_UNKNOWN时,像素格式取当前显卡的像素格式
2.3   CreateDevice中的BehaviorFlag
D3DCREATE_HARDWARE_VERTEXPROCESSING,硬件顶点运算
D3DCREATE_MIXED_VERTEXPROCESSING,软硬件共同进行顶点运算
D3DCREATE_MULTITHREADED,多线程绘制,会降低性能
D3DCREATE_SOFTWARE_VERTEXPROCESSING,软件顶点运算
              通常某些集成显卡不支持硬件顶点运算,如intel 的GMA900/950
2.4   D3D绘制
Clear(),可以清空颜色缓冲区,深度缓冲区,模板缓冲区.可以选择清除区域
BeginScene()和EndScene()不允许嵌套
Present(),可以指定更新区域(脏矩形技术?),不过要求用D3DSWAPEFFECT_COPY
3.       D3D设备对象
全屏模式:
枚举显示适配器(多显示器适用)
IDirect3D9::EnumAdpterModes()枚举支持的显示模式
IDirect3D9::CheckDeviceType()检测显示模式是否支持硬件加速
IDirect3D9::GetDeviceCaps()检查渲染设备是否支持所需要的功能(显卡兼容性检测)
IDirect3D9::CheckDeviceFormat()检测其它表面格式是否支持
IDirect3D9::CheckDepthStencilMatch()检测深度/模板缓冲区是否和渲染目标兼容
IDirect3D9::CheckDeviceMultiSampleType()检查设备是否支持多重采样(反锯齿用)
窗口模式:
直接用D3DADAPTER_DEFAULT就可以忽略前两步了,剩下的都一样
设备丢失:
图形显示丢失焦点,必须重新创建相关资源
任何显存资源在设备丢失时必须销毁,包括CreateAdditionalSwapChain()创建的交换链和D3DPOOL_DEFAULT格式的内存资源
4.       D3D表面
表面格式:通常有两个属性,表面大小与颜色位数
表面翻转:将后台缓冲区移动到前台缓冲区的过程
交换链:按顺序逐个提交到前台显示的多个后台缓冲区的集合
多个视图的应用程序用多个交换链
访问表面内存:IDirect3DSurface9::LockRect(),不适用于多重采样后台缓冲区

【转载】Direct3D基础知识相关推荐

  1. 转载 前端基础知识体系 一个新手的学习之路

    原帖地址:  转载的原因是我学习前端和php已经4个多月了.看看自己还有那些不足.自己得努力学习,牛人太多.红色是我会的,或者学过的.希望今天把大部分飘红. 一.HTML 标签的分类 标签表示一个元素 ...

  2. DIRECT3D基础知识 ---- 渲染与纹理 及位图,顶点缓存释义

    什么是渲染: 渲染-采集下的数字影片进行了剪接.加效果.加字幕.音乐等操作,当生成影片时需要将后加入的素材融合到影片中并压缩成为影片最终格式,这个过程就是渲染. 什么是纹理? 早期的计算机生成的3-D ...

  3. [转载] 白酒基础知识

    本文是转载:http://www.newsmth.net/nForum/#!article/ShiDa/96947 白酒的历史只有短短的 400-500 年左右,起源是蒙古人西征带来的阿拉伯的蒸馏器. ...

  4. (转载)FPGA基础知识------PS/2基础知识

    本篇博客转载来源于http://www.cnblogs.com/kingst/,仅供学习. 3.2 实验八:PS2解码 PS2的简单认识 在以前使用单片机对PS2进行解码的时候,一句话就是苦. 如果是 ...

  5. [转载]Linux基础知识之挂载详解(mount,umount及开机自动挂载)

    挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点& ...

  6. [转载] 服务器基础知识

    1. 什么是服务器     就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息.资料和文件.可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存 ...

  7. 计算机入坠选择题,[转载]计算机基础知识题库(五)

    61.3.5英寸软盘的写保护窗口被可移动滑块挡住时,此时 A)只能读盘,不能写盘 B)只能写盘,不能读盘 C)既可写盘,又可读盘. D)以上说法都不对 解答:3.5英寸软盘的写保护窗口被移动滑块挡住时 ...

  8. 说好的幸福计算机弹奏,[转载]计算机基础知识题库(六)

    80.下列四个数中,最小的是( ). A)32 B)36Q C)22H D)10101100B 分析:在数制表示中,Q代表八进制,B代表二进制,H代表十六进制,如果数字之后不带字母,则默认为十进制.本 ...

  9. [转载] python基础知识三——try与except处理异常语句

    参考链接: Python异常处理使用try,except和finally语句 try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的 ...

最新文章

  1. iOS架构-静态库.a的脚本化打包及使用(3)
  2. 【语法】点语法的应用
  3. 话筒增益_话筒啸叫怎么办?教你四个解决话筒啸叫的方法!
  4. [资源分享] TensorFlow 官方中文版教程来了
  5. Linux环境下安装Mysql5.7
  6. unity 自动将文件上传_unity如何存储文件夹
  7. mysql中 REPLACE INTO 和 INSERT INTO 的区别
  8. Oracle异常汇总
  9. qt 进度条最小_QT:圆形进度条设计
  10. Python进行UDP编程
  11. GIS公司分布图GIS院校分布图
  12. LCP 19. 秋叶收藏集(C++)---动态规划解题
  13. 量子笔记:量子计算祛魅
  14. MySQL随机生成customers表姓名,密码,性别,出生日期,电话,邮箱,收货地址,客户等级创建账号时间(function函数)
  15. 使用QQ邮箱无法收到Github上发送的验证码?
  16. 文读懂安防视频监控系统中H.265、SVAC、GB/T28181、ONVIF、PSIA的区别。
  17. 嵌入式单片机基础篇(二十七)之Stm32F103单片机给蓝牙模块发送AT指令程序
  18. VSC 注册右键菜单
  19. 阿里云发布的数加是什么鬼
  20. 音频之声道、采样位宽、采样率转换原理及其代码实现

热门文章

  1. php接收不到ios值,php设置标签后,ios收不到,安卓可以收到
  2. java中的udp丢包_UDP丢包问题
  3. redis——数据结构(整数集合,压缩列表)
  4. 算法(28)--矩阵搜索系列
  5. 推荐算法--利用用户行为数据(02)
  6. 《剑指Offer》23:链表中环的入口节点
  7. Windows上同时运行两个Tomcat
  8. 使用openssl完成aes-ecb模式的数据加解密,输入和输出都是字符串类型
  9. Android Canvas绘制带箭头的直线
  10. Android设计模式之——策略模式