我有一個子彈轉換,我想讓它作爲glm :: mat3類型訪問。如何在不復制數據的情況下將子彈轉換轉換爲glm矩陣?
但是,我想知道是否有一個很好的方式來做到這一點,而不需要複製(如make_mat3x3)。
我有一個子彈轉換,我想讓它作爲glm :: mat3類型訪問。如何在不復制數據的情況下將子彈轉換轉換爲glm矩陣?
但是,我想知道是否有一個很好的方式來做到這一點,而不需要複製(如make_mat3x3)。
在我剔除了GLM之後,我發現 - 無需修改源代碼 - 這是不可能的。
複製是必需的。
兩個子彈和GLM緩存由值矩陣,而不是指針或引用。
對於子彈,看到一個證據:http://bulletphysics.org/Bullet/BulletFull/btMatrix3x3_8h_source.html
對於GLM,看一個例子:https://glm.g-truc.net/0.9.2/api/a00132_source.html。
如果您使用memcpy
可能會更快,但我不確定是否有可能。
這取決於值的排序方式。
(我有限的知識約GLM)
即使你設法讓兩個對象居住在同一地址,
會有一個可怕的問題是很難進行管理。 (例如雙刪除)
但是,在您嘗試避免複製之前,您是否配置文件呢?
複製並不昂貴,真的。
幾年前,我浪費了幾個小時帶着類似的問題。
在我的情況下,我想複製子彈的矩陣到Opengl緩衝區。儘管如此,在我描述它之後,我發現在我的所有遊戲原型中都有 ,這個操作的成本不到整個邏輯的1%。
不值得努力,真的。
不成熟的優化是邪惡的根源。