XP对于OC这种第三方渲染器来说,一共两种渲染方式:一种就是用oc的对象标签,一种是使用xp的Generator。

下面具体比较下两种方式的差异。


对于使用oc对象标签而言,最大的优点就是快。这种方式类似于scatter克隆,并没有真正的产生粒子实体,而是在渲染器中去显示渲染的。

可以通过更改拖入标签内的多边形对象大小,实时更改粒子的最终尺寸。假设使用的是球形基础体,更改球的半径就可以直接调节粒子的大小。非常方便调节。

最终渲染出来的粒子大小,是拖入的多边形对象尺寸乘以粒子本身的尺寸。

但是缺点是不能将粒子导出为abc对象,因为粒子并没有真正的被实体替代,只是在渲染器中被“虚拟”替代了。这样在使用不支持xp的农场时就没办法了。

再一个就是粒子显示的大小可能会和粒子实际大小不同,在做粒子间碰撞的时候会造成很大的困扰,可能粒子碰撞的是正确的,但是渲染出来却是互相之间有穿插的。


而使用Generator,则是类似于c4d内置的克隆,是实实在在的存在着粒子实体。粒子的大小是真正的xp本身粒子的大小。

缺点显而易见是慢,尤其是有几百万个粒子后,会非常的卡。更要命的是,当你想要调节粒子大小的时候,每次都需要重新计算才可以看到结果是否正确。

而且Generator模式下,更改粒子的多边形对象的尺寸是不会改变粒子渲染大小的(但是可以通过嵌套空对象再调节其本身的缩放参数来改变粒子大小)。

假如使用的正方形基础体,通过改变基础体中的长宽高参数,使其成为一个长方体,实际的大小会将这个基础体缩放到粒子的大小。也就是说,虽然不能直接改变粒子大小,但是可以改变粒子形状还是可以的。

使用Generator模式导出abc之后,即便在不支持xp的农场,也可以正常渲染出粒子效果。


虽然在做自己的作品时,我会倾向于使用标签模式。但是在公司做项目的时候,考虑到农场的问题,不得不使用Generator模式。

在制作的时候,我会先不打开Generator,让粒子的显示模式为circle,这样就能直接观看到粒子本身的大小。即便后面使用Generator的时候,粒子的大小也不会变。

而且在缓存粒子的时候,我也会先关闭Generator,让缓存忽略Generator对象。这样缓存也要比将Generator也缓存进去快的多。

缓存之后,再打开Generator,前进一帧就可以看到粒子实体了。

(完)

7 Comments

  • 头像 shaohai说道:

    您好,有个问题请教下,粒子碰撞时会与地面发生穿插,尤其是替代粒子后,穿插更加明显,怎么解决呢?谢谢

    • 头像 李亦天说道:

      这个不好解决,尽量让粒子的大小跟物体的大小相匹配吧。要是真的要完全完美碰撞,得需要用c4d自带的碰撞标签做,不过一些xp效果器就不能再影响粒子了。
      不知道最近更新的xp有没有解决这个问题。

  • 头像 xiaoxiaozhong说道:

    您好,我也在学习XP粒子,有个问题想请教下。 我在Plane平面上材质球贴上图,贴图发射粒子,怎么让Plane上的图,亮部发射粒子,暗调黑色部分不发射粒子呢?

  • 头像 xiaoxiaozhong说道:

    哦 好的,谢谢.. 喜欢你的网站,很多知识点…

  • 头像 xiaoxiaozhong说道:

    您好 有个问题想请教一下..,OC标签渲染XP粒子的大小都是一样的,怎么渲染出大小不一样的粒子呢? 初学者,还请多多指教

    • 头像 李亦天说道:

      有两种方法,一种是在发射器中给粒子大小一个随机值。第二种就是在标签中拖入多个大小不同的物体作为粒子

Leave a Reply