OPCODE
Optimized Collision
Detection
OPCODE is a new small collision detection library. It
is similar to popular packages such as SOLID or RAPID, but more memory-friendly, and often faster.
-
C++
interface, developed for Windows systems using VC++ 6.0
-
Works on
arbitrary meshes (convex or non-convex), even polygon soups
-
Current
implementation uses AABB-trees
-
Introduces
Primitive-BV overlap tests during recursive collision queries (whereas standard
libraries only rely on Primitive-Primitive and BV-BV tests)
-
Introduces
no-leaf trees, i.e. collision trees whose leaf nodes have been removed
-
Supports
collision queries on quantized trees (decompressed on-the-fly)
-
Supports
"first contact" or "all contacts" modes (?la RAPID)
-
Uses
temporal coherence for "first contact" mode (~10 to 20 times faster,
useful in rigid body simulation during bisection)
-
Memory
footprint is 7.2 times smaller than RAPID's one, which is ideal for
console games with limited ram (actually, if you use the unmodified RAPID code
using double precision, it's more like 13 times smaller...)
-
And yet it
often runs faster than RAPID (according to RDTSC, sometimes more than 5
times faster when objects are deeply overlapping)
-
Performance
is usually close to RAPID's one in close-proximity situations
-
Stabbing,
planes & volume queries (sphere, AABB, OBB, LSS)
-
Sweep-and-prune
and radix-based box pruner
-
Now works
with deformable meshes (OPCODE 1.3)
-
Hybrid
trees (OPCODE 1.3) keep a maximum of 16 triangles per leaf and reorganize
client triangle lists, to eventually need roughly 16 times less ram than
OPCODE抯 standard trees. In the best case, this goes down to 1.25 byte /
triangle, which is 115 times smaller than RAPID抯 OBB trees (using
floats ! else it抯 168 times). Speed hit is often negligible, and volume
queries can actually run faster than OPCODE 1.2 due to less cache misses
(reorganizing clients arrays also helps in this regard). They抮e also faster
for deformable meshes.
Version 1.3
Version 1.2
Version 1.2 has also
been ported to Linux by W.P. van Paassen. He also included an
Opcode demo in The Demo Effects Collection.
Version 1.1
Version 1.0
You抮e free to use
them in any commercial or non-commercial program.
A demo is available to
compare OPCODE 1.0 and RAPID (requires Windows / DirectX7) :
It has been tested on
GeForce 1&2, ATI RAGE 128 and INTEL i740 cards. If it doesn抰 run on your
system (I can抰 test all OS / Card / Driver configurations), here抯 a summary of the demo.
Note that Opcode
1.3 is faster than version 1.0 !
A little (incomplete)
list of projects using OPCODE has been added here.
White paper (for
version 1.0 !):
User manual (for
version 1.2 !):
Questions ? Suggestions ? Comments ?
Drop me a mail.
-Last updated :
June 5, 2003 - Pierre Terdiman
军国主义是什么意思hcv8jop6ns3r.cn | 用醋泡脚有什么好处helloaicloud.com | 天蝎女跟什么星座最配hcv7jop5ns0r.cn | 什么叫房颤cl108k.com | 女生读什么技校好hcv9jop3ns8r.cn |
月可以加什么偏旁hcv7jop4ns5r.cn | 吃什么药能延迟射精hcv9jop0ns4r.cn | 头发属于什么组织hcv7jop9ns0r.cn | 厥逆是什么意思adwl56.com | 外耳道发炎用什么药hcv8jop4ns8r.cn |
宝宝不爱喝水有什么好的办法吗hcv8jop0ns2r.cn | 无偿是什么意思hcv8jop1ns8r.cn | 轶字五行属什么hcv9jop4ns9r.cn | 西门子洗衣机不脱水是什么原因hcv9jop5ns9r.cn | 天麻加什么治头晕hcv7jop7ns3r.cn |
狐臭和腋臭有什么区别hcv8jop5ns9r.cn | 马瘦毛长是什么意思hcv9jop5ns5r.cn | 有什么花的名字hcv9jop6ns3r.cn | 就请你给我多一点点时间是什么歌fenrenren.com | 龟兔赛跑的故事告诉我们什么道理hcv9jop4ns9r.cn |