OPCODE distribution 1.3 (june 2003)
-----------------------
New in Opcode 1.3:
- fixed the divide by 0 bug that was happening when all centers where located on a coordinate axis (thanks to Jorrit T)
- linearized "complete" vanilla AABB trees
- ANSI-compliant "for" loops (for the ones porting it to Linux...)
- callbacks & pointers moved to mesh interface
- support for triangle & vertex strides
- optimized the sphere-triangle overlap code a bit
- dynamic trees (refit)
- more builders
- ValidateSubdivision in builders
- LSS collider
- primitive-bv tests can now be skipped in most volume queries
- temporal coherence now also works for airborne objects
- temporal coherence completed for boxes / all contacts, LSS, etc
- ray-collider now uses a callback
- some common "usages" have been introduced (only picking for now)
- SPLIT_COMPLETE removed (now implicitely using mLimit = 1)
- hybrid collision models
- sweep-and-prune code added, moved from my old Z-Collide lib
- it now works with meshes made of only 1 triangle (except in mesh-mesh case!)
Disclaimer:
- I forced myself to actually *do* the release today no matter what. Else it would never have been done. That's
why the code may not be very polished. I also removed a *lot* of things (more usages, distance queries, etc...)
that weren't ready for prime-time (or that were linked to too many of my supporting libs)
- Some comments may also be obsolete here and there. The old User Manual for Opcode 1.2 may not fit version 1.3
either, since there's a new "mesh interface" to support strides, etc.
- Everything in the "Ice" directory has been hacked out of my engine and edited until everything compiled. Don't
expect anything out there to be cute or something. In particular, some CPP files are not even included when not
needed, so you can expect some linker errors if you try messing around with them...
Otherwise, it should be just like previous version, only better. In particular, hybrid models can be very
memory-friendly (sometimes using like 10 times less ram than the best trees from version 1.2). The possible
speed hit is often invisible (if it even exists), especially using temporal coherence in "all contacts" mode.
(Admittedly, this depends on your particular usage pattern / what you do on collided triangles).
The sweep-and-prune code is similar to the "vanilla" version found in V-Collide (but that one's better IMHO...)
The simple "radix" version is often just as good, see for yourself.
OPCODE distribution 1.2 (august 2002)
-----------------------
New in Opcode 1.2:
- new VolumeCollider base class
- simplified callback setup
- you can now use callbacks or pointers (setup at compile time)
- destination array not needed anymore in the RayCollider (faster in-out tests)
- renamed classes: AABBRayCollider => RayCollider, AABBSphereCollider => SphereCollider
- the sphere query now only returns a list of faces (extra info discarded). On the other hand it's a lot faster.
- OBB, AABB and planes queries. Original OBB and AABB queries contributed by Erwin de Vries.
- cosmetic changes in OPC_BoxBoxOverlap.h contributed by Gottfried Chen
- some inlining problems fixed
- faster ray-mesh tests using the separating axis theorem
- new split value in AABB tree construction (contributed by Igor Kravtchenko). Provides faster queries most of the time.
- improved temporal coherence for sphere & AABB queries (works in "All contacts" mode)
Notes:
- Everything in the "Ice code" directory (in VC++) is basically copy-pasted from my engine, with a lot
of code removed until there was no link error anymore. Don't expect those files to be cute or anything,
they've never been meant to be released and they're often updated/modified/messy.
- Some experimental features have been removed as well. Else I would never have released the 1.2...
- Not as polished/optimal as I would like it to be, but that's life. I promised myself to release it
before october 2002 (one YEAR later ?!).... That's the only reason why it's there.
- Some people reported ColDet was faster. Uh, come on. They were using Opcode in
"All contacts" mode whereas ColDet was doing "first contact"...
OPCODE distribution 1.1 (october 2001)
-----------------------
New in Opcode 1.1:
- stabbing queries
- sphere queries
- abtract base class for colliders
- settings validation methods
- compilation flags now grouped in OPC_Settings.h
- smaller files, new VC++ virtual dirs (cleaner)
Notes:
- "override(baseclass)" is a personal cosmetic thing. It's the same as "virtual", but provides more info.
- I code in 1600*1200, so some lines may look a bit long..
- This version is not as polished as the previous one due to lack of time. The stabbing & sphere queries
can still be optimized: for example by trying other atomic overlap tests. I'm using my first ray-AABB
code, but the newer one seems better. Tim Schr�der's one is good as well. See: www.codercorner.com/RayAABB.cpp
- The trees can easily be compressed even more, I save this for later (lack of time, lack of time!)
- I removed various tests before releasing this one:
- a separation line, a.k.a. "front" in QuickCD, because gains were unclear
- distance queries in a PQP style, because it was way too slow
- support for deformable models, too slow as well
- You can easily use Opcode to do your player-vs-world collision detection, in a Nettle/Telemachos way.
If someone out there wants to donate some art / level for the cause, I'd be glad to release a demo. (current
demo uses copyrighted art I'm not allowed to spread)
- Sorry for the lack of real docs and/or solid examples. I just don't have enough time.
OPCODE distribution 1.0 (march 2001)
-----------------------
- First release
===============================================================================
WHAT ?
OPCODE means OPtimized COllision DEtection.
So this is a collision detection package similar to RAPID. Here's a
quick list of features:
- 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
- Now works with deformable meshes
- Hybrid trees
What it can be used for:
- standard mesh-mesh collision detection (similar to RAPID, SOLID, QuickCD, PQP, ColDet...)
- N-body collisions (similar to V-Collide)
- camera-vs-world collisions (similar to Telemachos
没有合适的资源?快使用搜索试试~ 我知道了~
ogre+opcode源代码
共174个文件
h:91个
cpp:60个
txt:5个
4星 · 超过85%的资源 需积分: 9 58 下载量 180 浏览量
2010-11-26
10:25:55
上传
评论
收藏 346KB RAR 举报
温馨提示
这是一个ogre+opcode物理碰撞的例子,源代码哦!是个很好的学习资源
资源推荐
资源详情
资源评论
收起资源包目录
ogre+opcode源代码 (174个子文件)
ogreopcode_SDK.cbp 10KB
IOgreCollisionShape.cpp 42KB
OgreOpcodeLine.cpp 41KB
OPC_TreeCollider.cpp 40KB
OPC_OptimizedTree.cpp 35KB
OPC_RayCollider.cpp 31KB
OPC_OBBCollider.cpp 30KB
OPC_SphereCollider.cpp 29KB
OPC_LSSCollider.cpp 28KB
OPC_PlanesCollider.cpp 26KB
OPC_AABBCollider.cpp 26KB
IceIndexedTriangle.cpp 24KB
OPC_AABBTree.cpp 23KB
OgreCollisionContext.cpp 22KB
IceRevisitedRadix.cpp 22KB
OgreOpcodeMath.cpp 19KB
OgreCapsuleMeshCollisionShape.cpp 18KB
OPC_SweepAndPrune.cpp 18KB
OgreSphereMeshCollisionShape.cpp 17KB
OPC_HybridModel.cpp 17KB
IceAABB.cpp 16KB
OgreCollisionManager.cpp 16KB
OPC_MeshInterface.cpp 15KB
OgreMeshCollisionShape.cpp 14KB
IceContainer.cpp 14KB
OgreEntityCollisionShape.cpp 14KB
OPC_BoxPruning.cpp 14KB
OgreOpcodeDebugObject.cpp 13KB
OgreCollisionObject.cpp 13KB
IceOBB.cpp 13KB
IceTriangle.cpp 12KB
OPC_TreeBuilders.cpp 12KB
IceMatrix4x4.cpp 9KB
OgreOpcodeCharacterController.cpp 9KB
OPC_Model.cpp 9KB
OgreOrientedBox.cpp 8KB
OgreBoxCollisionShape.cpp 8KB
IcePoint.cpp 7KB
OgreTriangle.cpp 7KB
OPC_BaseModel.cpp 6KB
OgreTerrainCollisionShape.cpp 6KB
OPC_Picking.cpp 5KB
OgrePtrCollisionShape.cpp 5KB
OgreOpcodeTerrainData.cpp 5KB
OPC_VolumeCollider.cpp 5KB
IceHPoint.cpp 4KB
OPC_Collider.cpp 3KB
OgreCapsule.cpp 3KB
Opcode.cpp 3KB
OPC_Common.cpp 3KB
IceRay.cpp 3KB
BP_Endpoint.cpp 2KB
IcePlane.cpp 2KB
IceSegment.cpp 2KB
IceMatrix3x3.cpp 2KB
IceUtils.cpp 2KB
BP_Proxy.cpp 2KB
OgreOpcodeRay.cpp 2KB
BP_Scene.cpp 1KB
IceRandom.cpp 1KB
StdAfx.cpp 595B
style.css 4KB
ogreopcode_SDK.depend 32B
OgreOpcode.dox 5KB
OgreOpcode.Doxyfile 10KB
IceAABB.h 25KB
OgreOpcodeMath.h 25KB
OPC_LSSTriOverlap.h 22KB
IceMatrix4x4.h 21KB
IceMatrix3x3.h 20KB
OPC_MeshInterface.h 20KB
IcePoint.h 20KB
OPC_LSSAABBOverlap.h 17KB
OPC_TreeCollider.h 14KB
OPC_RayCollider.h 13KB
OgreCollisionObject.h 12KB
OPC_TriBoxOverlap.h 12KB
IceUtils.h 11KB
OPC_BaseModel.h 10KB
OPC_Collider.h 10KB
OgreCollisionReporter.h 10KB
IceOBB.h 10KB
IceContainer.h 10KB
IceFPU.h 9KB
OPC_OptimizedTree.h 9KB
OPC_TreeBuilders.h 9KB
OPC_TriTriOverlap.h 9KB
OPC_BoxBoxOverlap.h 8KB
OPC_AABBTree.h 8KB
IceTypes.h 8KB
IOgreCollisionShape.h 7KB
IceHPoint.h 7KB
OPC_VolumeCollider.h 7KB
OgreCollisionContext.h 7KB
OPC_OBBCollider.h 7KB
IceBoundingSphere.h 7KB
OgreCapsuleMeshCollisionShape.h 7KB
OgreOpcodeLine.h 7KB
OgreCollisionManager.h 7KB
OgreOpcodeRay.h 6KB
共 174 条
- 1
- 2
资源评论
- zzuyouling2012-12-22里面有一些问题没有解决,当然是Opcode自身的原因,不能怪上传者,其他地方有修改后的代码
- wxlwxl19932015-02-01大部分都是Opcode自身的文件,没找到所谓的例子什么的
- beizilifangpi2012-10-23太好了,这样的例子太少了。
loveyun7767
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功