【ChinaBeta.Cn 网盟学院】
从国外网站上自己翻译过来,以前cnBeta上有报道,这篇是此技术原创者的官方解释翻译,若有错误,敬请指正. 出色的电脑游戏都会使用不同的图形引擎处理子系统—我们常说的3D引擎.例如Soure引擎(国内译名”起源”引擎,Half Life 2所使用),Unreal引擎(国内译名”虚幻”引擎,虚幻竞技场实用).IdTech4引擎(for:DOOM4),Cry2引擎(for:孤岛危 机),Clever’s Paradox引擎,这些都是在玩家间及游戏业界非常出名的图形引擎.下面您将了解到的是一个全新的3D图形引擎:Microsoft Excel
为我们所熟知的Excel是个全方位的办公工具软件,但它也有不为人所熟知的另一面,那就是它拥有一些功能特性,使得Excel可以作为一个优质的3D绘图引擎被使用。 通过这篇文章,我会展示Excel的算术运算,嵌入式渲染子系统(这里有两个不同的渲染子系统)和革命性的方法,理解这些仅需要你做一个思维观念上的重大 转变。我希望你能发现Excel有效地和迅速地整合了实用性等众多的特点,多平台的可移植性,和基于独特且超现实的3D引擎特性为依托的高性能 章节中甚至有演示程序和短片, 这些都是由Excel 3D引擎创建的。 警告:非专家请谨慎尝试! 数学运算: 也许证明Excel的数学运算功能,仅需要有一个示范,至少在所有需要演示中这项是最少的。3D物体的操纵的核心函数(例如:四则运算,三角函数,矩阵代 数)是Excel的本质所在---但它们是值得研究的,因为他们无与伦比的布局特点和良好的简约性,目前在整个流行的3D引擎领域,Excel犹如高塔般 耸立。(作者有点夸张,因为网上的演示虽然值得称赞,但远没有到达作者夸耀的地步) 合理的布局 很可能不会有游戏引擎能够解决整个三维算法问题,仅仅在半个屏幕大小的空间上。上半部分图1包含的空间位移,旋转的X , Y , Z轴和透视投影等等。这些都可以在演示程序看到,多边形的透视,Z缓冲(是在为物件进行着色时,执行“隐藏面消除”工作的一项技术,所以隐藏物件背后的部 分就不会被显示出来。在3D环境中每个像素中会利用一组数据资料来定义像素在显示时的纵深度,即Z轴座标值。Z缓冲所用的位数越高,则代表该显示卡所提供 的物件纵深感也越精确。目前的3D加速卡一般都可支持16位的Z Buffer)和反射的计算,所需的屏幕大小近似.
 图1:3D引擎的实质
黄色标记了用户定义的参数,绿色指出的是引擎的计算数值,数字区域包含了如下一些数据(以下基于本人的计算机图形学知识) 1.透视投影的参数。 2.3D物体的坐标相对坐标(相对于物体的中心) 3.矩阵平移变换和旋转变换 (更多信息可以通过如下链接找到http://en.wikipedia.org/wiki/3D_projection) 4.旋转参数 5.在平移变换和旋转变换后,点的3D绝对坐标。 6.透视图影后,点的2维坐标。 7.点的屏幕坐标 8.物体边缘的终点 9.矩阵的平移旋转变换中的重要公式,这里我们可以更简洁和紧凑,看得非常清楚. 简洁性 Excel的开发环境,不仅允许程序员在编写时可以使用无格式的源码或者语法高亮突出的源代码,而且它也提供了其所有众所周知的格式化功能函数给引擎开发 人员:一些字体可以同时使用(不同的大小和类型);单元格和彩色文本;允许添加可弹出的提示;甚至是声音 (例如: “sit down”),也可以在整个电影需要的地方插入。 渲染方式 开发人员可以选择在2个渲染子系统间选择: 1.Excel自身的单元格图形(以下简称ECG) 2. 基于Office套件的图形抽象层(以下简称OGAL) Excel自身的单元格绘图 启动Excel后,立刻忘记以往的习惯,我们可以看到充斥着单元格的EXCEL表格在屏幕上,以及包含我们所需数据的单元格,文本和公式。在这个屏幕上尝试着认为这个表格就是普通引擎的屏幕,而单元格就是一个个像素。 在此基础上不寻常的办法: 工作表=引擎的可视屏幕 单元格=像素点 毫无疑问,这是一个令人惊叹的模拟近似,接下来的问题就是如何将这些散装矩形形状的单元格可被视为像素?但我们会看到,这些矩形只是展现一个独特的功能的细胞图形,事实上,在适当的时候,和一般的小,老式的方块像素一样,在需要的时刻这些细胞图形的用法与以前并无二致。
[1] [2] 下一页
(责任编辑:hahack)
|