Giter Site home page Giter Site logo

yalecheung / bvh_article Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jbikker/bvh_article

0.0 1.0 0.0 16.86 MB

Code accompanying the blog post on bvh construction.

License: The Unlicense

C++ 35.50% C 63.37% Objective-C 1.11% Batchfile 0.02%

bvh_article's Introduction

Code for "How to Build a BVH"

INSTRUCTIONS: Open the "_ bvhdemo.sln" file (all the way at the top!), and make one of the 10 projects the active project.

Note: project files are for Visual Studio 2019; they will convert without issues to 2022 though.

Each project implements one of the 10 articles:

part 1, basics:
https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics
...Which explains how to set up a minimal but working BVH in about 300 lines of code.
Project: basics.vcxproj, files: basics.cpp, basics.h

part 2, faster rays:
https://jacco.ompf2.com/2022/04/18/how-to-build-a-bvh-part-2-faster-rays
...in which rays are traced faster, at the expense of BVH build time.
Project: faster.vcxproj, files: faster.cpp, faster.h

part 3, quick builds:
https://jacco.ompf2.com/2022/04/21/how-to-build-a-bvh-part-3-quick-builds
...explains how a high-quality BVH can be constructed rapidly.
Project: quickbuild.vcxproj, files: quickbuild.cpp, quickbuild.h

part 4, animation:
https://jacco.ompf2.com/2022/04/26/how-to-build-a-bvh-part-4-animation
...in which various forms of animation are applied to BVHs.
Project: animation.vcxproj, files: animation.cpp, animation.h

part 5, TLAS & BLAS:
https://jacco.ompf2.com/2022/05/07/how-to-build-a-bvh-part-5-tlas-blas
...describes how a lot of BVHs can be made into one.
Project: toplevel.vcxproj, files: toplevel.cpp, toplevel.h

part 6, TLAS & BLAS part 2:
https://jacco.ompf2.com/2022/05/13/how-to-build-a-bvh-part-6-all-together-now
...which completes the discussion of article 5.
Project: alltogether.vcxproj, files: alltogether.cpp, alltogether.h

part 7, consolidation:
https://jacco.ompf2.com/2022/05/20/how-to-build-a-bvh-part-7-consolidate
...in which the BVH is applied to some nicer renders.
Project: pretty.vcxproj, files: pretty.cpp, pretty.h, bvh.cpp, bvh.h

part 8, whitted:
https://jacco.ompf2.com/2022/05/27/how-to-build-a-bvh-part-8-whitted-style
...completing part 7, with full recursive ray tracing, in real-time.
Project: whitted.vcxproj, files: whitted.cpp, whitted.h, bvh.*

part 9a, GPGPU:
https://jacco.ompf2.com/2022/06/03/how-to-build-a-bvh-part-9a-to-the-gpu
...which is really a GPGPU tutorial, using BVHs as an example.
Project: gpgpu.vcxproj, files: gpgpu.cpp, gpgpu.h, bvh.*

part 9b, 'massive':
https://jacco.ompf2.com/2022/06/15/how-to-build-a-bvh-part-9b-massive
...series finale, with TLAS & BLAS on the GPU. Also: GL/CL interop.
Project: massive.vcxproj, files: massive.cpp, massive.h, raytracer.cl.

NOTE: All projects share the same template files and build directories.
DISCLAIMER: None of this is supposed to be 'production quality'. P.S.: Follow me on Twitter, @j_bikker.

bvh_article's People

Contributors

jbikker avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.