OpenXRay / OpenXRay/xray-16

Opcode update

Open
#877 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

External (3rd party) Help wanted Infrastructure
Dominant language
C++
Stars
3.6k
Forks
536
Avg merge
6d 1h
Merged PRs (30d)
3

Description

Noticed that Opcode (OPtimized COllision DEtection library) has a 1.3 update with the following changes:

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!)

The author states:

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).

Maybe, it could be updated or, at least, cherry-picked?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked Opcode 1.3 release notes and comparing them with the repository's current Opcode integration. No file, entry point, or test is named in the issue, so locate where Opcode is included and built before assessing the listed changes. Done means the intended 1.3 update is integrated and its collision behavior is verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.