OpenGL和DirectX都是图像应用编程接口,这些接口用于渲染二维或三维图形。可以说,这些接口架起了上层应用程序与底层GPU的沟通桥梁。
    一个应用程序向这些接口发送渲染命令,而这些接口会依次向显卡驱动(Graphics Driver)发送渲染命令,这些显卡驱动是真正知道如何和GPU通信的角色,正是它们把OpenGL或者DirectX的函数调用翻译成了GPU能够听懂的语言,同时他们也负责把纹理等数据转换成GPU所支持的格式。
    概括来说,我们的应用程序运行于CPU上。应用程序可以通过调用OpenGL或DirectX的图形接口将渲染所需要的数据,如顶点数据、纹理数据、材质参数等数据存储在显卡中的特定区域。随后,开发者可以通过图像编程接口发出渲染命令,这些渲染命令也被称为DrawCall,它们将会被显卡驱动翻译成GPU能够理解的代码,进行真正的绘制。

  • OpenGL
  1. OpenGL:Open Graphics Library,开放的图形程序接口。
  2. 具有很好的移植性。OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。
  3. 由于 OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等 3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。
  • DirectX
  1. DirectX是一种应用程序接口(API);
  2. 可以让以windows为平台的游戏或多媒体程序获得更高的执行效率;
  3. 加强3d图形和声音效果;
  4. 提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序;
  5. 降低用户安装及设置硬件的复杂度。
  6. DirectX是由很多API组成的,按照性质分类,可以分为四大部分:显示部分、声音部分、输入部分和网络部分。
    1. 显示部分:担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速,它包括很多方面:我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw;后者则主要负责3D效果的显示,比如 CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。
    2. 声音部分:最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。
    3. 输入部分:DirectInput可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。
    4. 网络部分:DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TPC/IP,IPX,Modem,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。
  • Direct3D
    Direct3D(简称:D3D)是微软公司在Microsoft Windows操作系统上所开发的一套3D绘图编程接口,是DirectX的一部分,自1996年发布以来,Direct3D以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3D图形加速的主流显示卡都对Direct3D提供良好的支持。与OpenGL同为电脑绘图软体和电脑游戏最常使用的两套绘图编程接口。

Shader|OpenGL与DirectX_该用户还没想到昵称_新浪博客相关推荐

  1. Shader|GPU流水线_该用户还没想到昵称_新浪博客

    Shader运行于GPU上. Shader的类型主要有:顶点着色器(Vertex Shader).细分曲面着色器(Tessellation Shader).几何着色器(Geometry Shader) ...

  2. Java之蓝牙传送数据byte与String转换_该用户还没想到昵称_新浪博客

        最近开发人脸识别项目,因为谷歌眼镜太不给力了,调用摄像头不到半小时就会发热卡顿,所以捕捉人脸并识别的功能就不能依赖谷歌眼镜了,只能将其捕获的人脸图片通过蓝牙传给手机,在手机上进行识别后,再将信 ...

  3. C#复习(十五)事件一_该用户还没想到昵称_新浪博客

    事件基于委托存在,事件是类的成员 事件不能在类外调用,虽然我们可以在类中声明事件为public,但实际编译代码时永远都是private,并且是private的委托(事件的本质就是委托) 定义事件处理方 ...

  4. 获取用户参数_SAP刘梦_新浪博客

    US3 查看的信息 根据函数:SUSR_USER_READ 获取用户信息 参数信息:defaults 日期和小数点格式 根据用户参数修改日期格式 FORM frm_change_date CHANGI ...

  5. [转载]教你在家轻松做麻酱烧饼——这烧饼酥的掉渣,越嚼还越香呀_万金油_新浪博客...

    原文地址:教你在家轻松做麻酱烧饼--这烧饼酥的掉渣,越嚼还越香呀作者:哈尼22 秋季,北方的天气也是越来越冷了,每当这个时候就爱吃刚做好的热乎乎的烧饼了,每次吃完都好满足呀.所以这次就分享我做的次数最 ...

  6. 百度官方申明百度网盘Mac同步版还可以使用_我是亲民_新浪博客

    一段时间以来,MAC版本的百度云同步盘(官方称为:百度网盘Mac同步版)已经不能同步的问题,在经过用户的强烈要求之后,百度悄悄的重新开启了MAC版的同步盘的服务,并且把声明放在页面的角落,仅仅针对MA ...

  7. 用整个天空来讲故事!广告还可以这么拍、这么看_数字体验_新浪博客

    沉浸在时光与时空相融合的"天空"底下(实为投影机投射在穹幕的影像画面),感受芝柏品牌讲述"时光的神殿",这样的广告体验一生能有几回?

  8. 删除PO交货计划行后PR对应的订购数量不更新问题_用户3231157403_新浪博客

    客户提出一个issue. 当PO item 有两个PR时 删除其中一个行项目:PR10234539 然后查看PR 发现这里是不对,订购数量应该是0,没有更新 解决方案: 2265448 - Order ...

  9. 「屋漏偏逢连夜雨」,Log4j 漏洞还没忙完,新的又来了

    整理 | 郑丽媛.禾木木 出品 | CSDN 这几天,Apache Log4j 2 绝对是众多 Java 程序员提到的高频词之一:由于 Apache Log4j 2 引发的严重安全漏洞,令一大批安全人 ...

最新文章

  1. Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
  2. xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】...
  3. I.MX6 WIFI wireless_tools 移植
  4. 算法导论chapter6 堆排序的代码
  5. 日志查看工具 linux,用 Logwatch 工具查看 Linux 系统 Log 日志
  6. volatile的实现细节
  7. ebtables之BROUTING和PREROUTING的redirect的区别
  8. 威海二职工业机器人专业_工业机器人专业就业前景-山东省好的中专学校
  9. SQLite在字符串比较中的大小写问题
  10. 《Reids 设计与实现》第十九章 慢查询日志
  11. 联邦学习在光大科技的落地应用
  12. 程序员应知——我们不是客户
  13. 计算机应用怎么写,计算机应用专业描述怎么写
  14. matlab条件and,matlaband语句
  15. SSM-MyBatis框架学习笔记
  16. Tensorflow多输入模型构建以及Dataset数据构建
  17. Android文件系统编译出错记录
  18. 【Elasticsearch教程8】Mapping字段类型之keyword
  19. 百度编辑器上传图片后转到七牛存储
  20. 基于java的学生社团管理系统的研究设计计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

热门文章

  1. JAVAEE 实训日志03_20200711
  2. 千人同时在线服务器,魔兽世界规模最大战役!上千人同时在线,服务器几度崩溃...
  3. 隐藏SSID和STA搜索隐藏SSID原理
  4. unity跑酷怎么添加金币_超级酱跑酷:SUPER UNITYCHAN RUN修改金币方法
  5. 一键卸载流氓垃圾软件,这2款软件让电脑干净无弹窗
  6. 小小帝国之技术分析--来源:http://all-ipad.net/technical-analysis-of-little-empire/
  7. android全网通手机,全网通手机怎么用?全网通手机网络制式是什么意思?
  8. 获取numpy的第一个非0元素索引
  9. 第二证券|连拉20CM涨停!防疫新概念股火了!恒生科技指数涨逾5%
  10. Android App Bundle打包发布GooglePlay