CG橙子精彩导航: CG橙子搜索引擎 | 博客 | 动画视频
广告|项目|培训|竞价排名  
86CG > CG教程 > 虚拟现实 > Multigen > Vega Vs OpenGL

Vega Vs OpenGL

类型:整理 | 来自:86CG | 时间:2007-11-29 |  点击:
  从底层实现来看,Vega实际上是基于场景图(Scene Graph)之上的,而场景图管理系统本身又建立在OpenGL这样的标准图形库之上。在SGI平台上,Vega所依附的场景图管理系统就是Performer,而在Windows平台上,Vega所依附的是一套被称为“Jolt”的场景图管理系统(Jolt实际上就是PC上的Performer实现)。

      用过Performer的朋友会发现Vega跟Performer是非常相似的,不同的是Vega提供了一个图形界面的应用程序定义文件工具——LynX,有了它,呵呵,大大降低了视景仿真应用的门槛,用户甚至可以不具备程序员背景就可以嘿嘿。说白了,是Vega帮你编好了一些简单通用的应用程序,比如著名的bin目录下的Vega.exe,很多时候,我们在Vega中预览执行的就是这些应用程序。

        虽然操作简单,但是要完成比较复杂的功能就必须自己通过API编程实现,更复杂的一点儿的或者特殊的操作就要使用更底层的OpenGL编程了,那么怎么在Vega中结合使用OpenGL命令来帮我们达到目的呢?

       CALLBACK回调函数,对,就是它了,而且只能在回调函数中调用,注意,并不是所有的回调函数都可以使用OpenGL命令,准确的说只有在属于Draw绘制进程空间的回调中才可以调用OpenGL 命令。那么什么叫做回调函数属于Draw进程空间呢?我们知道……(此处省去1000字)

        看一个回调函数属于那个进程空间,看Vega的ProgrammerHlep.chm的第14章,Callback Functions那个表就一目聊然了,注意最后一栏Process Space,表明Draw的就是了:)

  实际上,最常用的就是VGCHAN_PREDRAW和VGCHAN_POSTDRAW弟兄两个。具体怎么注册和使用Callback函数就不细说了,大家看Vege的帮助吧,说的太清楚了。在回调函中调用OpenGL命令,一般遵循如下原则:

Save states       //保存当前绘制状态
Push pfstate      //使用新的绘制状态
Push pfmatrix     // 使用新的矩阵状态
modelview matrix
Load Identy matrix
draw your stuff    //用OpenGL绘制自己的东西
pop pfmatrix         // 恢复原始矩阵状态
pop pfstate           // 恢复原始绘制状态
restore other state

  就像下面这段回调程序,其效果是在某目标物体位置画一个红色三维十字架:
pfPushState();
pfPushMatrix();
pfBasicState();

vgGetPos(someplyer,pos);
vgGetPosVec(pos, &X, &Y, &Z, &H, &P, &R);
glPushMatrix();
glTranslatef(X, Y, Z);
glColor4f(1.0f,0.0f,0.0f,1.0f);
glBegin(GL_LINES);
glVertex3f(0.5,0.0f,0.0f);
glVertex3f(-0.5,0.0f,0.0f);
glVertex3f(0.0f,0.5,0.0f);
glVertex3f(0.0f,-0.5,0.0f);
glVertex3f(0.0f,0.0f,0.5);
glVertex3f(0.0f,0.0f,-0.5);
glEnd();
glPopMatrix();
pfPopMatrix();
pfPopState();

 

(完)
可打印版本 | 文章评论 | 我来纠错

|网友评论

    笔名:

    内容:

        

    |热点关注

    新歌 白狐 左边 拉拉爱 校园网 自由飞翔 感恩的心 边做边爱 为你写诗 北京欢迎你 范跑跑之歌 遇上你是我的缘 坏女人 N81 星星 火花 放生 不值得 手机网 分手那天 忘不掉的伤 电子杂志 网上展会 天使 城府 爱死了昨天 BT电影下载 N70 最后一次的温柔 小小 承诺 有没有人告诉你 N73 光荣 葬爱 大海 日不落 有缘人 躲避的爱 香水有毒 一定要爱你 求佛 爱在离别时 北极星的眼泪 假如 flash 歌曲 启示录 那滋味 独家记忆 放手去爱 丁香花 会呼吸的痛 音乐排行榜 爱上别人的人 对不起我爱你 N70 6300 会有天使替我爱你 DJ 爱上你是我的错 不要在我寂寞的时候说爱我 爱上你是一个错 爱你爱的好疲惫 怎么会狠心伤害我 MP3 音乐手机 拍照手机 智能手机 CDMA手机 怒放的生命 老人与海 等爱的玫瑰 爱情里没有谁对谁错 做你的爱人 感动天感动地 做我老婆好不好 你的承诺 王子 心碎 舍不得 摇啊摇 泪的告白 寂寞才说爱 擦肩而过 阿里阿里 中国基金网 新不了情 小情歌 离歌

    关于我们 - 版权隐私 - 友情链接 - 广告服务 - 项目合作 - 网站地图 - 联系方式

    ©Copyright by 86CG.COM, 2006-2008. All rights reserved 京ICP备06059503号