目標:使用osg的粒子系統完全對天氣中雨雪效果的模擬
直接上**
osg::matrixd matrixeffect;
matrixeffect.maketranslate(pos);
// 設定粒子位置
osg::ref_ptr
> trans =
new osg::matrixtransform;
// 對粒子範圍進行了放大
trans->setmatrix(matrixeffect * osg::matrixd
::scale(100, 100, 100));
// 建立雨粒子
osg::ref_ptr
> pe =
new osgparticle::precipitationeffect;
pe->rain(1.0);
pe->setusefarlinesegments(true);
// ilevel引數是乙個int值,表示雨的級別,一般1-10就夠用了
pe->setparticlesize(ilevel /
10.0);
// 設定顏色
pe->setparticlecolor(osg::vec4(1, 1, 1, 1));
trans->addchild(pe);
m_praingroup->addchild(trans);
雪效果的實現和雨幾乎是一樣的,只是對precipitationeffect的粒子型別設定不一樣,**:
osg::matrixd mat;
mat.maketranslate(getpostion(x, y));
// 設定粒子位置
osg::ref_ptr
> trans =
new osg::matrixtransform;
trans->setmatrix(mat * osg::matrixd
::scale(10, 10, 10));
osg::ref_ptr
> pe =
new osgparticle::precipitationeffect;
// 注意,這裡區分雨雪效果
pe->snow(1.0);
pe->setparticlesize(ilevel /
10.0);
// 設定顏色
pe->setparticlecolor(osg::vec4(1, 1, 1, 1));
trans->addchild(pe);
m_psnowgroup->addchild(trans);
使用上面的方式是為了加到我的osgearth地球中,如果普通的group不能顯示以上效果的話,可以加入mapnode節點之下試試看。 OSG 粒子系統和初步
本文轉至 網際網路是是乙個相互分形並學習的平台,我希望我每個人可以將我們認為有價值的東西,在不損害他人利益的情況下分享給更多的人。在osg中提供有專門的粒子系統工具,名字空間為osgparticle,osg對經常使用的粒子模擬都做了專門的類,如 explosioneffect用於暴炸的模擬,fire...
粒子系統 烟花效果的實現
提到烟花,大家首先想到的都是天空上那綻放的炫美,或者手中炫目的白光,作為計算機體制內的人,以物件導向的思維來看待烟花的話,會得到什麼呢?我們可以將美麗的烟花效果抽象為由乙個個粒子組成的乙個系統,將粒子作為物件,它擁有座標 顏色 速度 生命週期等屬性,通過對大量粒子的顏色 路徑處理,就可以得到近似的烟...
Unity粒子系統,探照燈效果,相機跟隨
粒子系統 粒子系統是每個引擎都必須具備的,如果缺乏粒子系統,對於引擎將會帶來重要影響。unity3d的粒子系統也同樣相當的強大,現將unity3d粒子系統的部分屬性做如下整理。ellipsoid particle emitter min max size 每個粒子的半徑大小隨機範圍 越大每個粒子就越...