VegaAPI(1):创建一个静态的场景
2008-11-12 23:05
239 查看
/*---------------------------------------------------------------------------------
copyright @ (ZH)Quinn 。 未经允许请勿公开发布
----------------------------------------------------------------------------------*/
如果使用Lynx界面编辑可以很方便地得到一个定制的应用程序定义文件(.adf文件)。但是对于一个希望走得更远的程序员而言借助这样的定制总是显得碍手碍脚。很不方便,帮助文档中说道Vega中 在 Lynx版面进行的操作都可以使用相应的API函数完成,所以纯代码的应用程序是可行的。
本文并没有完全抛弃Lynx版面操作,因为对于系统定义以及窗口定义和vgConfig()之间的关系(注:帮助文档中说道,vgConfig()中完成了窗口的创建,因而有关窗口属性的操作一般放在vgConfig()之前)作者还没有弄清楚。所以使用了包含系统定义和默认窗口的.adf文件。具体操作方法如下:
(1)定制.adf文件
初始默认的情况,Lynx开启了全部的Vega模块(module)。在file->Active Modules...下面 选择只保留两个模块:Vega 和 Base。因为初始不必要的模块配置会降低系统初始化效率。
默认的面板中含有以下的内容,(在控制版中点击可以看得到)按照版面的顺序罗列如下:system, graphics state,window, channel, Observer, Motion mode, Scene, Enviroment, light, InputDevices。只保留system和window,剩余的全部删掉。以channel为例,点击控制版面中的channel。注意此时Lynx界面主菜单的变化,第四个弹出式菜单变为“channel”。单击“channel”菜单,选择delete即可。其余依法炮制。
file->save as->“empty.adf”(保存路径暂且随便)
(2)显示一个场景要准备的元素
大体分为两部分,第一部分显示场景的载体,可以视为“显示工具”。这个部分从大到小window, channel。第二部分场景内容相关的:scene, objects, 以及observer。准确的说observer是连接两部分的一个东东。从下面的叙述可以看得出来。
【*】 第一部分
window 从外观上来看这里提到的window跟VC里边的window具有一样的表现。是屏幕上的一个矩形区域,含有标题栏,窗口边框等。个人猜测底层就是使用WindowsAPI实现的。
channel 通道 是窗口上的一个矩形区域,用来显示场景。在Vega中Channel是渲染动作的最小单元。
一个生动的例子就是模拟汽车驾驶舱的程序,可以在一个窗口里边定义两个channel。其中一个用位于窗口的上方,并且比较小。可以来模拟驾驶舱的后视镜。
【*】 第二部分
object 物体 是组成场景的单元。
scene 使物体的组合,channel里边显示的是场景的组成部分。比如一座山(object)、房子(object) 车(object)组成了一个场景。显示场景的那些部分取决于观察着(obserer)
observer 观察着。 观察着根据一定的方式"观察"场景,决定了场景的那一部分被现实,以及如何显示。打一个比方场景相当于实际的景色,观察着相当于一个摄像机,而通道相当于胶卷。摄像机的位置、焦距、运动方式等属性决定了景色那些部分显现在胶卷上。
To be continued...明天写的内容(这些要素的逻辑结构图,基于控制台的VegaAPI应用程序构建)
copyright @ (ZH)Quinn 。 未经允许请勿公开发布
----------------------------------------------------------------------------------*/
如果使用Lynx界面编辑可以很方便地得到一个定制的应用程序定义文件(.adf文件)。但是对于一个希望走得更远的程序员而言借助这样的定制总是显得碍手碍脚。很不方便,帮助文档中说道Vega中 在 Lynx版面进行的操作都可以使用相应的API函数完成,所以纯代码的应用程序是可行的。
本文并没有完全抛弃Lynx版面操作,因为对于系统定义以及窗口定义和vgConfig()之间的关系(注:帮助文档中说道,vgConfig()中完成了窗口的创建,因而有关窗口属性的操作一般放在vgConfig()之前)作者还没有弄清楚。所以使用了包含系统定义和默认窗口的.adf文件。具体操作方法如下:
(1)定制.adf文件
初始默认的情况,Lynx开启了全部的Vega模块(module)。在file->Active Modules...下面 选择只保留两个模块:Vega 和 Base。因为初始不必要的模块配置会降低系统初始化效率。
默认的面板中含有以下的内容,(在控制版中点击可以看得到)按照版面的顺序罗列如下:system, graphics state,window, channel, Observer, Motion mode, Scene, Enviroment, light, InputDevices。只保留system和window,剩余的全部删掉。以channel为例,点击控制版面中的channel。注意此时Lynx界面主菜单的变化,第四个弹出式菜单变为“channel”。单击“channel”菜单,选择delete即可。其余依法炮制。
file->save as->“empty.adf”(保存路径暂且随便)
(2)显示一个场景要准备的元素
大体分为两部分,第一部分显示场景的载体,可以视为“显示工具”。这个部分从大到小window, channel。第二部分场景内容相关的:scene, objects, 以及observer。准确的说observer是连接两部分的一个东东。从下面的叙述可以看得出来。
【*】 第一部分
window 从外观上来看这里提到的window跟VC里边的window具有一样的表现。是屏幕上的一个矩形区域,含有标题栏,窗口边框等。个人猜测底层就是使用WindowsAPI实现的。
channel 通道 是窗口上的一个矩形区域,用来显示场景。在Vega中Channel是渲染动作的最小单元。
一个生动的例子就是模拟汽车驾驶舱的程序,可以在一个窗口里边定义两个channel。其中一个用位于窗口的上方,并且比较小。可以来模拟驾驶舱的后视镜。
【*】 第二部分
object 物体 是组成场景的单元。
scene 使物体的组合,channel里边显示的是场景的组成部分。比如一座山(object)、房子(object) 车(object)组成了一个场景。显示场景的那些部分取决于观察着(obserer)
observer 观察着。 观察着根据一定的方式"观察"场景,决定了场景的那一部分被现实,以及如何显示。打一个比方场景相当于实际的景色,观察着相当于一个摄像机,而通道相当于胶卷。摄像机的位置、焦距、运动方式等属性决定了景色那些部分显现在胶卷上。
To be continued...明天写的内容(这些要素的逻辑结构图,基于控制台的VegaAPI应用程序构建)
相关文章推荐
- 通过自定义编辑器在场景和资源中创建一个四边形mesh,解决plane多三角形的问题
- 用PHP创建一个REST APi
- webservice知识一、SOAP风格的webservice——通过JDK的API发布一个webservice服务和创建一个webservice客户端用于访问该服务
- Revit API创建一个拷贝房间内对象布局命令
- 创建一个雪天场景
- 三、创建一个可复用的静态单链表
- google maps js v3 api教程(1) -- 创建一个地图
- 使用php创建一个Rest Api
- 创建一个提供数据 API 的 Node.js 网站
- 使用PHP创建一个REST API(Create a REST API with PHP)
- 教你如何用TreeView树形菜单创建像CSDN左边那样的导航之二:如何建立一个静态的TreeView
- HDFS的API调用,创建Maven工程,创建一个非Maven工程,HDFS客户端操作数据代码示例,文件方式操作和流式操作
- 【解剖】每日一记API—一个窗口创建的过程
- 将创建进程的API-posix_spawn封装成一个进程类
- 使用PHP创建一个REST API(Create a REST API with PHP)节选6
- 只实例化一个静态实例,避免重复创建实例
- arcgis-api-for-js-之创建一个3D地图
- c++实现创建一个cocos2d-x的场景类
- C# 抽象类其中创建一个静态方法
- google maps js v3 api教程(1) -- 创建一个地图