青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 72,  comments - 4,  trackbacks - 0

unigine多線程處理系統(tǒng):

一。 更新系統(tǒng):

主線程World::update_multiple()中:
1. 清空update_threads[]中每一個thread的所有結(jié)點

2. 處理所有node,將node.frame==engine.frame + 1的結(jié)點均衡地分配給update_threads[](即每個updatethread盡量擁有數(shù)量相同的node, 以便線程處理時間平衡), 同時設(shè)置分配后的node.frame=engine.frame(防止更新重入時再次加入此結(jié)點)

3. 接著通過update_shader->runSync(size);函數(shù)同步更新上述加入的所有結(jié)點:
遍歷所有存有node的update_threads[],將它們與cpu工作線程關(guān)聯(lián)(這樣他們的線程run時會轉(zhuǎn)調(diào)轉(zhuǎn)回調(diào)用world中的update_threads[id].update(ifps);, 而update_threads[id]能遍歷所有加入的node->update()函數(shù)同時重置node.frame=engine.frame + 1;
最后等待線程同步執(zhí)行完所有更新再返回.

【注意】上述第3點的runSync()中對應(yīng)cpu工作線程數(shù)為實際cpu-1個,當(dāng)cpu為1個時就不用線程而是直接運行完所有結(jié)點更新,而如果是
有超過一個cpu的則本地和cpu線程同時進行更新工作。雖然在主線程中同步等待完成,但這樣如果有多核則能并發(fā)同時處理。

另外還有異步runAsync()函數(shù),分別在PathFind和Physics的更新函數(shù)中調(diào)用。這個runAsync()函數(shù)功能和runSync()差不多,只是它的工作線程為實際cpu個數(shù),然后將任務(wù)均衡交給各線程處理,并且不會同步等待完成就返回了。所以是異步并發(fā)的。

二。渲染系統(tǒng):
   1.收集可視surfaces(scene intersection): 
     在RenderRenderer::render_world()中調(diào)用scene::getIntersection(bound_frustum,occluder,exclude)中:

       a. render world occluders得到所有被occluders排除的nodes;

       b. 判斷node是否被occluder所排除(exclude),沒有則add visible nodes.

       c. objects_shader->runSync(RENDER_SCENE_NUM_THREADS);同步等待8線程并發(fā)處理所有沒被occulude排除的
       visible node將它置為visible并將它們在bound_frustum中的surface(submesh)加入surfaces中.

       c. 在update_intersection()函數(shù)中遍歷各線程所加入的surfaces[iThread].size, 將其按材質(zhì)是否透明收集
       到opacity_surfaces和transparent_surfaces中。

   2. 反射渲染(render reflections):
      render reflections中遍歷opacity_surfaces和transparent_surfaces處理收集reflection_2d_surfaces和   reflection_cube_surfaces.并進行反射渲染.

   3. update scene:
      分別UpdateSurface了opacity_surfaces和transparent_surfaces兩種surface,
    內(nèi)部好像只是針對OpctitySurfacefade state和tessellation state設(shè)置了對應(yīng)的材質(zhì),并將surface鏈接起來遍歷調(diào)用
    它們的create(),而create()內(nèi)部只調(diào)用了create(ObjectSurface *surface), 這個好像只有skinmesh重載進行了處理。

   4. sort scene:
      按照type、mask、center.x順序分別對Lights、defferredLights、forwardLights進行排序
      按照material、resource順序?qū)pacity_surfaces進行排序
      按照order、sequence、distance、blending順序?qū)ransparent_surfaces進行了排序。
      在scene->optimize()中將opacity_surfaces和transparent_surfaces統(tǒng)一收集到optimized_surfaces中,然后讓      opacity_surfaces和transparent_surfaces重新指向?qū)?yīng)的optimized_surfaces中元素。(這是為了讓surface更緊湊達到優(yōu)化效果?)

   5. deferred textures:
      a. 先得到
    deferred->depth_texture、
    deferred->color_texture、
    deferred->normal_texture、
    deferred->parallax_texture、
    deferred->texturerender

      b. render deferred surfaces:
    render_deferred_surfaces(scene->getOpacitySurfaces(),0)
    render_deferred_surfaces(scene-getTransparentSurfaces(),0)
 

   6. occlusion queries:
     這個是使用dx9的硬件查詢進行occulsion的culling.

 

 

http://frustum.org/
http://www.humus.name/index.php?page=3D
https://www.assembla.com/code/scavenger/subversion/nodes/692/Scavenger
http://www.hmrengine.com/blog/?cat=5

 


 

