gamebryo的Badsushi例子学习
来源:互联网 发布:fanuc plc编程软件 编辑:程序博客网 时间:2024/05/17 16:53
估计是我看的顺序不对还是咋的。这个例子实在是包含太多了。搞得我研究了半天。但是发现太多以至于要是把全部弄清楚细节。那可以等到来年花开时。。。所以大概研究了一下他这个例子的框架和想要表达的主要东西。
例子根据用户指定来产生很多鱼。所有鱼按照异性的曲线游动。屏幕正中心有一个NiMeshScreenElements用来pick这些鱼。
被pick到的会播放一个动画。(涨起来)比较好玩。
主要用到的几个技术:
1.屏幕到世界的射线拾取。
2.动画。没看是顶点变换动画。还是骨骼动作。以后专门在专门写一篇吧。
3.纹理效果。环境贴图。就是简单的环境映射了。
4.那么多的鱼居然不是instance。GB还真牛。这一切都是NiFloodgate这个东西的效果。具体没研究。一样专门写一篇吧。
这里说一下这4点的相关GB类和接口调用流程吧。
1.Nipick
m_pkPick = NiNew NiPick;
m_pkPick->SetQueryType(NiPick::QUERY_FIRST);
m_pkPick->SetIntersectType(NiPick::INTERSECT_BOUND);
m_pkPick->SetFrontOnly(false);
m_pkPick->SetReturnNormal(false);
m_pkPick->SetObserveAppCullFlag(false)
可以看出有很丰富的属性来pick.基本都是字面意思没啥需要在解释了。
通过
NiCamera::WindowPointToRay()可以换算出屏幕到的射线
NiPick::SetTarget 来设置pick检查的范围。为这个节点开始找
NiPick::PickObjects 就是查询刚才设置的目标是否被点到了
可以通过设定自己的pick策略来自己实现拾取PickObjectPolicy
可以用Nipick::GetResults来得到所有拾取结果。感觉pick设置的还行差不多也够用了.
1.动画.这里所讲述动画只包括这个例子所表达的。不代表整个GB.
GB的动画保存在.kfm文件里面。看见写貌似是关键帧模型的意思。
他读取动画使用NiActorManager::Create
得到一个NiActorManager他就是动画管理器。
NiActorManager::SetTargetAnimation用来设置当前使用啥动作。
3.纹理特效这个例子展示了环境贴图
NiTextureEffect::SetTextureType 设置纹理使用啥技术
NiTextureEffect::SetTextureCoordGen 设置使用什么纹理坐标方式。(以后详细研究)
4. 很牛的Nifloodgate......下回分解
- gamebryo的Badsushi例子学习
- Gamebryo 引擎的编译
- gamebryo--ShadowMap的使用
- Gamebryo 带子的实现
- gamebryo
- Gamebryo 引擎的总体框架
- Gamebryo 引擎的RITI机制
- gamebryo的动画系统【1】
- Gamebryo 引擎的Assert,log和debug
- 看到一个将gamebryo的转一下
- gamebryo--Pick的2个方法对比
- gamebryo 部分对象类的继承关系
- ruby学习的例子
- while的例子学习
- Json的学习例子
- GameBryo中全视角第三人称摄像机的实现
- gamebryo--NiStream和NiMesh和NiMeshModifier的关系
- Gamebryo引擎
- 用SuperMap输出GoogleMap地图
- 2010年4月27日(新公司入职,第四周星期二)
- Asteroids! hdu 1240 终于AC
- 线段树的简单应用;火车订票;线段树用起来太灵活了!;
- 网页播放视频解决代码(来自百度知道)
- gamebryo的Badsushi例子学习
- Myeclipse+Ajax 例子
- datagridview实现列锁定
- 通过设置myeclipse配置信息来优化性能
- 如何:运行远程调试监视器
- 字节序问题--大端法小端法
- HP Swing运动控制器在印度推出
- Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[上]
- asp Cint溢出