Ogre 1.7中使用多線程

來源:互聯網
上載者:User

在Ogre 1.7中,對多線程的支援有三個選擇:

要在Ogre 1.7中使用多線程:

  1. 在OgreBuildSettings.h改寫2行
    1. OGRE_THREAD_SUPPORT 2  // 通過ResourceBackgroundQueue實現。
    2. OGRE_THREAD_PROVIDER 3 // TBB library provides threading functionality

我採用C++的並行編程模板庫Threading Building Blocks。採用CMake構造的需要把TBB的檔案拷貝到Ogre的Dependence的相關目錄下。

Ogre 1.7 的 Threading changes

  • WorkQueue added to accept generalised work items to be executed in background worker threads
  • WorkQueue starts the number of workers based on hardware, or can be told to start a different number
  • Main Ogre WorkQueue is in Root::getWorkQueue. You can also subclass WorkQueue and provide your own if you want
  • ResourceBackgroundQueue now uses WorkQueue instead of using its own queue and can have multiple tasks running at once
  • New focus on data-driven, task-based parallel execution with separation of GPU and CPU activities
  • Boost, POCO and Thread Building Blocks supported as threading back-ends (Boost preferred)
  • All Ogre thread support will use WorkQueue in future

備忘:1.7添加了一個Character Sample,其中SinbadCharacterController有參考價值。

 

採用OGRE_THREAD_SUPPORT = 1並不被推薦,而應該使用OGRE_THREAD_SUPPORT = 2。sinbad在Using the new threading scheme說明了原因。更具體的討論在high performance thread support - request for comments。當前,有Proposal: OGRE_THREAD_SUPPORT == 3,但是沒有整合到Ogre 1.7中。

關於多線程參考:多線程的渲染與物理類比(pdf)和Threading the OGRE3DRender System(pdf)

2010/07/07重新整理:關於WorkQueue可以參考OGRE多線程的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.