Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge dev v1.3.2 into main. #94

Merged
merged 58 commits into from
Jan 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d7d4a66
Update README.md
jbikker Jan 16, 2025
7e2f97d
TLAS can now be built without BVH array.
jbikker Jan 16, 2025
79ea94e
Preparing interop project.
jbikker Jan 16, 2025
dbe5b74
Cleaning up template.
jbikker Jan 17, 2025
d4386f2
Squashed lots of VS warnings.
jbikker Jan 17, 2025
61956cb
Removed unneeded files.
jbikker Jan 17, 2025
02d9cc4
Implementation can now be included after including interface.
jbikker Jan 17, 2025
84a08fd
Implementation can now be included after including interface.
jbikker Jan 17, 2025
14099d1
Preparing for ocl/bvh inclusion.
jbikker Jan 17, 2025
83e8ff1
Added header file libraries to project.
jbikker Jan 17, 2025
261b997
Conversion in progress.
jbikker Jan 17, 2025
fe25c85
v1.2.6
jbikker Jan 17, 2025
ce9c53e
Added OpenGL interop functionality.
jbikker Jan 17, 2025
ffc0625
Using interop for better speed.
jbikker Jan 17, 2025
7684535
Added correct cl files.
jbikker Jan 17, 2025
65585c0
Removed double pixel buffer.
jbikker Jan 17, 2025
8e5b480
cl header files for interop.
jbikker Jan 17, 2025
7e1daef
Version bump.
jbikker Jan 17, 2025
7855a09
Removed debug line.
jbikker Jan 17, 2025
c61e618
Small fix.
jbikker Jan 17, 2025
c2e3364
Fragment splitting, in progress.
jbikker Jan 18, 2025
805271a
std::isfinit instead of isnan.
jbikker Jan 18, 2025
7e4fc5b
Merge pull request #91 from jbikker/main
jbikker Jan 20, 2025
dacb488
Fixed aabb in sbvh leafs for clipped tris.
jbikker Jan 21, 2025
85d7fc5
Title bar now shows world coord and prim idx.
jbikker Jan 21, 2025
b125cb5
SBVH cleanup, in progress.
jbikker Jan 21, 2025
71c9de0
TLAS_BITS can now be 32, resulting in a separate inst field.
jbikker Jan 22, 2025
d15cc0c
Massive bunny cube tlas stress test.
jbikker Jan 22, 2025
ec26141
Added opencl code to speedtest project.
jbikker Jan 22, 2025
71feea2
Minor fix for MacOS.
jbikker Jan 22, 2025
6bcc5ca
Cleaned up TLAS_BITS feature.
jbikker Jan 22, 2025
b05c123
Renamed TLAS_BITS to INST_IDX_BITS.
jbikker Jan 22, 2025
fdd6c59
Improved clipping robustness.
jbikker Jan 22, 2025
f3c2655
HQ builds for better framerates.
jbikker Jan 22, 2025
65039ed
Version bump.
jbikker Jan 22, 2025
3952fbf
Cleaned up the sample.
jbikker Jan 22, 2025
16ccfb7
Now plays nice(r) with external math libs.
jbikker Jan 22, 2025
03b28d8
Interop sample demonstrates BYOVT.
jbikker Jan 22, 2025
ade6ea0
All samples now use new vector function names.
jbikker Jan 22, 2025
d6a6d85
Version 1.3.0 due to minor api change.
jbikker Jan 22, 2025
eb5dc4b
Update README.md
jbikker Jan 22, 2025
5c173ee
New builder for custom geometry using aabb callback.
jbikker Jan 23, 2025
e20185b
triIdx array renamed to (the more generic) 'primIdx'.
jbikker Jan 23, 2025
f0086f7
Separate custom geom example for doubles.
jbikker Jan 23, 2025
c86afce
Added some double operations.
jbikker Jan 23, 2025
2c81def
Minor cleanup.
jbikker Jan 23, 2025
98242d6
Added new double precision custom geom project.
jbikker Jan 23, 2025
13c22b4
Small bug fix, wrong blas index.
jbikker Jan 23, 2025
9c44890
Added new double-precision tlas example.
jbikker Jan 23, 2025
c1e4f05
TLAS with custom geometry and blend of BVH types.
jbikker Jan 23, 2025
0075cf9
Examples now use blend of BVHs.
jbikker Jan 23, 2025
e615568
Using tinybvh_transform_*.
jbikker Jan 23, 2025
e24c3cb
Version bump.
jbikker Jan 23, 2025
f964900
Removed broken NEON builder code.
jbikker Jan 24, 2025
68d2d54
Added sphere-to-BVH test: bool BVH::IntersectSphere(..).
jbikker Jan 24, 2025
3867c72
New example for collision functionality.
jbikker Jan 24, 2025
346ac40
Cleanup.
jbikker Jan 24, 2025
8fbf936
Version 1.3.2, prepare for merge.
jbikker Jan 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ The **performance measurement tool** can be compiled with:

