请
登录
后使用快捷导航
没有帐号?
注册账号
导读
Guide
解锁权限
功能中心
话题
求职
攻略
帮助
搜索
⌘
Ctrl
k
智能搜索
Google搜索
站内搜索
体验新版
权限解锁
登录
注册
首页
论坛
Offer多多
面试经验
Salarytics
Visa Tracker
交友
Instant
精品网课
生活攻略
手机APP
商务合作
<
登录
注册
升级
关注
扫码关注一亩三分地微信公众号
一亩三分地Warald
一亩三分地华人生活
一亩三分地求职移民
一亩三分地海外投资
帮助
TOP
置顶话题
最新回复
最新主题
最新热门
获取积分
新手指南
淘贴
我的订阅
我的帖子
VIP通行证
购买蓝莓
企业招聘广告
移民律师专栏
洽谈其他合作
道具[匿名/删除/提升/关闭/等]
考试
附件
勋章
许愿墙
去广告
面试辅导
全民竞猜
每日签到
每日答题
超级匿名
微信解绑
话题
学校
公司
地区
证券
求职辅导匹配
DS501 数据科学面试40+真题讲解
瞄准秋招:暑假跟着Shawn老师刷题!
DS601 AB Test从入门到精通
CS601 谷歌工程师讲系统设计
DS401 资深数据科学家教你破解DS面试
CS401 谷歌招聘委员会成员讲解如何准备面试
DS402 Resume Workshop
DS401A 模拟面试-数据科学
DS404B 模拟面试-机器学习
CS404A 模拟面试-算法
CS404B 模拟面试-系统设计
锦晖律师事务所H1B签证申请讲座
CS入门攻略
CS求职攻略
PM求职攻略
系统设计攻略
数据科学攻略
回国礼物礼品最全清单
如何在新城市快速省心安家
车盲如何购买二手车
收到医院的天价账单怎么办
更多
苹果应用商店
谷歌应用商店
百度网盘apk
商务合作
常见问题
新手上路
App下载
帖子
投票
活动
版块
群组
日志
用户
一亩三分地
»
论坛
›
留学申请
›
硕博在读
›
zz:三维图形的三大“王牌”接口
返回列表
查看:
2117
|
回复:
0
直达
zz:三维图形的三大“王牌”接口
老生常谈
savvygem
当前离线
主题
帖子
115
积分
中级农民
积分
115
大米
颗
鳄梨
个
水井
尺
蓝莓
颗
萝卜
根
小米
粒
学分
个
注册时间
2011-10-5
最后登录
1970-1-1
狗仔卡
🔗
savvygem
2011-10-7 16:15:38
|
只看该作者
|
倒序浏览
本楼:
👍
0
0
👎
全局:
90%
10%
26
3
注册一亩三分地论坛,查看更多干货!
您需要
登录
才可以下载或查看附件。没有帐号?
注册账号
x
——谈谈人们最想了解的Direct3D、OpenGL、Heidi接口
一、什么是API?
在计算机行业中,所有软件的程序接口,包括3D图形程序接口在内,统称为API(Application Program Interface)——应用程序接口。我写这篇文章的主要目的,是让读者能够对三维图形中最基本、最常用的3种API格式有一些详细的了解,以便能在工作中成为小专家。
简单地说,API的出台使得软件开发工作者的工作更加轻松、容易。有了它,各种软件的接口功能就有了可比性。过去,如果您想让它们发挥最大功效,必须做的一件事,就是记录相关硬件设备的地址。现在,API已成为软、硬件之间一种控制的传媒,这道工序就可以省略了。
开发API的相应功能,首先需要详尽的定义的标准,这些标准在硬件开发、完善阶段已经由生产厂商加以制定,按照提供的标准,软件开发人员可以轻而易举地完成一些复杂程序的调试工作。当他们设计某项功能时,也不再需要知道硬件的特定参数,往往只在程序中添加一条或几条命令就足够了。
二、常用的API格式
在图形图像行业里,三维图形的API有许多种。这几年,有3种API格式逐渐确立了它们在图形领域的地位,它们是:Direct3D、OpenGL和Quick Draw 3D(Heidi)。MGA MillenniumⅡ、Mystique 220、G100图形加速卡和ELSA图形卡都支持这3种格式。由下面这张对比表可以看出,它们在界面及功能上的差异确实不大。
这3种常用的API格式在使用中都体现了一定的扩展性、灵活性和便捷性等,而这些正是图形用户们在乎的。
附表 :3种图形接口比较表
功 能 Direct3D OpenGL Heidi
阿尔发混合(Alpha Blending) √ √ √
纹理映射(Texture Mapping) √ √ √
MIP映射(MIP Mapping) √ √ √
视频动态映射(Video Motion Mapping) √ × √
雾化(Fogging) √ √ √
抗失真过滤(Anti-aliasing Filter) √ √ √
直接描绘法(Flat Shading) √ √ √
Gouraud描绘法 (Gouraud Shading) √ √ √
Phone描绘法 (Phone Shading) × × ×
光辉的Direct3D
自从微软公司推出1.0版本的DirectX以来,它又魔术般地变出了DirectX 2.0版本和DirectX 3.0版本。在其抛出DirectX 3.0后,并未象人们想象的那样继续推出DirectX 4.0,而是跳过DirectX 4.0版,直接把DirectX 5.0推向了市场。
今天这五个DirectX版本是:DirectX 1.0、 DirectX 2.0 、DirectX 3.0 、DirectX 3.0a 、DirectX 5.0。 目前微软公司正在开发DirectX 6.0,预计将同Windows NT 5.0同时推出。
(1)DirectX 1.0版本是第一个可以直接对硬件信息进行读取的程序。它提供了更为直接的读取图形硬件的性能(比如:显示卡上的块移动功能)以及基本的声音和输入设备功能(函数),使开发的游戏能实现对二维(2D)图象进行加速。这时候的DirectX不包括现在所有的3D功能,但如果您打算制作高级游戏的话,那它就是入门的起步点。
(2)DirectX 2.0版本的应用程序接口中采用了Direct3D的内容,这种结构使DirectX 2.0和DirectX 1.0有根本不同。在DirectX 2.0中,3D应用程序接口是采用了“平滑模拟和RGB模拟”两种模拟方式对三维(3D)图象进行加速计算的。DirectX 2.0同时也采用了更加友好的用户设置程序并更正了应用程序接口的许多问题。
(3)DirectX 3.0版本是DirectX 2.0的简单升级版,它对DirectX 2.0的改动并不多。包括对DirectSound(针对3D声音功能)和DirectPlay(针对游戏/网络)的一些修改和升级。
(4)DirectX 3.0a版本是修正了错误的升级版。在这里,主要的是针对DirectX安装程序的修改。在一些图形加速卡(如加拿大Matrox公司的MGA 系列图形卡)的安装程序上,用不通知或合适/有效的选择方式改写用户的显示驱动程序,以便图形卡的加速性能更好。
(5)DirectX 5.0主要是针对应用程序接口进行升级。在DirectX 5.0中,为了大幅度提高性能,微软对Direct 3D的内容做了彻底修改,并且使游戏开发商们移植到他们的应用程序接口中更容易、更方便。除此之外,许多应用程序接口的细节部分也得到了改进。
作为Windows下的X模式和DirectDraw发展的产物,Direct3D实际上是DirectX多媒体家族的一员,Windows 95使用了它,主要目的是提高系统缓慢的3D显示速度。一般来说,Direct 3D格式是基于微软的通用对象模式COM(Common Object Mode),同时也被应用于OLE(Object Linking And Embedding)链接与嵌入技术中。DirectDraw面向2D图形,而Direct3D作用于3D显示。它们作为两代标准,虽然有区别,但是也可以相互合作。例如,在某帧图象处理时,Direct3D渲染3D对象,DirectDraw则设置2D背景位图,配合相当默契。微软公司宣称,在最新推出的DriectX 5.0版本里,已经对Direct3D的一些薄弱环节进行了修正。
Direct3D可以仿真大部分软件中的3D渲染功能。目前Direct3D API的大多数用途是编写游戏软件,而这些游戏都不支持几何加速。就游戏而言,它是DirectX的主要设计成果。用 Direct3D可以非常简单地调用3D图形加速卡的许多新的功能,游戏厂商将不需要过分依赖特殊的硬件设备就可以完成高质量的性能和表现效果。
DirectX的组成部分
一个完整的DirectX应用程序接口是由以下部分组成:
DirectDraw:该应用程序接口负责显示内存的管理。
DirectSound:对声音设备进行统一支持,同时在游戏应用中还增加了特殊3D效果。
DirectPlay:它可以提供有效方法使游戏满足个人微机的要求。这意味着多用户式的游戏只需通过一个标准的应用程序接口,就可以在调制解调器、电话线、直接电脑连线和使用TCP/IP的Internet上运行。
DirectInput: 用通用的应用程序接口来统一管理所有的输入设备,如麦克风、游戏杆、高级游戏操纵杆等。
Direct3D: 就游戏而言,它是DirectX的主要设计成果。用 Direct3D,可以非常简单地调用3D图形加速卡的许多新的功能。用 Direct3D,游戏厂商不需要过分依赖特殊的硬件就可以完成高质量的性能和表现效果。
DirectSetup:它的作用是安装所有的DirectX的组成部分。 DirectSetup会测试其安装版本,并且智能地对用户使用的DirectX二进制码实行版本升级,同时安装更新的DirectX的驱动程序,使用户同步使用的应用程序更有效。
非凡的OpenGL
谈到OpenGL,先看以下两点:
(1)立即模式和保留模式
立即模式,是一种源程序模式,它与硬件设置密切相关。
保留模式,也是一种源程序模式,只是它的大半都是通过一个API接口预先定义好的。
人们通常认为,程序接口的优劣与两个因素有关,即:硬件水平和程序员直接控制相关硬件功能的程度有关。所以,立即模式更多地被视为一种低级模式。而保留模式,则因为符合这一规定,被视为一种高级模式 。
(2)由于专业领域使用的CAD/CAM软件获得了巨大成功,现在OpenGL已经稳稳占据纯三维PC市场。那么,什么是OpenGL呢?GL是三维图形技术中图形库的简称。GL支持立即模式的接口。立即模式的好处是可以省略先将图形存储于数据结构的步骤,使用立即模式修改应用软件更容易,显示图形更方便。使用GL技术可以轻松开发出具有实时交互能力的三维图形软件。
OpenGL是开放式图形GL语言的缩写。它是由Silicon Graphics(SGI)公司开发的,有Windows NT和Windows 95版,其API在工作站上具有可移植性。它是图形标准为图形库提供的一条简捷的途径。OpenGL应用程序接口的版权属于SGI公司,其标准由OpenGL结构监察组指定。该监察组的成员有IBM、Intel、Microsoft、DEC、SGI、Intergraph、Evans&Sutherland。
OpenGL是对网络透明的3D图形处理接口,用户可以通过一个简单易用的模块化接口生成高质量的3D图形图像。它在硬件、操作系统等方面是独立的,支持C、C++、Pascal、Lisp等多种语言。OpenGL作为一个独立平台,具有立即和显示表模式的鲜明特点,显示表存放着特定的序列,可以被反复使用。因此,进行对象描述时,直接从表上获取相关信息,可以产生很好的效果。但是,如果对象需要进行频繁处理,显示表上的信息就不得不随之更新,这将导致图形显示速度优势丧失殆尽。OpenGL为图形显示提供了一个宽广的范围,从渲染一个简单的几何点、线、多边形,到利用Phong光线、Gouraud阴影、纹理映射贴图、以及反锯齿的点、线、面对一个3D物体进行最复杂的3D变换、剪贴、采集和描绘。由于采用了模块和累加缓冲技术,OpenGL可高效地实现几何实体、阴影、全景反锯齿和动态模糊等效果。
OpenGL程序应用接口的最大贡献就是“通过高级语言,降低了专用图形加速卡的成本,最终导致整个PC图形系统价格的降低,从而抢占了RISC/UNIX系统工作站的市场!”
Heidi应用程序接口是Autodesk系列产品的守护神。Autodesk是目前全球CAD/CAM/CAE/GIS/MM工业领域中拥有用户量最多的软件公司,也是基于PC平台的全球最大的CAD、动画及可视化软件公司。就目前的AutoCAD的应用状态和用户类型来看,从事纯三维设计的小于25%(用于大型装配设计和复杂工程分析),从事纯二维设计的约25%(用于绘制企业生产性数字化二维工程图),而既从事二维绘图又从事三维设计的大于50%(广泛用于零部件和一般装配设计分析)。Heidi就是Autodesk在CAD、动画及可视化软件领域中最重要的主流支撑应用软件接口。Heidi和OpenGL 的区别在于:它不能通过显示表进行操作。Heidi是一个纯粹的立即模式接口,主要适用于应用开发。著名的3D程序软件,如3D STUDIO MAX/VIZ、AutoCAD 12/13/14、经济建模、商业图形演示和机械设计等都使用Heidi系统。与OpenGL 相比,Heidi还只是一种原始对象接口,功能请求单一化,是靠使用标准界面或者直接利用特定的3D芯片来进行硬件加速。如果没有硬件的密切配合,在对大型的高质、高分、高刷的图形工作时,显示效果会受到很大的影响。Heidi的突出特点是灵活多变,这要归功于Plug-ins(插入式结构)和内部定义的Heidi接口。
简单地说,OpenGL只支持用于大型装配设计和复杂工程分析的纯三维设计工作,其用户群小于25%;而Heidi可以广泛支持用于零部件、一般装配设计分析、工程设计建模、电子游戏开发、影视动画制作及可视化软件领域等既从事二维绘图又从事三维绘图的主流设计工作,其用户群大于70%。
到此,三维图形的三大“王牌”接口讲完了。我想大家应该对Direct3D、OpenGL和Heidi的渊源、特点和用途有了一些简单的了解。为了加深印象,最后我总结了三句话:“三大接口,各不同;D3D玩游戏;OpenGL用3D;Heidi是主流!”
收藏
0
淘帖
0
好苗
0
杂草
0
上一篇:
申brown的时候吐个槽
下一篇:
zz:SCI、EI检索
相关帖子
关于 Berkeley MPH 项目
求问,加拿大不列颠哥伦比亚大学VSP项目(暑期交流)怎么样?
UCInspire暑研项目总结(EECS学院)
分享UNC的PhD经历
请问外校去CMU排得上CS课吗
UMN-MFM项目回顾 毕业5年多 真正学有所用
UMN金融数学专业(MFM)的一点感想
请问Purdue的MS CS好就业吗?
GT 佐治亚理工 工程管理专业
硕士期间如何增强自己的学术英语交流和学术写作能力
GaTech CoC CSE 就读一年感受
吐槽一下uci mcs的收费
有没有UCI的土木研究生啊,找组织
写点关于umn mfm感想
哥大MSOR
PHD第二年,导师说下学期没有钱了,是否应该换导师?
[NYU Courant] CS 选课,实习,找工经验贴汇总
聊一聊upenn的SE program
说一说清华和UW合办的全球创新学院GIX
科研半年小结与讨论
回复
使用道具
举报
提升卡
置顶卡
关贴卡
开贴卡
变色卡
千斤顶
返回列表
B
Color
Link
Quote
Code
您需要登录后才可以回帖
登录
|
注册账号
隐私提醒:
☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗
同学同事飞友
,拉群请去🔗
拉群结伴
,广告请去🔗
跳蚤市场
,和 🔗
租房广告|找室友
☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
☑ 干货版块可免费使用 🔗
超级匿名
:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
☑ 查阅全站 🔗
各种匿名方法
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
聊聊
海外面经
🔑入职圈
求职(非面经)
录取汇报:研究生
华人生活
车
研究生申请
最近也碰上裁员/重组了,聊聊这几年北美自动驾驶行业的一点感受
从SFH换到学区TH后的生活与财务体验分享
写了一年多,一篇顶会都没投出去,问题基本都出在同一个地方
H1B超6年 + PD current近3年未交485 + PERM认证9月中作废,还能transfer+extension吗
对比一下三番和阿姆斯特丹的收入/税收/消费,感觉搬到欧洲2,3年,从经济角度完全可行
一场与Tesla customer support的battle与经验总结
产后被pip后咨询律师的经验
被jpmc开除的离奇经历
EB3 降级主副approve时间线
求 Google PIP/Performance Warning 后请 FMLA/STD 的近期经验
选择最适合你的留学编辑
写出最好的留学文书
editmypaper
他相当负责、相当认真。每次delivery都会整篇文章改到满意为止。他也会给我非常详细的instructions和例子,教我怎么写。文书里会加一些画龙点睛的小句子,我非常满意!
一亩三分地用户 无良
我给他提供了大段回复和想法,他都有认真看,而且采纳或者不采纳都告诉我,还有原因。他给的建议我觉得都很棒。虽然专业方向不一样,他还是认真看我写的专业词汇,还都理解的很不错。
一亩三分地用户 慕華薇薇
留学公众号
关注公众号 >>
留学申请公众号
>
论坛导航
快速回复
返回顶部
返回列表