摸爬滚打DirectX11_day01——VS2015与DirectX11的配置

2023-11-12

什么是DirectX11?


DirectX,微软提供的应用程序接口集(APIs),被设计为在运行 windows 操作系统平台上用来提供给开发人员控制硬件的底层接口。它的各个组件提供了访问不同硬件的能力,包括图形(显卡),声音(声卡),GPU,输入设备以及所有的标准接口(译者注:比如游戏操纵杆,鼠标等)。
DirectX 是首先被游戏制作者用来在 Windows 和 Xbox 平台上使用的标准 API 集。它是在设备上提供驱动层来操作硬件的。(注意:Xbox369 使用 DirectX9 之后的版本开发)

DirectX11与之前版本的比较


Direct3D 10 的 API 相比于前一个版本是显得轻量的,并且其 API 比过去的版本都更加的容易使用。
与其他版本一个显而易见的不同就是在 Direct3D 10 中移除了固定的函数管线,而被移除的部分却是渲染状态和在 API 中构建算法来允许使用公共特效渲染对象的一个必须的集合。在图形硬件上面移除固定函数管线取而代之的是可编程着色器。
在 Direct3D 9 中,我们能够通过着色器来渲染几何体,开启光照只需要设置少量的性质和渲染状态,那些 API会转化我们的几何体使得发布时只需要调用少量的 Direct3D 函数。在 Direct3D 10 中我们依旧能够通过着色器做上述所有的事情,而且还能做得更多。初学者需要记住的关键一点是当第一次学习图形编程时固定管线被内建的 API所限制,而着色器允许我们创建任何特效,唯一的限制是游戏中的帧率。想使用光照?只需要掉了 Direct3D 函数来开启它并且设置它的属性(上限是 8 种光照)。想通过多幅图像渲染表面?只需要开启它。甚至能够表现你所想要的基于像素的模糊运行和深度域,而使用固定管线就没那么幸运了。
DirectX 11 更像是 DirectX10.1 的一个增强版本而不像从 DirectX9 到 DirectX10 的主版本升级。

DirectX的组成部分


DirectX 是一个代码库集合,提供给游戏和多媒体应用一个公共的函数集合。为了确保你的游戏只需要使用必须的函数,DirectX 被划分为多个组件。
DirectX API 被划分为多个组件,使得每一部分都只响应系统的一个方面。组件之间的 API 相互独立,从而允许使用你的游戏所要求的那部分。在最新版本中,一些组件已经被更新,例如 Direct3D 组件,而另外一些部分像之前的版本一样被保留下来直到微软将他们移除(如果他们是过时的组件)。DX 之间的组件应新函数要求被独立的更新。

我的第一个DirectX程序


关于VS2015下DirectX11的配置
可以参考:
传统D3D11程序面向VS2015编译环境的配置修正细节
VS2015update2环境下DirectX11编程说明(2016.5.5更新)
龙书D3D11 Demo配置(VS2015+win10)


官方Sample

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

