什么是DirectX
因为最近一直在看DirectX9的有关基础,以此来熟悉一下基础的游戏开发概念,但是基础的概念熟悉了,有关的发展信息也是要熟悉一下,但是一直很模糊,相信初次接触游戏开发的朋友有听过DX,OpenGL,Metal 3D等,但是又不是很清楚他们之间的区别和联系,最近在某乎看到一个回答,觉得很不错,和大家分享一下。
1、DirectX 是什么?
OpenGL,直译过来就是,开放的图形库(Open Graphic Library)。如其名,它的作用,就是绘制图形,除此之外都不做。
OpenGL是跨平台的,windows、Mac、Linux、iOS、Android等等大家都能用。但所谓泛而不精,微软为了更好的性能,开发出了一套“专门适配windows平台的OpenGL",名为DirectX。同理,苹果也开发出了一套“专门适配Mac和iOS平台的OpenGL”,名为Metal 3D。
2、在游戏开发中常用吗?
游戏开发中,常用,或者说必用。
游戏开发是什么?无非就是根据一定的逻辑,给予玩家一定的反馈。这种反馈,大部分是视觉上,例如按钮点下出现的阴影,释放技能产生的特效。也可以是听觉的反馈(音乐音效),触觉的反馈(手柄或手机的震动)等等。那么用DirectX(或其他图形库)去实现视觉上的反馈,完成游戏,当然是最常用的。
3、如果用directX 配合微软的visual studio ,不借助其他引擎,能否完成一个游戏编程方面的工作。(和其他引擎有什么区别?)
这两个其实是一个问题。
由2的回答,题主应该知道了,单纯用DirectX可以完成视觉上的反馈,如果自己再加上一些音乐音效播放的库,通过代码逻辑的迭代,便足以组装出一个游戏了。
但,游戏是仅仅这么简单么?
也许你要模拟一个大雪的场景,你可能用DirectX画出一个雪花,然后让他们在屏幕的随机坐标出现,并设置一定的速度让他们缓缓落下。完成并调整好这个效果,你可能需要一天的时间,但如果你知道,这叫做粒子系统,并且在大部分游戏引擎中已经实现,那么这只需要一分钟的时间即可完成。
如果把游戏引擎比作绘画,那其中部件可大致分为三类,
第一类,相当于颜料中的三原色,DirectX等图形库,OpenAL等音乐库,键盘、触摸屏或手柄的输入控制,他们是最基础的组成部分。
第二类,相当于形形色色的颜料,如前面提到粒子系统、如精灵、视差层、地图刷等部件,虽然它们可通过三原色调制出来,但由于实在过于常用,便集成进了游戏引擎里。
第三类,相当于颜料盘、画笔等等,它用于辅助游戏的完成。例如事件分发系统、定时器系统等,可简化在编程过程中的代码逻辑。
游戏引擎是一套完整完善的游戏开发解决方案,而DirectX,是一个图形处理库,属于游戏引擎中的一部分。
作者:张三华
链接:https://www.zhihu.com/question/25246101/answer/30298052
什么是DirectX相关推荐
- 用Microsoft DirectX光线跟踪改善渲染质量
用Microsoft DirectX光线跟踪改善渲染质量 Implementing Stochastic Levels of Detail with Microsoft DirectX Raytrac ...
- C#中使用DirectX编程
我感觉声音的播放比较简单.我们从播放声音开始.为什么我这么觉得?我也不知道. 这里是展示最最最最最简单的DirectX播放声音的例子,我尽量省略了无关的代码.最后的代码只有19行,够简单了吧? 准备工 ...
- 用DirectX Audio和DirectShow播放声音和音乐(1)
音乐就是一系列的音符,这些音符在不同的时间用不同的幅度被播放或者停止.有非常多的指令被用来播放音乐,但是这些指令的操作基本相同,都在使用各种各样不同的音符.在计算机上进行作曲,实际上是存储了很多组音乐 ...
- 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8523341 作者:毛星云(浅墨 ...
- DirectX 9的坐标系统变换
http://www.cppblog.com/lovedday/archive/2007/05/04/23389.html DirectX 9的坐标系统变换 世界坐标系到摄影坐标系的变换 摄影坐标系的 ...
- 空间素材代码_C++大神解读视频捕获程序,VC++基于Directx开发的源代码
一款小巧的视频捕获程序,VC++6.0基于Directx开发的源代码,编译时需要Directx相关类库文件, 窗口表单编写的简单视频捕捉应用程序.这个工程既演示了窗口表单应用程序的创建,又演示了 Op ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引...
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 原文:Introduction to 3 ...
- DirectX下 Viewing Frustum 的详细实现
本文大部分内容翻译自Gil Gribb和Klaus Hartmann合写的<Fast Extraction of Viewing Frustum Planes from the World-Vi ...
- [置顶] 【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7318264 作者:毛星云 邮箱: h ...
- DirectX和DirectShow介绍和区别
1.DirectX是什么 DirectX是微软推出的一套基于Windows系统的多媒体应用程式接口APIs函式.在开发中,DX分为两个部分,一个是运行库,通过DX编译出来的程式必须要有运行库的支持,另 ...
最新文章
- 自用零散博文-route_state.ts
- asp.net网站中CrystalReport的简单应用
- java collection join_java – @ElementCollection @CollectionTable在一对多映射中
- 手把手带你掌握计算机视觉原始论文细节阅读
- UI之常用通过颜色值和透明度怎么得到最后的颜色值
- interface接口_接口 interface
- 1027. 打印沙漏(20)-PAT乙级真题
- fuelux.tree,动态加载
- 3万字“十看支付”:开启支付之门
- Excel下拉选项设置
- iOS IPA包路径,分析百度统计崩溃日志
- ranhcer添加Longhorn存储
- 我的世界基岩JAVA附魔_我的世界1.2.5版本,基岩版的可以100级附魔吗,就是
- 虽然不能去故宫办婚礼,但你可以帮故宫找“中纹”啊!
- Android 音频源码分析——音频设备切换(插入耳机)
- 清除session ,清除cookie
- iOS开发使用nib进行界面设计并跳转
- 使用ownCloud 搭建私有云与私有云的简单使用方法
- PWM转换为模拟信号(积分电路)
- 【2017-VCIP】LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation
热门文章
- [教程] PSP 5.00M33-6升级图文教程
- 怎样恢复误删计算机管理员,win10管理员账号误删只有普通权限怎么恢复
- Riemannian geometry applied to BCI classification
- 关闭Win10系统天气图标
- 12.1 hashlib--安全的哈希计算和签名库
- inv如何用计算机计算,计算器INV是用那个键表示的
- 后棱镜时代的个人信息黑洞,电影《绝对控制》在现实中存在吗?
- Docker六大优势,云中部署模式、以及视频demo
- RFID固定资产条码标签管理系统,使资产更易盘点
- 使用ZedGraph记录(原创)