Working on a ray tracer has been quite fun, especially when debugging it when the image doesn't come out right.
I don't think that box is supposed to be cut off. This was a bug with transforming the bounding box with a rotation. |
It's mainly based off of Peter Shirley's raytracer in the Ray Tracing in One Weekend series of books, just implemented in Java. It's certainly not fast, but that's not really a big issue since I'm treating this renderer mostly as toy to learn more about the fundamentals of ray tracing.
Right now I'm just trying to fully understand the Cook-Torrance BRDF so that my implementation isn't gross. I tried to just go in head first but my code just ended up being a mess of things that didn't work. I backed up to just test the specular component:
This specular test doesn't follow the BRDF structure setup by the book (so we can't do importance sampling on lights) since I computed the ray, BRDF, and pdf for the ray all in one method. Will need to restructure later.
Teapot! This uses a rather inaccurate model of glossy surfaces but looks nice. |
Right now I'm just trying to fully understand the Cook-Torrance BRDF so that my implementation isn't gross. I tried to just go in head first but my code just ended up being a mess of things that didn't work. I backed up to just test the specular component:
Y-axis is increasing metallic-ness and x-axis is increasing roughness. |
That aside, now that I'm in college it's time to step it up and start completing somewhat more meaningful projects and develop more formal skills.
Things to do:
- Finish implementing the Cook-Torrance BRDF model for the Java raytracer
- Get better at programming in C and C++
- Learn Verilog (need to come up with a project for this so that I have something to work towards)
- Maybe go back to finish the camera timelapse setup (at least one axis)
No comments:
Post a Comment