````g++ -std=c++20 -mavx -Ofast tiny_bvh_speedtest.cpp -o tiny_bvh_speedtest````

# Version 1.2.5
# Version 1.3.2

Version 1.3.0 changed the names of vector math functions, which are now prepended with ````tinybvh_````, e.g. ````tinybvh_cross````, ````tinybvh_normalize````. This avoids name clashes in applications that override the vector types with their own. Basically tinybvh evades these so you don't have to.

Version 1.1.0 introduced a <ins>change to the API</ins>. The single BVH class with multiple layouts has been replaced with a BVH class per layout. You can simply instantiate the desired layout; conversion (and data ownership) is then handled properly by the library. Examples:

Expand Down Expand Up @@ -112,13 +114,16 @@ This version of the library includes the following functionality:
* Fast binned SAH BVH builder using NEON intrinsices, by [wuyakuma](https://github.com/wuyakuma)
* TLAS builder with instancing and TLAS/BLAS traversal
* Double-precision binned SAH BVH builder
* Support for custom geometry and mixed scenes
* Example code for GPU TLAS/BLAS traversal (dragon invasion demo, tiny_bvh_gpu2.cpp)
* Example TLAS/BLAS application using OpenGL interop (windows only)
* Spatial Splits ([SBVH](https://www.nvidia.in/docs/IO/77714/sbvh.pdf), Stich et al., 2009) builder, including "unsplitting"
* 'Compressed Wide BVH' (CWBVH) data structure
* BVH optimizer: reduces SAH cost and improves ray tracing performance ([Bittner et al., 2013](https://dspace.cvut.cz/bitstream/handle/10467/15603/2013-Fast-Insertion-Based-Optimization-of-Bounding-Volume-Hierarchies.pdf))
* Collapse to N-wide MBVH using templated code
* Conversion of 4-wide BVH to GPU-friendly 64-byte quantized format
* Single-ray and packet traversal
* Sphere/BVH collision detection via BVH::IntersectSphere(..)
* Fast triangle intersection: Implements the 2016 paper by [Baldwin & Weber](https://jcgt.org/published/0005/03/03/paper.pdf)
* OpenCL traversal: Aila & Laine, 4-way quantized, CWBVH
* Support for WASM / EMSCRIPTEN, g++, clang, Visual Studio
Expand All @@ -128,7 +133,8 @@ This version of the library includes the following functionality:
* Custom primitives can be intersected via callbacks (new in 1.2.2)
* Clear data ownership and intuitive management via the new and simplified API, with lots of help from David Peicho
* You can now also BYOVT ('bring your own vector types'), thanks [Tijmen Verhoef](https://github.com/nemjit001)
* 'SpeedTest' tool that times and validates all (well, most) traversal kernels.
* 'SpeedTest' tool that times and validates all (well, most) traversal kernels
* A [manual](https://jacco.ompf2.com/2025/01/24/tinybvh-manual-basic-use) is now available.

The current version of the library is rapidly gaining functionality. Please expect changes to the interface.

Expand Down
Loading
Loading