該文內容主要來自王銳《最長的一幀》
osg::displaysettings::instance()->setminimumnumstencilbits(1);在建立圖形上下文之前設定displaysettings,對應traits中的stencil,模板緩衝,預設是0。
unsigned int clearmask = viewer.getcamera()->getclearmask();
viewer.getcamera()->setclearmask(clearmask | gl_stencil_buffer_bit);
viewer.getcamera()->setclearstencil(0);
使相機具有模板緩衝的功能,相機預設只有gl_color_buffer_bit | gl_depth_buffer_bit顏色和深度快取,這裡設定了模板緩衝為1bit。
rotatecallback根據**時間驅動模型的旋轉。
osg::ref_ptrlight = new osg::light;
light->setlightnum(0);
light->setdiffuse(osg::vec4(1, 1, 1, 1));
light->setspecular(osg::vec4(1, 1, 0.8f, 1));
light->setambient(osg::vec4(0.2f, 0.2f, 0.2f, 0.2f));
light-> setposition(osg::vec4(1, -1, 1, 0));
osg::ref_ptrroot = new osg::lightsource;
root->setlight(light.get());
root->setlocalstatesetmodes();
接下來設定了光照,osg::lightsource繼承group,可以新增光源light,光照的詳細分析我們放在後面光照的例子中,這裡我們繼續往下進行。
例子中把所有的特效都放入了effect_list中,通過seteffectindex設定當前特效索引,然後rebuilt場景。
接下來就是osgfx::effect的內容了,effect是特效的基類,effect繼承group,下面有以上我們所說的幾種特效。具體的應用很簡單:
effect->addchild(_scene.get());
_root->addchild(effect.get());
把所應用特效的場景加入到effect節點中,然後把effect節點加入到根節點中,實現對應的特效
,可以通過繼承effect實現自己的特效。
在例子中,通過keyboardhandler實現鍵盤控制不同的特效顯示
社交O2O的進化
人們對以興趣為目的的社交有著強烈的需求,而移動終端的lbs功能使得o2o式興趣社交愈加便捷。未來o2o式的興趣社交應會成為乙個新的發展方向。以基於lbs功能的興趣社交為代表的社交2.0時代之所以來臨,一方面是使用者對o2o興趣社交的強烈需求 興趣很難改變,並且人們對分享興趣有很強的意願,同時興趣社交...
社交O2O的進化
人們對以興趣為目的的社交有著強烈的需求。而移動終端的lbs功能使得o2o式興趣社交愈加便捷。未來o2o式的興趣社交應會成為乙個新的發展方向。以基於lbs功能的興趣社交為代表的社交2.0時代之所以來臨,一方面是使用者對o2o興趣社交的強烈需求 興趣非常難改變。而且人們對分享興趣有非常強的意願,同一時候...
社交O2O的進化
人們對以興趣為目的的社交有著強烈的需求。而移動終端的lbs功能使得o2o式興趣社交愈加便捷。未來o2o式的興趣社交應會成為乙個新的發展方向。以基於lbs功能的興趣社交為代表的社交2.0時代之所以來臨,一方面是使用者對o2o興趣社交的強烈需求 興趣非常難改變。而且人們對分享興趣有非常強的意願,同一時候...