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

posts - 94, comments - 250, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

Nebula3的場(chǎng)景管理

Posted on 2008-12-14 21:55 Condor 閱讀(674) 評(píng)論(0)  編輯 收藏 引用

N3的場(chǎng)景管理最為核心的一個(gè)類是GrphicsServer, 它包含一些"stage"和"View".

Stage把圖形實(shí)體(模型, 攝像機(jī), 燈光)進(jìn)行分類渲染. 它的主要工作是在連接的圖形實(shí)體間加速可見性查詢. 不同的可見性查詢由不同的Stage子類來實(shí)現(xiàn). N3會(huì)提供了一些不同用途的Stage子類, 但你也可以根據(jù)程序需要自己來實(shí)現(xiàn)可見性查詢機(jī)制.

可見性查詢適用于這些實(shí)體:

  • Camera->Light: 查找對(duì)于指定攝像機(jī)可見的所有燈光
  • Camera->Model: 查找對(duì)于指定攝像機(jī)可見的所有模型
  • Light->MOdel: 查找被指定光源照射到的所有模型

這些可見性查詢?cè)趫D形實(shí)體間建立了一些所謂的"可見性鏈接", 再利用低級(jí)的渲染子系統(tǒng)來加速渲染.

要渲染一個(gè)Stage的內(nèi)容, 需要至少一個(gè)View對(duì)象. 一個(gè)View對(duì)象通過綁定一個(gè)攝像機(jī)實(shí)體把Stage渲染到一個(gè)render target. 可以并存任意數(shù)目的View, 也可能都被綁定到任意Stage. 此外, View對(duì)象之間可能存在依賴關(guān)系(結(jié)果就是一個(gè)View對(duì)象會(huì)在渲染自身時(shí)首先請(qǐng)求它所依賴的View對(duì)象).

圖形實(shí)體表示了可以被連接到Stage的一個(gè)最小圖形對(duì)象, 它分為以下三種:

  • ModelEntity: 一個(gè)可見的模型實(shí)例
  • LightEntity: 一個(gè)光源
  • CameraEntity: 一個(gè)攝像機(jī)

可見性查詢使圖形實(shí)體間形成一種雙向的鏈接關(guān)系. 一個(gè)CameraEntity鏈接到所有對(duì)于這個(gè)攝像機(jī)來說可見的ModelEntity和LightEntity. 因?yàn)榭梢娦枣溄邮请p向的, 所以ModelEntity和LightEntity也知道它們對(duì)于哪個(gè)攝像機(jī)可見. LightEntity有它們影響到的ModelEntity的鏈接, ModelEntity也知道它們被哪個(gè)光源照亮.

==========================================================

N3 畫個(gè)東西真簡(jiǎn)單, 想畫個(gè)模型, 創(chuàng)建出來設(shè)置一下位置扔給Stage就好了

  1. this->model = ModelEntity::Create();
  2. this->model->SetTransform(matrix44::translation(0.0f, 3.0f, 0.0f));
  3. this->model->SetResourceId(ResourceId("mdl:examples/eagle.n2"));
  4. this->stage->AttachEntity(this->model.upcast<GraphicsEntity>());

模型是黑的? 再往場(chǎng)景里扔個(gè)燈就好了:

  1. // attach a light entity
  2.             matrix44 lightTransform = matrix44::multiply(matrix44::scaling(100.0f, 100.0f, 100.0f), matrix44::lookatrh(point(20.0f, 20.0f, 20.0f), point::origin(), vector::upvec()));
  3. this->lightEntity = SpotLightEntity::Create();
  4. this->lightEntity->SetCastShadows(true);
  5. this->lightEntity->SetTransform(lightTransform);
  6. this->lightEntity->SetColor(float4(4.0f, 2.0f, 1.0f, 1.0f));        
  7. this->stage->AttachEntity(this->lightEntity.upcast<GraphicsEntity>());

