data-oriented-design

    0熱度

    2回答

    我正在用C#編程一個遊戲,我正在使用SoA模式來處理性能關鍵組件。 下面是一個例子: public class ComponentData { public int[] Ints; public float[] Floats; } 理想情況下,我想其他的程序員才應指定該數據(如上),並用它做。然而,有些操作必須完成每個陣列,像分配,複製,成長等現在我使用的是抽象方法的抽

    0熱度

    1回答

    我已經開始做我自己的「數組結構」編碼,但想知道是否有人知道庫或模板已經在那裏做強烈的數據轉換的東西在內存受限的硬件上。 我想我正在尋找的是一種「內存」容器,它允許我排隊插入直到同步點,並在中期迭代「刪除」。它不必是一個實際的刪除(與移動東西的開銷),標記爲刪除也可以。 此外,容器將可能必須連續的大部分出於性能的考慮,緩存變暖等。連續的塊不是完全連續的,也可以,但是基於鏈表的容器不會因內存或速度而減

    6熱度

    2回答

    有人想過如何編寫一個完全沒有分支的內存管理器(使用C++)?我已經編寫了一個池,一個堆棧,一個隊列和一個鏈表(從池中分配),但我想知道編寫一個免分支的內存管理器有多合理。 這都是爲了幫助構建一個真正可重用的框架,用於實現可靠的併發,有序CPU和緩存友好的開發。 編輯:無分支我的意思是沒有做直接或間接函數調用,也沒有使用ifs。我一直在想,我可能會實現一些首先將所需大小更改爲零的錯誤調用,但實際上並

    0熱度

    2回答

    struct{ Vector3* centers; float* radii; float* colors; unsigned int size; }Spheres; 與 struct Sphere{ Vector3 center; float radius; float color; }; struct{

    6熱度

    3回答

    http://gamesfromwithin.com/data-oriented-design 我是上面文章的粉絲。我可以在哪裏瞭解更多關於這方面的信任何人都建議閱讀教科書,系列文章或源代碼庫?

    0熱度

    1回答

    首先,我是新來的DOD這一概念,並在新的吧,我覺得它真的從程序員的角度精彩。 前一段時間我做了一個多層感知器,作爲我自己的一個面向對象的項目,既然我現在在學習DOD,我認爲用這個範例來做它會很好。 struct Neuron { double bias; double error; }; struct Layer { Neuron* neurons;

    6熱度

    3回答

    我正在寫一個物理引擎,很難找出設計我的數據存儲的好方法。 我需要的功能: 有代表PhysicsBody 有代表碰撞體類(比方說,一箱)類 每個物理身體可以有一個更碰撞體積 可能有沒有碰撞體積的物理體 可選:CollisionVolume沒有物理體。 (認爲​​觸發量) 現在我基本上有兩個循環。 一個更新模擬中的物理實體。它更新它們的位置/速度/旋轉。 第二個循環在所有碰撞體上執行碰撞檢測。它只是一

    7熱度

    1回答

    在面向數據的設計的許多着作中扮演着重要角色的一個特徵是,有很多情況,而不是AoS(數組結構): struct C_AoS { int foo; double bar; }; std::vector<C_AoS> cs; ... std::cout << cs[42].foo << std::endl; 更有效地安排在SOA一個數據陣列(結構): struct C_

    0熱度

    1回答

    我想將面向數據的設計(基於例如this article)應用於我的簡單物理引擎。我專注於優化碰撞測試,因爲它是最昂貴的部分。 我已經組織了包圍球可以與玩家碰撞到單vector: struct Sphere{ //I don't split sphere into parts, //as I usually access both position and radius in my cal

    6熱度

    2回答

    目前我想優化我的控制檯的3d引擎一點。更確切地說,我希望更好地緩存緩存,並使我的結構更加面向數據,但也希望保持良好的用戶界面。 例如: bool Init() { // Create a node ISceneNode* pNode = GetSystem()->GetSceneManager()->AddNode("viewerNode"); // Create