摸爬滚打DirectX11_day01——VS2015与DirectX11的配置 的相关文章

  • Unity小游戏-勇闯小岛(PC) 项目展示+完整项目源码

    游戏录像 游戏玩法 主角可以变换四种状态 玩家通过四种状态特有的技能来击败眼前的怪物闯关 切换到棕色 有一个一直围绕自己旋转的大摆斧攻击敌人 切换到绿色 可以抵挡一切的投掷物 但是无法攻击敌人 切换到粉色 切换瞬间可以发出飞镖 切换到蓝色
  • Unity 使用LineRenderer连接2个物体

    1 在Hierarchy面板中创建2个GameObject A和B 这就是希望连接的2个物体 2 同理创建1个EmptyObject C 挂上LineRenderer组件 记得给Materials赋值 3 创建1个新的C 脚本LineMan
  • 【cc3.x】顶点着色器和片元着色器小记

    cc3 x cocos creator3 x 的着色器demo有点少 而且讲的不是很清晰 我这种业余自学小白学的真的很艰难 不过好赖算是啃的差不多了 所以有了这则小记 权当备忘录了 首先顶点着色器 上一段代码 CCProgram vs pr
  • UE5学习笔记(一)——界面功能梳理&第一天知识点记录

    学习UE5的第一步 是软件安装 默认是安装好的 由于安装没有太多技术含量 所以就没有专门做记录 这里有个注意点 虚幻引擎是整合在Epic games launcher中的 也就是说开发引擎内嵌在游戏平台上 打个比方 就是如果你要下unity
  • unity3d大型互动照片墙

    1 本次应客户需求 制作一个大型照片墙互动 输出分辨率为9600 4320 注 unity3d官方推荐最大分辨率为8192 3686 4 经过现场长达24小时暴力测试中途未发生问题 姑且判定可以达到正常标准 废话不多说 先上效果 unity
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • DirectX 11 像素着色器 什么是 SV_POSITION?

    我正在学习 DirectX 11 的 HLSL 我想知道 SV POSITION 究竟是什么 它是顶点着色器的输出和像素着色器的输入 1 这是屏幕上每个像素的 x y z 还是物体的 x y z 2 为什么是4个32位浮点数 3 顶点输出需
  • JavaFX EXCEPTION_ACCESS_VIOLATION

    我对 JavaFX 桌面应用程序有疑问 特别是 3D 渲染功能 每次我尝试构建和启动 JavaFX 应用程序时 JVM 都会崩溃 并且会收到类似于以下错误的错误 A fatal error has been detected by the
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 使用 Media Foundation 对 Direct X 表面进行编码

    我正在尝试使用 MediaFoundation API 对视频进行编码 但在将示例推送到 SinkWriter 时遇到问题 我正在通过桌面复制 API 获取要编码的帧 我最终得到的是一个包含桌面图像的 ID3D11Texture2D 我正在
  • 用于光线/网格相交的 DirectX 11 计算着色器

    我最近将使用 D3DXIntersect 查找光线 网格交点的 DirectX 9 应用程序转换为 DirectX 11 由于 D3DXIntersect 在 DX11 中不可用 我编写了自己的代码来查找交点 该代码仅循环网格中的所有三角形
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 错误 LNK2019:函数 ___tmainCRTStartup 中引用了无法解析的外部符号 _wWinMain@16

    我开始使用 DirectX 11 并收到以下编译错误 错误 1 错误 LNK2019 无法解析的外部符号函数 中引用了 wWinMain 16 tmainCRT启动 错误 2 error LNK1120 1 unresolved exter
  • DirectX 11 叠加

    我正在为游戏编写 DirectX 11 覆盖 创建纹理非常简单 而且我对 C C 有很好的了解 我遇到的问题是在我的测试窗口中我可以打印纹理 但是一旦我改变相机角度 纹理就会随之移动 这就是大多数人想要的 我想知道的是如何以 2D 打印某些
  • DirectX 11 ClearRenderTargetView 恢复透明缓冲区?

    我正在尝试创建一个使用 directx 进行绘制的窗口opaque上面的内容透明的视图 即桌面显示出来 使用 DirectX11 我尝试执行以下操作 但它并没有使背景透明 事实上 我输入的任何不透明度值都会给出完全相同的结果 我在做什么 f
  • 如何在使用 Cmake 构建期间编译 HLSL 着色器?

    我正在开发 d3d 应用程序 我想在使用 cmake 构建期间编译我的 hlsl 着色器 我不知道从哪里开始 这是我当前的 CMakeLists txt cmake minimum required VERSION 3 20 project
  • 使用 DeviceCreationFlags.Debug 启动 SharpDX/DirectX 应用程序

    我正在尝试启动我的 directX SharpDX 应用程序DeviceCreationFlags Debug但我在启动时遇到以下崩溃 SharpDX SharpDXException HRESULT 0x80004005 Module G
  • DirectX11 2 窗口渲染

    如何使用 DirectX 将对象渲染到 2 个独立的窗口中 您需要为每个窗口创建一个 SwapChain 和 RenderTargetView 1 如果您通过 CreateDeviceAndSwapChain 创建设备 则需要先获取 IDX
  • 在 direct3d11 对象上使用 std::shared_ptr 的自定义删除器

    当我使用 std shared ptr 并需要自定义删除器时 我通常会创建对象的成员函数以方便其销毁 如下所示 class Example public Destroy 然后当我使用共享 ptr 时 我只是这样做 std shared pt

