小谈CAD制图和游戏3D的区别
并不是所有人学3D都是为了做游戏,但如今3D学习资料大多是游戏背景的情况下,会让不少走CAD路线的人走错路。
游戏领域,3D向着实时电影级效果发展,强调视觉效果,为了获得足够的运行时性能,要把尽可能多的计算放到制作阶段预处理。而CAD领域,画线能力远比视觉效果重要,模型往往需要实时编辑,对单纯的三角面的吞吐量需求很高,需要在大量的线和面中作精准的选取操作,而对硬件加速需求上,OpenGL 1.2的功能基本就够了。
这些年GPU技术的飞速发展,主要是为了游戏。但这些改进,大多对CAD影响很小。这也是OpenGL ARB委员会的传统CAD厂商对改进OpenGL并不热衷的原因。与游戏代码若干年就重写一次不同,CAD的程序可不希望经常重写,他们需要一个稳定的API,最好50年都不变,但是新的硬件需要提供更好的性能。这些软件大多推荐用户使用专业级显卡,而专业级显卡的一个特点就是图元吞吐量都非常大。
当然,CAD有时也需要效果迷人的成品图,但这一般都是使用高级离线渲染,多花点时间,做成远胜实时渲染的效果。软件离线渲染器似乎可以算是另一个领域。对于工业3D而言,一般会选用一个现成的离线渲染器,而不是自己花时间写一个。
不过,随着GPU通用计算的兴起,也为CAD领域带来了一些新的可能性。大量的计算,尤其是曲面三角化等,有可能交由GPU来处理。不过,这应该不会导致架构上的变化,而只是一些底层API实现上的优化,因为OpenGL本来就是一个良好的工业3D的绘图抽象层。
但这和游戏领域的需求是矛盾的。OpenGL ARB在争论中曾经提出分成两个profile,一个CAD profile,一个game profile。但这个提议被否决了,因为人们不希望出现两个OpenGL。争论在持续了若干年后终于有了进展,新的方案是一个面向新硬件加速架构的core profile和兼容旧程序的compatibility profile。但这对CAD领域来说仍然是很不理想的,因为这意味着compatibility profile的支持会越来越少,他们早晚得重写渲染代码。至于CAD厂商为什么会接受这个提案,从Autodesk公开的的一篇report里能看出一点,他们颇受参差不齐的OpenGL驱动质量之苦。OpenGL是在硬件加速时代之前的产物,功能繁杂,并不是所有功能组合都可以加速,以致很多驱动实现不但bug多多,而且行为不一。这导致测试、补救的代价非常之高,以致3DSMAX 7之后缺省使用D3D做加速后端。如此,则一个新的精简的OpenGL core profile是一个合理的选择。
但是,并不是所有的CAD软件都像3DSMAX这样可以切换渲染后端,有一个渲染抽象层。而且,core profile的API非常的贴近硬件,并不适合直接用来做高层渲染逻辑。总体来说,传统的OpenGL API本身就是一个面向CAD的良好的抽象层,很多年内它仍然会是,构架在OpenGL之上的CAD程序并不十分需要一个新的抽象层。所以OpenGL compatibility profile其实就是用core profile API实现的传统OpenGL API,就是这个抽象层的一个标准实现。如果显卡不提供compatibility profile了,CAD厂商仍然可以自己提供这个实现,又不用重写以前的代码,又可以利用未来新硬件的加速功能。而且,鉴于3D硬件的发展速度,D3D没几年就更新一代,每代之间完全不兼容,贴近硬件的OpenGL core profile也有这种风险。compatibility profile则为CAD软件提供了一层安全垫,只要更换不同的实现就可以了。
相关文章
- 2021-09-08全国专业技术人员计算机应用能力考试用书 AutoCAD2004
- 2021-08-30从零开始AutoCAD 2014中文版机械制图基础培训教程 [李
- 2021-08-30从零开始AutoCAD 2014中文版建筑制图基础培训教程 [朱
- 2021-08-30电气CAD实例教程AutoCAD 2010中文版 [左昉 等编著] 20
- 2021-08-30高等院校艺术设计案例教程中文版AutoCAD 建筑设计案例
- 2021-08-29环境艺术制图AutoCAD [徐幼光 编著] 2013年PDF下载
- 2021-08-29机械AutoCAD 项目教程 第3版 [缪希伟 主编] 2012年PDF
- 2021-08-29机械制图与AutoCAD [李志明 主编] 2014年PDF下载
- 2021-08-29机械制图与AutoCAD [陶素连,周钦河 主编] 2013年PDF下
- 2021-08-28机械制图与AutoCAD 绘图 [宋巧莲,徐连孝 主编] 2012年P