想控制的話, 再扔個(gè)攝像機(jī)進(jìn)去就OK了.......

  1.         GraphicsServer* gfxServer = GraphicsServer::Instance();
  2. // setup the camera util object
  3. this->mayaCameraUtil.Setup(point(0.0f, 0.0f, 0.0f), point(0.0f, 0.0f, 10.0f), vector(0.0f, 1.0f, 0.0f));
  4. // setup a stage
  5. this->stage = gfxServer->CreateStage(StringAtom("DefaultStage"), SimpleStageBuilder::Create());
  6. // attach a camera to the stage
  7. this->cameraEntity = CameraEntity::Create();
  8.         cameraEntity->SetTransform(this->mayaCameraUtil.GetCameraTransform());
  9. this->stage->AttachEntity(cameraEntity.upcast<GraphicsEntity>());
  10. // setup a default view
  11. this->view = gfxServer->CreateView(View::RTTI, StringAtom("DefaultView"), true);
  12. this->view->SetStage(this->stage);        
  13. this->view->SetFrameShader(FrameServer::Instance()->GetFrameShaderByName(ResourceId(DEFAULT_FRAMESHADER_NAME)));
  14. this->view->SetCameraEntity(cameraEntity);

別忘了處理輸入事件:

可以參考ViewerApplication::OnProcessInput().


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(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>
            久久精品国产精品| 亚洲精品在线视频| 欧美精品在线网站| 久久精品人人做人人爽| 欧美国产在线视频| 久久亚洲综合色| 国产精品福利在线| 欧美黑人国产人伦爽爽爽| 国产欧美精品一区二区三区介绍 | 亚洲五月婷婷| 麻豆国产精品777777在线| 午夜久久福利| 欧美日韩一二三四五区| 欧美国产一区二区在线观看 | 宅男噜噜噜66国产日韩在线观看| 久久成人精品一区二区三区| 亚洲一区二区在线视频| 欧美国产日韩二区| 欧美高清视频在线播放| 韩国精品久久久999| 亚洲欧美日韩国产一区二区| 亚洲一区二区三区高清不卡| 欧美成人综合网站| 亚洲高清免费视频| 国产午夜精品全部视频播放| 亚洲综合导航| 午夜日韩视频| 国产欧美日韩一区二区三区| 亚洲一级特黄| 欧美一区二区三区四区在线观看地址| 欧美人妖在线观看| 日韩视频精品| 亚洲欧美一区二区在线观看| 国产精品h在线观看| 亚洲视频精品| 性欧美大战久久久久久久久| 国产精品―色哟哟| 亚洲综合精品自拍| 久久久91精品国产| 精品粉嫩aⅴ一区二区三区四区| 久久精品国产综合精品| 美女成人午夜| 亚洲美女啪啪| 国产精品超碰97尤物18| 亚洲免费在线看| 久久久国产一区二区| 尤物在线精品| 欧美激情一区二区三区蜜桃视频| 亚洲三级视频在线观看| 亚洲一区二区三区高清| 国产亚洲欧美日韩日本| 久久婷婷人人澡人人喊人人爽| 欧美成人精品不卡视频在线观看| 亚洲日韩成人| 国产精品久久午夜夜伦鲁鲁| 久久精品卡一| 亚洲精品一级| 久久国产一二区| 亚洲国产精品久久久久秋霞影院| 欧美日韩国产综合网| 午夜欧美大尺度福利影院在线看| 麻豆9191精品国产| av成人免费观看| 国产视频在线观看一区| 乱人伦精品视频在线观看| 亚洲人精品午夜| 久久精品国产77777蜜臀| 亚洲欧洲日产国产网站| 国产精品久久久久高潮| 久久在线观看视频| 亚洲亚洲精品在线观看| 欧美成人午夜| 欧美伊人久久久久久久久影院| 亚洲高清网站| 国产免费成人在线视频| 欧美国产日韩一区二区三区| 亚洲欧美日韩国产一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲大胆人体视频| 午夜激情综合网| 亚洲欧洲美洲综合色网| 国产精品成人播放| 欧美大片va欧美在线播放| 欧美一区2区视频在线观看| 亚洲欧洲日产国码二区| 久久综合九色综合欧美狠狠| 亚洲综合视频1区| 亚洲国内自拍| 精品91免费| 国产精品手机在线| 欧美日韩国产麻豆| 免费高清在线一区| 久久久99国产精品免费| 亚洲欧美激情视频在线观看一区二区三区| 欧美激情网站在线观看| 久久一区二区精品| 欧美一区二区成人| 亚洲视频在线观看一区| 亚洲久久视频| 亚洲精品日韩久久| 亚洲国产美女久久久久| 国产在线成人| 国产视频亚洲| 国产精品揄拍500视频| 国产精品成人国产乱一区| 欧美精品免费在线| 欧美高清影院| 欧美激情偷拍| 欧美区一区二| 欧美体内谢she精2性欧美| 欧美激情一区二区三区蜜桃视频| 欧美www视频| 欧美成人亚洲成人| 欧美二区乱c少妇| 六十路精品视频| 免费成人黄色av| 欧美高清在线视频观看不卡| 欧美国产精品劲爆| 欧美日本韩国一区二区三区| 欧美精品一区二区蜜臀亚洲 | 欧美大片第1页| 欧美国产激情| 欧美午夜精品久久久久久孕妇| 欧美日韩dvd在线观看| 欧美日韩亚洲一区二区三区在线观看| 欧美日韩一区二区三区免费看| 欧美日韩亚洲在线| 国产精品中文字幕在线观看| 国产午夜精品一区二区三区欧美 | 欧美中文字幕精品| 久久漫画官网| 欧美高清一区二区| 亚洲伦理在线免费看| 亚洲午夜在线观看| 久久超碰97人人做人人爱| 久久久欧美一区二区| 欧美不卡视频一区发布| 欧美色视频日本高清在线观看| 国产精品一级久久久| 好吊视频一区二区三区四区| 亚洲人成网站在线播| 亚洲女性裸体视频| 久久久免费av| 最近看过的日韩成人| 亚洲一区二区精品在线| 久久av资源网| 欧美另类99xxxxx| 国产日韩欧美成人| 亚洲精品一二| 久久久99国产精品免费| 亚洲激情自拍| 香蕉乱码成人久久天堂爱免费| 免费欧美网站| 国产精品乱子乱xxxx| 亚洲国产精品一区二区第一页| 亚洲一区二区在线免费观看| 可以免费看不卡的av网站| 日韩午夜在线观看视频| 久久久www成人免费毛片麻豆| 欧美片在线观看| 亚洲电影第三页| 欧美伊久线香蕉线新在线| 亚洲日韩成人| 久久蜜桃香蕉精品一区二区三区| 欧美深夜福利| 亚洲国产三级网| 久久精品一区二区国产| 日韩午夜免费视频| 免费成人网www| 韩国av一区二区三区| 亚洲女同性videos| 亚洲精一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 国产精品无码永久免费888| 日韩一级免费观看| 欧美成人69| 久久精品在线视频| 国产日韩欧美综合在线| 亚洲综合精品自拍| 亚洲精品女av网站| 久久精品盗摄| 国产人妖伪娘一区91| 午夜日韩视频| 中文亚洲字幕| 欧美日韩亚洲精品内裤| 亚洲精品久久久一区二区三区| 久久人人爽爽爽人久久久| 亚洲欧美视频一区二区三区| 欧美性大战久久久久| 亚洲先锋成人| 中国女人久久久| 欧美午夜精品久久久久久孕妇| 在线一区二区视频| 亚洲毛片av在线| 欧美日韩一区二区三区在线看| 亚洲人人精品| 亚洲日本无吗高清不卡| 欧美另类在线观看| 亚洲性感美女99在线| 一区二区国产在线观看|