Oriented Bounding Box OBB 實現的記憶體開銷?

時間 2021-06-07 19:43:02

1樓:Milo Yip

如果 OBB 的軸與模型座標對齊,那麼它便是乙個模型空間的AABB。AABB通常有兩種表示方式:min/max 和 center/half-extent。描述所指的就是後者。

另外,可以把 OBB 表示為把單位立方體(unit cube)變換至 OBB 的變換。而描述中的「最小結構」其實是乙個非等比的SQT(scaling-quaternion-translation)變換。但使用這種變換去變換向量時,通常較 3×4 矩陣慢。

所以,另一種表示OBB的形式是使用 3×4 矩陣;缺點是需要 12 個數字,並且分解 S 和 R 因子較為麻煩;優點就是變換較快,以及容易與 3×4 矩陣結合(如 model-to-world 矩陣)。注意非等比 SQT 的串接運算是不閉合的,當然如果父變換含非等比縮放,OBB在變換後就可能不是乙個長方體,變成平行六面體(parallelepiped)。

最後一提,為了降低空間,單位四元數可以壓縮為儲存三個分量。

malloc 的實現涉及物理記憶體,虛擬記憶體?

jiajiangfei 最近也看了一些記憶體管理的文章。malloc的實現我覺的題主不妨可以這樣理解。對於32位作業系統,每乙個程序都有32bit的虛擬位址空間。當malloc的時候,隨便從自己的4G的虛擬位址空間裡面拿出來一塊這時候並沒有真的實體地址給分配出來,從上面Target的驗證結果來看也是...

C 中 vector 重新分配記憶體是怎樣實現的?

這個問題很好回答啊 1重新分配記憶體一般是擴大1.5倍 2倍什麼的具體不確定。2肯定要把原來的物件拷貝過去啊涉及到拷貝初始化物件,則會用到copy建構函式或者移動建構函式 c primer第五版一書中講到 c11新添了移動構造所以調研移動構造。若是c98則只能是copy構造咯.3肯定是虛構原來的物件...

貼圖開各向異性過濾會增大記憶體嗎?

楊鼎超 不清楚題主用的 API 裡面的各向異性過濾是具體哪一種,但很多各向異性過濾技術都是依賴 Mipmap 演算法改進的 其中一種演算法 Texram 是 沿著主方向增加取樣點,再平均混合,如下圖所示 上左圖的 pixel 覆蓋的 texel 四邊形如上右圖所示 四邊形的短邊用於確定 Mipmap...