網誌分類:日記 |
有趣, 話說昨天在OGRE 3D的Forum看到這段討論 :
"BSP on modern GPU...why it isn't efficient?
The Q3A BSP structure subscribes to this approach, culling in very small patches of triangles and dynamically determining every frame which small groups are visible so as to only pass the smallest set it needs to the renderer.
There are basically 2 ways to handle this - either keep all the data on the card and make lots of small calls to pull in all the fragments you need to render for this frame, or build up a combined buffer of fragments to render every frame (adjusting offsets etc on the fly in the CPU) and uploading that to the card as often as you need to for rendering. Q3A uses the latter approach, our BSP renderer uses the former (it used to use the same as Q3A but as an experiment we tried it the other way, and for hardware vertex buffer enabled cards it is faster).
Modern GPUs hate both approaches; the first spends far too much time in overheads for each rendering call, and the latter spends too much time transferring data over the bus. Which one is faster depends on the card, bus and CPU you have, but neither are optimal.
Modern level structures are designed to use much bigger chunks of data in one go,and are optimised for submission of large chunks of geometry at once not picking small fragments. So, even though the Q3A format is very popular, it's very outdated and generally unsuitable for modern projects."
回想自己在製作Ngan-GINE'3D時, 測試Render一個Level Map, 已經發現我以自己的方法, 和差不多Polygon數量的BSP, 在GeForce 2 MX(或以上)運行作速度比較, 成績沒有特別差很多, 所以我就沒有特別去研究BSP或其他分割方法. 後來我更加入Portal後, 令Render一個多Section的Level Map之速度更好.
Forum原文


女性3D model
不是我的錯...
鋼筆畫 !