一个很好的高效碰撞引擎

http://www.tsarevitch.org/ozcollide/

Thanks TK!

What is OZCollide?

OZCollide is a fast, complete and free collision detection library. It provides a very ease of use C++ API especially focused on performance and functionalities for real time applications such as video games. OZCollide doesn't just provide yes/no collision queries between standard primitives. It is a full, functional, performant, stable and cross-platform library to be used instantly into your pipeline production providing tons of collision methods up to the object serialization itself. OZCollide is based on AABB tree implementation. See the next section for more informations.

What are the features of OZCollide?

- Supports for polygon soup, not just triangles as other libraries but real n-gons soup allowing performant indexation of convex and concave geometry
- Different structures to best match the nature of collisionable entities: n-gons, AABBs and spheres
- Large number of native API primitives to provide all kind of standard queries: sphere, ellipsoid, AABB, OBB, triangle, point, line and frustum
- Swept collision detection to detect the exact moment of collision of movable primitives (LSS) whatever their speed
- Supports for static collision detection on a given time as well
- Query for simple collision (true/false) or complete list of intersections
- Triangle/AABB, Triangle/OBB, Triangle/Sphere collision and intersection detection
- Line/Line, Line/Box, Segment/Triangle intersection detection
- Sphere/Box, Sphere/Line, Sphere/Frustum, AABB/OBB, ...
- ... really tons of methods for all your needs
- Radix based "Sweep'n'prune" for large number of movable entities
- System of cache with temporal coherence to greatly speed up access of collision resolution
- User callback to "take hand" when a collision occurs
- User value on leaf to hold any personnal data
- Built-in AABB trees builder to automatically build collision trees and monitor the result
- Native IO serializer (up to you to use it or no) based on IFF (Interchange File Format) with 'reading-from-memory' capabilities
- Cross-platform, works on Windows, Linux and Macintosh, in fact any platform supporting VisualStudio 6/7 or gcc
- Native IO data access Class to not care about FPU internal format (IEEE754 compliant or not), endianness or anything
- Support for PCH (Precompiled Header) or not
- Highly optimised code and algorithms
- Can be used as a static or dynamic library
- Released under the LGPL license
- Ease to use, documented, stable and very performant
- ...and much more!

I am not very familiar with collision/intersection algorithms. I just want to implement some kind of collision for say, my particles system. Is that would be hard with OZCollide?

No. Actually it is a matter of maybe 1 hour or 2 if you do not know yet the API.

No words. How is it working in practice?

You give to OZCollide your geometry defined by a set of points and a set of polygons. The library build for you a tree and return a pointer to it. Your particles are points that define lines when moving. Just invoke a query on that tree with these lines and you obtain your moments of collision if any. It is a matter of some lines of code and lighting fast.

What about a caracter player moving in a 3d world?

Same thing except here you would prefer to represent your caracter by a box, a sphere or a capsule to better fit its shape. Note that if you decide to use the swept detection algorithm you do not have even to worry about the velocity of your movable entities. Collision will always be detected even on a low machine with a limited number of FPS.

How fast is OZCollide?

OZCollide has been already used successfully to solve collision detection of hundreds of movable entities inside world geometry represented by tens of thousands of triangles and it never exceeded 5% of total CPU on a PIII-700Mhz. Also, OZCollide is "memory-friendly" and avoid allocation as much as possible prefering large chunk of memory at once (that is also limits memory fragmentation) which is especially appreciable for consoles development.

Can I freely use OZCollide in my personnal/commercial/whatever program?

Absolutely. OZCollide is released under the LGPL license. However a kind greetings is always appreciated :)

Where can I download OZCollide?

Right here: ozcollidelib_1-0-0.zip

Question?

Don't hesitate to write me for any question, suggestion or feedback:
igor at tsarevitch.org

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值