粒子效果,调试渲染

1.要更加真实的效果模拟,实现更加随机的、栩栩如生的烟雾、闪电、雨雪、火花掉落效果,我们就必须使用粒子系统。粒子系统让游戏显得更加真实而富有生命感

通过对这些自然现象的分析我们发现:这些现象的出现并不涉及一个可以触摸的、很明确的实体,而且现象的本身是动态的(随时间迅速变化的),而这种变化的效果是由大量微小微粒组合而成的,大量的粒子效果叠加成了我们看到的整体效果。这样一来,明确的、可以用数学公式表述的图形、图像效果都很难模拟出这样的效果,因为其中包含着大量的、不确定性的、随机性、混乱的模糊内涵。

物理学上关于大量粒子无规则运动的学科是热力统计学,一个令大家耳熟能详的概念是“熵”。关于这个物理量的典型描述是热力学第二定律,也称为“熵增原理”。当然还有一个更加令人费解但确实又是无可奈何的必然概念是“系综”。

http://blog.sina.com.cn/s/blog_537cabb80100i0qu.html




2.CCPointParticleSystem(点粒子系统):在第一代和第二代iOS设 备上运行比方形粒子系统要快一点。但是点粒子系统在第三代和第四代设备上, 比如iPhone 3GS,iPad和iPhone4,运行的不是很流畅。这是因为这些设备的 CPU架构改变了。第三代和第四代设备使用了ARMv7 CPU架构,里面包含了很多 优化和新功能,比如增加了一个“矢量浮点处理器”(Vector Floating-Point Processor)和一个SIMD指令集(SIMD Instruction Set)(NEON),而 CCQuadParticleSystem则很好的利用了这些新功能。
如果你无法决定要用哪个粒子系统,你就选择CCQuadParticleSystem,因为它 在所有设备上都可以流畅运行,由它生成的效果和点粒子系统一样。或者你可 以让cocos2d通过构建目标(build target)来替你判断应该使用哪个粒子系统。 列表9-2展示了我在ParticleEffects02项目中添加的ParticleEffectSelfMade 文件的代码。

CCQuadParticleSystem(方形粒子系统)。

2.GLESDebugDraw
任何在节点的draw方法中运行的OpenGL ES代码,都会在z-order为0的情况下进行渲染。所以,如果你想把 OpenGL ES的输出显示在其它节点之上的话,那些节点的z-order必须为0。
示例:启用GLESDebugDraw
-(void) enableBox2dDebugDrawing
{
debugDraw = new GLESDebugDraw(PTM_RATIO);
world->SetDebugDraw(debugDraw);
//e_shapeBit会把所有刚体的碰撞多边形都渲染显示出来。
uint32 flags = b2DebugDraw::e_shapeBit;
debugDraw->SetFlags(flags);
}

还要在节点的draw方法中调用 debugDraw->DrawDebugData()。
#ifdef
DEBUG -(void) draw
{
glDisable(GL_TEXTURE_2D);
glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
world->DrawDebugData();
// 重置默认的GL状态
glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
}
#endif

猜你喜欢

转载自wwk.iteye.com/blog/1687392
今日推荐