Comments (3)
@dafhi
Hello David! It's been a while - hope you are doing well!Thank you for the link to that interesting paper. I have not seen that one before.
Good!
Even though I can't use it directly, it has sparked some of my creative juices in using the ray direction itself to cull possible primitives from intersection test consideration. I'm currently looking into sparse voxel octrees as another way of storing data and ray tracing inside the browser. Some parts of this technique in the paper might help in that future situation.
Thanks again!
-Erich
I have yet to implement a triangle! Anyway, your recent results are remarkable.
I invented an accel on my first ray tracer, which wasn't implemented in my 2nd (the one you saw) because I couldn't remember the theory, but I think I've got it now. It basically happens only at the first hit but maybe I can extend that.
SVOs sound fun! One day I'll get there!
from three.js-pathtracing-renderer.
just noted the new update. simply stunning
from three.js-pathtracing-renderer.
@dafhi
Hello David! It's been a while - hope you are doing well!
Thank you for the link to that interesting paper. I have not seen that one before. I'm not sure if I can use it directly, partly because I don't quite understand the 5D math behind the approach and there is no source code (as is the case with most papers written decades ago), and partly because their approach was intended for CPU rendering which, according to their paper, tags bundles of rays. In our case in this repo, we use GPU only and one pixel ray is not allowed to see its neighbor rays from other pixels. We utilize the truly massively parallel architecture of the GPU to divide and conquer and make real time ray tracing possible. But with that decision to use the GPU, comes along the caveat that one ray cannot peek over and see what any other rays are doing. So we cannot bundle or group rays together in a 3D ray beam or 5D hypercube (as in the paper) like CPU renderers can, nor can the intersection candidate lists be shared from one ray to another (also as in the paper), even if they are right next to each other. The paper you linked to would probably work best for a more traditional CPU raytracer (as was the only choice back in the 1980's).
Even though I can't use it directly, it has sparked some of my creative juices in using the ray direction itself to cull possible primitives from intersection test consideration. I'm currently looking into sparse voxel octrees as another way of storing data and ray tracing inside the browser. Some parts of this technique in the paper might help in that future situation.
Thanks again!
-Erich
from three.js-pathtracing-renderer.
Related Issues (20)
- muti material not supported
- WebGPU port HOT 3
- More abstractions HOT 9
- Using more information from earlier samples HOT 3
- More samples per frame option HOT 63
- More compatibility with three js APIs HOT 2
- Stop a caustic ray if it crosses a surface HOT 3
- Just wondering how you handled something HOT 14
- Blue noise HOT 8
- GLTF viewer textures HOT 3
- sampler2D array HOT 14
- How to use this pathtracer in Freeciv 3D version? HOT 2
- [question] how to debug glsl in chrome? HOT 2
- GLTF_Model_Viewer didn't get the right result? HOT 6
- How to incorporate it into project? HOT 9
- statistical tool: bootstrapping
- Shadow Catcher HOT 1
- Support for a THREE.ParametricGeometry HOT 1
- GLTF_Viewer is not able to load textures HOT 1
- image stretched for BHV point light source HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.js-pathtracing-renderer.