posted on 2014-03-21 16:01 flipcode 閱讀(341) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品高清视频| 欧美第十八页| 亚洲高清影视| 激情成人在线视频| 国产亚洲欧美中文| 激情懂色av一区av二区av| 精品成人免费| 99精品国产热久久91蜜凸| 一区二区三区蜜桃网| 亚洲在线第一页| 欧美一区二区在线视频| 久久精品视频免费播放| 美脚丝袜一区二区三区在线观看| 免费人成网站在线观看欧美高清| 欧美国产日韩精品免费观看| 日韩视频精品| 欧美一级专区| 欧美另类极品videosbest最新版本| 欧美视频在线一区| 韩日精品视频| 亚洲婷婷在线| 欧美一级在线视频| 欧美成人在线网站| 一区二区三区免费观看| 新片速递亚洲合集欧美合集| 可以看av的网站久久看| 国产精品久久久久久久久婷婷| 国产伦精品一区| 亚洲日韩成人| 久久久久久一区| 亚洲人成网站影音先锋播放| 暖暖成人免费视频| 亚洲在线播放| 欧美激情第五页| 国产欧美一区二区精品秋霞影院| 亚洲精品久久久久久一区二区| 亚洲在线播放| 亚洲高清不卡一区| 欧美电影打屁股sp| 国产精品99久久久久久宅男| 欧美伊人精品成人久久综合97| 欧美freesex8一10精品| 亚洲另类自拍| 裸体一区二区| 国产一区二区高清| 日韩午夜三级在线| 欧美在线观看www| 亚洲国产婷婷综合在线精品| 午夜一区二区三视频在线观看| 欧美日韩ab片| 韩日视频一区| 亚洲欧美一区二区原创| 欧美激情精品久久久久久黑人| 亚洲一区二区三区四区在线观看| 欧美精品在线一区二区| …久久精品99久久香蕉国产| 欧美一区激情视频在线观看| 亚洲深夜福利视频| 欧美日韩精品久久久| 亚洲国产精品一区| 久久久久免费观看| 小处雏高清一区二区三区| 欧美日产国产成人免费图片| 日韩一区二区精品| 欧美激情在线免费观看| 免费视频最近日韩| 国模大胆一区二区三区| 欧美一级免费视频| 亚洲一区二区三区乱码aⅴ| 欧美精品成人| 99亚洲一区二区| 亚洲国产福利在线| 欧美成年网站| 9久re热视频在线精品| 亚洲精品国产精品国自产观看| 欧美激情va永久在线播放| 亚洲三级国产| 亚洲日本中文字幕免费在线不卡| 欧美人与禽猛交乱配| 一区二区高清视频| 一区二区三区日韩欧美精品| 国产精品久久激情| 欧美亚洲免费在线| 久久高清免费观看| 在线日韩av永久免费观看| 欧美国产日韩二区| 欧美日韩国产免费| 午夜免费在线观看精品视频| 久久精品视频99| 91久久久久久国产精品| 亚洲精品视频一区| 国产精品丝袜久久久久久app| 午夜精品久久久久久久| 欧美在线1区| 亚洲精品护士| 亚洲视频axxx| 国产一区二区成人| 亚洲成色999久久网站| 亚洲国产精品高清久久久| 一区二区动漫| 国产女人18毛片水18精品| 久久综合给合久久狠狠狠97色69| 久久综合九色欧美综合狠狠| 日韩一区二区福利| 亚洲欧美日韩人成在线播放| 国内精品免费午夜毛片| 欧美18av| 国产精品永久在线| 久久中文字幕导航| 欧美亚日韩国产aⅴ精品中极品| 久久国产欧美精品| 欧美剧在线观看| 欧美一区在线视频| 女主播福利一区| 久久国内精品自在自线400部| 久久综合狠狠综合久久综青草| 亚洲网站视频| 美女黄毛**国产精品啪啪| 亚洲自拍另类| 欧美日韩免费一区二区三区视频 | 国产一区再线| 亚洲国产欧美另类丝袜| 国产色综合久久| 亚洲人成网在线播放| 国产在线精品一区二区中文| 亚洲最黄网站| 亚洲黄一区二区三区| 久久久精品网| 欧美一区二区三区在线观看视频 | 99成人免费视频| 老鸭窝亚洲一区二区三区| 亚洲免费婷婷| 欧美日韩国产成人在线91| 亚洲国产精品成人| 亚洲成色777777女色窝| 久久久久在线| 老司机凹凸av亚洲导航| 国内精品伊人久久久久av一坑| 中日韩高清电影网| 亚洲亚洲精品三区日韩精品在线视频| 欧美精品1区| 日韩系列欧美系列| 亚洲视频精品| 欧美三级不卡| 亚洲性av在线| 欧美一区免费视频| 国语自产精品视频在线看一大j8| 欧美一区二区精品久久911| 久久久久九九九九| 永久91嫩草亚洲精品人人| 久久午夜电影网| 亚洲高清不卡在线| 一区二区高清在线观看| 国产精品成人一区二区网站软件| 在线视频亚洲一区| 久久黄色影院| 亚洲国产成人精品视频| 欧美精品国产一区二区| 日韩视频永久免费| 欧美一区不卡| 亚洲第一在线| 亚洲视频成人| 麻豆成人在线播放| 亚洲精品中文在线| 午夜精品久久久久久久99黑人| 国产一区在线观看视频| 久久影院午夜论| 亚洲理论在线观看| 欧美伊人久久| 91久久久在线| 国产精品美女久久| 久久久久久一区二区三区| 亚洲人成人77777线观看| 欧美一区二视频| 亚洲乱码视频| 国产精品永久免费视频| 欧美v日韩v国产v| 午夜久久美女| 亚洲日本中文字幕| 久久婷婷麻豆| 99综合在线| 在线观看中文字幕不卡| 国产精品久久久久婷婷| 美女视频黄免费的久久| 亚洲欧美日本国产有色| 91久久久国产精品| 久久综合九色| 欧美中文字幕在线视频| 野花国产精品入口| 在线成人av| 国产精品影音先锋| 欧美日韩免费在线观看| 久久久久久高潮国产精品视| 亚洲特级片在线| 亚洲精品免费在线观看| 欧美激情1区2区3区| 久久综合久久88| 欧美影院视频| 亚洲欧美日韩在线播放| 在线综合亚洲|