随机推荐

  • 【快速实现List转Map,stream去重、过滤、筛选、拼接方法的使用】

    一 List转List List对象转List单字段 List
  • 基于SSM的遂川特产销售管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 遂川特产销售系统当然也不能排除在外 遂川特产销售系统是以实际运用为开发背景 运用软件工程开发方法 采用SSM技术构建的一个
  • QT界面美化与添加多个界面

    一 在QT界面中添加图片 首先在工程中添加源文件 右键选择class1 选择Add new 如下图 添加完成之后会出现源文件夹目录 然后右键选择 qrc文件 然后选择Open in Edit 5 再点击鼠标位置 创建目录 只留下 表示根目录
  • VS Code 源码分析 - 多语言实现

    NO 1 前言 传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案 切换语言时通过数据流的变化使得界面根据文案重新渲染 但由于 VS Code 架构的复杂性 需要有一套能兼容 Electron 渲染窗口 Ch
  • Jedis介绍及配置(Java操作Redis)

    Jedis介绍及配置 Java操作Redis 一 Jedis是什么 jedis就是基于java语言的redis客户端 集成了redis的命令操作 提供了连接池管理 redis cli是redis官方提供的客户端 可以看作一个shell程序
  • [ctfshow]web入门——命令执行(web54-web71)

    文章目录 system过滤 web54 web55 web56 web57 disabled function绕过 web58 web59 web60 web61 web62 web63 web64 web65 wbe66 web67 we
  • SpringMVC的数据响应(页面跳转、回写数据)

    SpringMVC的数据响应 一 SpringMVC的数据响应 01 SpringMVC的数据响应 数据响应方式 02 SpringMVC的数据响应 页面跳转 返回字符串形式 03 SpringMVC的数据响应 页面跳转 返回ModelAn
  • 找不到MSVCP140_1.dll、VCRUNTIME140_1.dll,打不开designer解决方法

    在使用designer的时候报了两个缺少运行库的错误 查了很多方法 最后看到需要下载这两个库 在这里下载 https cn dll files com vcruntime140 1 dll html 我是win10系统 下载完之后把它俩丢进
  • 快速搭建测ceph

    一 cephadm介绍 Cephadm是一个由Ceph社区维护的工具 它用于在Ceph集群中管理和部署Ceph服务 它是一个基于容器化的工具 使用了容器技术来部署Ceph集群的不同组件 使用Cephadm 管理员可以通过简单的命令行界面在整
  • Spring boot 拦截器的编写

    编写拦截器需要在Controller层 编写两个类 一个类类名 Interceptor1 类名没有特定要求 另一个类名 InterceptorConfig 类名没有特定要求 InterceptorConfig类实现WebMvcConfigu
  • python-OpenCV-人脸、眼睛,微笑检测

    文章目录 前言 一 人脸检测是什么 二 案例 总结 前言 随着人工智能的不断发展 OpenCV这门技术也越来越重要 很多人都开启了学习OpenCV 本文就介绍了OpenCV的基础内容 提示 以下是本篇文章正文内容 下面案例可供参考 案例 F
  • python中如何导入math模块_Python中的math模块如何进行数学运算?

    在数学之中 除了加减乘除四则运算之外 还有其它跟多的运算 比如乘方 开方 对数运算等等 其实我们的计算机如同我们人类一样也具备了基本的运算常识 知道了基本的运算规则与方法 但是计算机如何高速 精确的运算呢 在python中 基于基本的运算规
  • prometheus安装以及错误汇总

    首先 最简洁的安装就是通过 编译好的包 开箱即用 下面是链接 https prometheus io download d dhttps prometheus io download 但是为了后续更好的使用 建议下载源码 然后编译 编译过程
  • Scala集合和遍历

    目录 1 列表 1 1 定义 1 1 1 示例一 1 1 2 示例二 1 1 3 示例三 2 可变列表 2 1 定义 2 1 1 示例一 2 1 2 示例二 2 2 可变列表操作 2 2 1 示例 3 列表常用操作 3 1 判断列表是否为空
  • 毕业季:我和未来有个对话

    2013年迎来新中国建国以来人数最多的大学毕业生 699万 史上最难就业季 成为一个全社会关注的热点话题 由中央电视台综合频道与唯众传媒联合打造的关注青年人成长的首档青年电视公开课节目 开讲啦 邀请四位跨界嘉宾来开讲 并且和青年人一起和未来
  • jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气

    对于Java程序员来说 在众多Java知识点当中JVM是很重要的一块 每个Java程序都离不开Java虚拟机 Java程序的运行依靠具体的Java虚拟机实例 在Java虚拟机规范中 分别用子系统 内存区 数据类型以及指令这几个术语来描述的
  • 两个数值互换的几种方式

    一 建立临时变量 1 普通的方法 思路简介 建立一个临时变量 通过temp a a b b temp来实现交换 缺点 这只是一种假交换 由于这只是在函数内部临时变量间的交换 所以当函数退出 函数栈帧被释放 原本的值并没有交换 具体方法 in
  • MongoDB的使用

    MongoDB 是一个跨平台的 以 JSON 为数据模型的文档数据库 是当前 NoSQL 数据库产品中最热门的一种 它介于关系数据库和非关系数据库之间 是非关系数据库当中功能最丰富 最像关系数据库的产品 1 MongoDB 与 MySQL
  • 使用DVD光盘或者ISO作为本地YUM源

    Yum 全称为 Yellow dog Updater Modified 是一个在 Fedora RedHat CentOS 中的 Shell 前端软件包管理器 基于 RPM 包管理 能够从指定的服务器自动下载 RPM 包并且安装 可以自动处
  • 摸爬滚打DirectX11_day01——VS2015与DirectX11的配置

    什么是DirectX11 DirectX 微软提供的应用程序接口集 APIs 被设计为在运行 windows 操作系统平台上用来提供给开发人员控制硬件的底层接口 它的各个组件提供了访问不同硬件的能力 包括图形 显卡 声音 声卡 GPU 输入