Gallery of images from
CS500 Ray Tracing


CS500 (Ray Tracing) images are created via the path tracing algorithm, a modern variant of the traditional Ray Tracing algorithm. The algorithm is not realtime, but produces a highly accurate accounting of all the light reflecting/refracting through a scene.

Many of these images use Image Based Lighting to provide a full lighting environment and a modern, physically based, micro-facet BRDF (Bidirection Reflection Distribution Function) to compute a surface's interaction with light.

Jump to a specific semester, or just scroll to browse most recent first:

                               
2026_Spring
2025_Spring
2024_Spring
2023_Spring
2022_Spring
2021_Spring
2020_Spring
2019_Summer
2019_Spring
2018_Spring
2017_Spring
2016_Spring
2015_Spring
2014_Spring
2013_Spring
2012_Spring

RayTracing/2026 Spring

2026 Spring Highslide JS
2026 Spring:
Aditya Prakash Highslide JS
Aditya Prakash:
Aditya Prakash Highslide JS
Aditya Prakash:
Collin Longoria Highslide JS
Collin Longoria:
Collin Longoria Highslide JS
Collin Longoria:
Gavin Cooper Highslide JS
Gavin Cooper:
Gavin Cooper Highslide JS
Gavin Cooper:
Gavin Cooper Highslide JS
Gavin Cooper:
Gavin Cooper Highslide JS
Gavin Cooper:
Martin Chow Highslide JS
Martin Chow:
Martin Chow Highslide JS
Martin Chow:
Martin Chow Highslide JS
Martin Chow:
Martin Chow Highslide JS
Martin Chow:
Michael Haynes Highslide JS
Michael Haynes:
Rares Morosan Highslide JS
Rares Morosan:
Rares Morosan Highslide JS
Rares Morosan:
Rares Morosan Highslide JS
Rares Morosan:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:
Swaroop Kishen Highslide JS
Swaroop Kishen:

RayTracing/2025 Spring

Jeyoon Yu Highslide JS
Jeyoon Yu:
Jeyoon Yu Highslide JS
Jeyoon Yu:
Jiayi Zheng Lin Highslide JS
Jiayi Zheng Lin:
Junyeong Cho Highslide JS
Junyeong Cho:
Junyeong Cho Highslide JS
Junyeong Cho:
Junyeong Cho Highslide JS
Junyeong Cho:
Yiyang Wang Highslide JS
Yiyang Wang:
Yiyang Wang Highslide JS
Yiyang Wang:

RayTracing/2024 Spring

Kelsey Wimberley Highslide JS
Kelsey Wimberley:
Kelsey Wimberley Highslide JS
Kelsey Wimberley:
Kelsey Wimberley Highslide JS
Kelsey Wimberley:
Kelsey Wimberley Highslide JS
Kelsey Wimberley:
Levi Beecher Highslide JS
Levi Beecher:
Levi Beecher Highslide JS
Levi Beecher:
Levi Beecher Highslide JS
Levi Beecher:
Levi Beecher Highslide JS
Levi Beecher:
Levi Beecher Highslide JS
Levi Beecher:
Siravich Sereepong Highslide JS
Siravich Sereepong:
Siravich Sereepong Highslide JS
Siravich Sereepong:
Sunny Elliott Highslide JS
Sunny Elliott:
Sunny Elliott Highslide JS
Sunny Elliott:
Sunny Elliott Highslide JS
Sunny Elliott:
Sunny Elliott Highslide JS
Sunny Elliott:
Sunny Elliott Highslide JS
Sunny Elliott:

RayTracing/2023 Spring

Andrew S Rudasics Highslide JS
Andrew S Rudasics:
Andrew S Rudasics Highslide JS
Andrew S Rudasics:
Anthony Bartholomew Highslide JS
Anthony Bartholomew:
Aseem Apastamb Highslide JS
Aseem Apastamb:
Aseem Apastamb Highslide JS
Aseem Apastamb:
Brian J Paradee Highslide JS
Brian J Paradee:
Brian J Paradee Highslide JS
Brian J Paradee:
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: Sixteen spheres. Subtract from torus to create “Bit Doughnut.” Position and scale is a function of the torus minor radius. r = 0.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: Sixteen spheres. Subtract from torus to create “Bit Doughnut.” Position and scale is a function of the torus minor radius. r = 0.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Levitator.” Union of two boxes. Intersect with “Bit Doughnut” to create “Sandwich” or subtract from “Bit Doughnut” to create “Pokey.” Position and scale is a function of the torus radii of “Bit Doughnut.” Edge length = 2R+r = 2.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Levitator.” Union of two boxes. Intersect with “Bit Doughnut” to create “Sandwich” or subtract from “Bit Doughnut” to create “Pokey.” Position and scale is a function of the torus radii of “Bit Doughnut.” Edge length = 2R+r = 2.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: Torus. Basis shape of family of CSG composite shapes. Position and scale of all other subshapes are a function of the torus radii. R = 1.0, r = 0.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: Torus. Basis shape of family of CSG composite shapes. Position and scale of all other subshapes are a function of the torus radii. R = 1.0, r = 0.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Bit Doughnut.” Result of subtracting sixteen spheres from the torus. CSG intermediate result. Becomes “Sandwich” when intersected with “Levitator.” Becomes “Pokey” when “Levitator” is subtracted from it. R = 1.0, r = 0.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Bit Doughnut.” Result of subtracting sixteen spheres from the torus. CSG intermediate result. Becomes “Sandwich” when intersected with “Levitator.” Becomes “Pokey” when “Levitator” is subtracted from it. R = 1.0, r = 0.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Sandwich” Finished CSG composite shape. Result of “Bit Doughnut” intersected with “Levitator.” R = 1.0, r = 0.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Sandwich” Finished CSG composite shape. Result of “Bit Doughnut” intersected with “Levitator.” R = 1.0, r = 0.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Sandwich” Finished CSG composite shape. Result of “Bit Doughnut” intersected with “Levitator.” R = 0.8, r = 0.7. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Sandwich” Finished CSG composite shape. Result of “Bit Doughnut” intersected with “Levitator.” R = 0.8, r = 0.7. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Pokey.” Finished CSG composite shape. Result of “Levitator” subtracted from “Bit Doughnut.” R = 1.0, r = 0.5. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Pokey.” Finished CSG composite shape. Result of “Levitator” subtracted from “Bit Doughnut.” R = 1.0, r = 0.5. Surface with specular reflection.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Pokey.” Finished CSG composite shape. Result of “Levitator” subtracted from “Bit Doughnut.” R = 0.8, r = 0.7. Red diffuse surface.
Brillan Preston Morgan Highslide JS
Brillan Preston Morgan: “Pokey.” Finished CSG composite shape. Result of “Levitator” subtracted from “Bit Doughnut.” R = 0.8, r = 0.7. Surface with specular reflection.
David Wong Cascante Highslide JS
David Wong Cascante:
David Wong Cascante Highslide JS
David Wong Cascante:
Hyosang Jung Highslide JS
Hyosang Jung:
Jae Choi Highslide JS
Jae Choi:
Jinhyun Choi Highslide JS
Jinhyun Choi:
Jinwoo Choi Highslide JS
Jinwoo Choi:
Jinwoo Choi Highslide JS
Jinwoo Choi:
Lance Alexander Dobransky Highslide JS
Lance Alexander Dobransky:
Madeline Avis Highslide JS
Madeline Avis: Chainbow
Madeline Avis Highslide JS
Madeline Avis: oh my god twists take so long to render don’t do it save yourself while you still can
Madeline Avis Highslide JS
Madeline Avis: A happy family of distance functions <3 Inigo Quilez <3
Srey Raychaudhuri Highslide JS
Srey Raychaudhuri:
Srey Raychaudhuri Highslide JS
Srey Raychaudhuri:
Sunwoo Lee Highslide JS
Sunwoo Lee:
Sunwoo Lee Highslide JS
Sunwoo Lee:
Zhiyi Zhan Highslide JS
Zhiyi Zhan:

RayTracing/2022 Spring

Adam Rhoades Highslide JS
Adam Rhoades:
Adam Rhoades Highslide JS
Adam Rhoades:
Brady Menendez Highslide JS
Brady Menendez:
Brady Menendez Highslide JS
Brady Menendez:
Brian Chen Highslide JS
Brian Chen:
Btayan Lopez Highslide JS
Btayan Lopez:
Christan Licona Highslide JS
Christan Licona:
Christan Licona Highslide JS
Christan Licona:
Christan Licona Highslide JS
Christan Licona:
Mook Kim Highslide JS
Mook Kim:
Sandy Jamieson Highslide JS
Sandy Jamieson: Friends sitting on a table with out of focus sphere lights in the background. Implemented a custom bokeh (heart), the middle large light is from the environment map. 8192 samples per pixel.
Sandy Jamieson Highslide JS
Sandy Jamieson: A glass bunny sitting on a table with friends on a sunny day. Image based lighting and depth of field. 4096 samples per pixel.
Seva Netrebchenko Highslide JS
Seva Netrebchenko:
Sinit Kang Highslide JS
Sinit Kang:
Sinit Kang Highslide JS
Sinit Kang:
Stone Kim Highslide JS
Stone Kim:
Stone Kim Highslide JS
Stone Kim:

RayTracing/2021 Spring

Arthur Chang Highslide JS
Arthur Chang:
Arthur Chang Highslide JS
Arthur Chang:
Arthur Estudillo Highslide JS
Arthur Estudillo:
Arthur Estudillo Highslide JS
Arthur Estudillo:
Arthur Estudillo Highslide JS
Arthur Estudillo:
Chau Nguyen Highslide JS
Chau Nguyen: This image is 400x300 resolution with 4096 passes. We can see there is no actual light source. The scene is lit entirely using the HDR environment image. By looking at the reflective sphere, we can see the sun cast light rays from the left side onto the scene and we can see the shadow as well. There are 2 CSG shapes in the picture, the one on the left if created by taking the intersection between a sphere and a box. The other CSG shape is created by taking the subtraction between a sphere and a box.
Chau Nguyen Highslide JS
Chau Nguyen: This image is 400x300 resolution with 4096 passes. We can see there is no actual light source. The scene is lit entirely using the HDR environment image. There are 2 CSG shapes in the picture, the one on the left side is created by taking the intersection between a sphere and a box but now the box is smaller than the sphere. Also, the other CSG shapes on the right side is now reflective.
Chau Nguyen Highslide JS
Chau Nguyen: This image is 1080x720 resolution at 4096 passes. We can see this image is not fully converged yet with some fireflies on the table surface. This image takes the longest time to produce but I am very satisfied with the result. We can see the 2D texture sampling on the table surface and a sphere on the right side. One CSG shape on the left side is created by taking the intersection between a larger sphere and a smaller box and then taking another subtraction of the current shape with another sphere. Also, the table frame is reflective.
Chris Newman Highslide JS
Chris Newman:
Chris Newman Highslide JS
Chris Newman:
Cody Morgan Highslide JS
Cody Morgan:
Guy Sirithong Highslide JS
Guy Sirithong:
Guy Sirithong Highslide JS
Guy Sirithong:
Guy Sirithong Highslide JS
Guy Sirithong:
Hun Yang Highslide JS
Hun Yang:
Jake Ryan Highslide JS
Jake Ryan:
Jake Ryan Highslide JS
Jake Ryan:
Jake Ryan Highslide JS
Jake Ryan:
Joe Jeong Highslide JS
Joe Jeong:
Joe Jeong Highslide JS
Joe Jeong:
Joe Jeong Highslide JS
Joe Jeong:
Leon Chen Highslide JS
Leon Chen:
Max Plum Highslide JS
Max Plum:
Max Plum Highslide JS
Max Plum:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Nick Miller Highslide JS
Nick Miller:
Rahil Momin Highslide JS
Rahil Momin:
Rahil Momin Highslide JS
Rahil Momin:
Richard Shen Highslide JS
Richard Shen:
Richard Shen Highslide JS
Richard Shen:
Richard Shen Highslide JS
Richard Shen:
Roman Timurson Highslide JS
Roman Timurson:
Roman Timurson Highslide JS
Roman Timurson:
Roman Timurson Highslide JS
Roman Timurson:
Russell Johnson Highslide JS
Russell Johnson:
Russell Johnson Highslide JS
Russell Johnson:
Russell Johnson Highslide JS
Russell Johnson:
Russell Johnson Highslide JS
Russell Johnson:
Russell Johnson Highslide JS
Russell Johnson:
Russell Johnson Highslide JS
Russell Johnson:
Xingyu Wang Highslide JS
Xingyu Wang:
Xingyu Wang Highslide JS
Xingyu Wang:
Xingyu Wang Highslide JS
Xingyu Wang:
Yi Qian Highslide JS
Yi Qian:
Yi Qian Highslide JS
Yi Qian:
Zach Rammell Highslide JS
Zach Rammell:

RayTracing/2020 Spring

Alex Daniel Harte Highslide JS
Alex Daniel Harte:
Charlie Jung Highslide JS
Charlie Jung:
Charlie Jung Highslide JS
Charlie Jung:
Coleman Paul Jonas Highslide JS
Coleman Paul Jonas:
Coleman Paul Jonas Highslide JS
Coleman Paul Jonas:
Coleman Paul Jonas Highslide JS
Coleman Paul Jonas:
Dushyant Shukla Highslide JS
Dushyant Shukla:
Edward Zerbe Highslide JS
Edward Zerbe:
Edward Zerbe Highslide JS
Edward Zerbe:
Hang Yu Highslide JS
Hang Yu:
Hang Yu Highslide JS
Hang Yu:
Herron Highslide JS
Herron:
Kyle Wang Highslide JS
Kyle Wang:
Kyle Wang Highslide JS
Kyle Wang:
Kyle Wang Highslide JS
Kyle Wang:
Kyle Wang Highslide JS
Kyle Wang:
Nicolas Akoni San Jose Highslide JS
Nicolas Akoni San Jose:
Nicolas Akoni San Jose Highslide JS
Nicolas Akoni San Jose:
Romil Tendulkar Highslide JS
Romil Tendulkar:
Romil Tendulkar Highslide JS
Romil Tendulkar:
Romil Tendulkar Highslide JS
Romil Tendulkar:
Ryan Adam Lewis Dugie Highslide JS
Ryan Adam Lewis Dugie:
Ryan Adam Lewis Dugie Highslide JS
Ryan Adam Lewis Dugie:
Sacchin Goban Highslide JS
Sacchin Goban:
Sacchin Goban Highslide JS
Sacchin Goban:
Sairaj Pradeep Padghe Highslide JS
Sairaj Pradeep Padghe:
Sairaj Pradeep Padghe Highslide JS
Sairaj Pradeep Padghe:
Sairaj Pradeep Padghe Highslide JS
Sairaj Pradeep Padghe:
Saveliy Baranov Highslide JS
Saveliy Baranov:
Saveliy Baranov Highslide JS
Saveliy Baranov:
Saveliy Baranov Highslide JS
Saveliy Baranov:
Seth Andrew Kohler Highslide JS
Seth Andrew Kohler:
Seth Andrew Kohler Highslide JS
Seth Andrew Kohler:
Seth Andrew Kohler Highslide JS
Seth Andrew Kohler:
Shantanu Chauhan Highslide JS
Shantanu Chauhan:
Shantanu Chauhan Highslide JS
Shantanu Chauhan:
Shantanu Chauhan Highslide JS
Shantanu Chauhan:
Shao Yang Huang Highslide JS
Shao Yang Huang:
Shao Yang Huang Highslide JS
Shao Yang Huang:
Shao Yang Huang Highslide JS
Shao Yang Huang:
Sidhant Shrihari Tumma Highslide JS
Sidhant Shrihari Tumma:
Supreeth Rao Pejawar Highslide JS
Supreeth Rao Pejawar:
Supreeth Rao Pejawar Highslide JS
Supreeth Rao Pejawar:
Supreeth Rao Pejawar Highslide JS
Supreeth Rao Pejawar:
Vishwas Sinh Solanki Highslide JS
Vishwas Sinh Solanki:
Vishwas Sinh Solanki Highslide JS
Vishwas Sinh Solanki:
Vishwas Sinh Solanki Highslide JS
Vishwas Sinh Solanki:
Vishwas Sinh Solanki Highslide JS
Vishwas Sinh Solanki:

RayTracing/2019 Summer

Herron Highslide JS
Herron:
Herron Highslide JS
Herron:
Herron Highslide JS
Herron:
Herron Highslide JS
Herron:

RayTracing/2019 Spring

Albert Hady Highslide JS
Albert Hady:
Albert Hady Highslide JS
Albert Hady:
Arnold George Highslide JS
Arnold George:
Brandon Haze Highslide JS
Brandon Haze:
Chase Rayment Highslide JS
Chase Rayment:
Chase Rayment Highslide JS
Chase Rayment:
Chase Rayment Highslide JS
Chase Rayment:
Chase Rayment Highslide JS
Chase Rayment:
Ching Yen Lin Highslide JS
Ching Yen Lin:
Ching Yen Lin Highslide JS
Ching Yen Lin:
Daxiao Ge Highslide JS
Daxiao Ge:
Devansh Maheshwari Highslide JS
Devansh Maheshwari:
Devansh Maheshwari Highslide JS
Devansh Maheshwari:
Dustin Conley Highslide JS
Dustin Conley:
Dustin Conley Highslide JS
Dustin Conley:
Dustin Conley Highslide JS
Dustin Conley:
Dustin Conley Highslide JS
Dustin Conley:
Evan Kau Highslide JS
Evan Kau:
Fan Jin Highslide JS
Fan Jin:
Fan Jin Highslide JS
Fan Jin:
Fei Ya Chiu Highslide JS
Fei Ya Chiu:
Fei Ya Chiu Highslide JS
Fei Ya Chiu:
Herron Highslide JS
Herron:
Herron Highslide JS
Herron:
Holden Profit Highslide JS
Holden Profit:
Ivan Lopez Highslide JS
Ivan Lopez:
Ivan Lopez Highslide JS
Ivan Lopez:
Ivan Lopez Highslide JS
Ivan Lopez:
Ivan Lopez Highslide JS
Ivan Lopez:
Ivan Lopez Highslide JS
Ivan Lopez:
Jay Coleman Highslide JS
Jay Coleman:
Jay Coleman Highslide JS
Jay Coleman:
Ka Cheong Li Highslide JS
Ka Cheong Li:
Ka Cheong Li Highslide JS
Ka Cheong Li:
Ka Cheong Li Highslide JS
Ka Cheong Li:
Konstantin Udovickij Highslide JS
Konstantin Udovickij:
Konstantin Udovickij Highslide JS
Konstantin Udovickij:
Konstantin Udovickij Highslide JS
Konstantin Udovickij:
Konstantin Udovickij Highslide JS
Konstantin Udovickij:
Konstantin Udovickij Highslide JS
Konstantin Udovickij:
Mark Smith Highslide JS
Mark Smith:
Mark Smith Highslide JS
Mark Smith:
Mark Smith Highslide JS
Mark Smith:
Shifeng Liang Highslide JS
Shifeng Liang:
Shifeng Liang Highslide JS
Shifeng Liang:
Zhongqiu Wang Highslide JS
Zhongqiu Wang:
Zhongqiu Wang Highslide JS
Zhongqiu Wang:
Zhongqiu Wang Highslide JS
Zhongqiu Wang:
Zhongqiu Wang Highslide JS
Zhongqiu Wang:
Zoheb Hynus Highslide JS
Zoheb Hynus:
Zoheb Hynus Highslide JS
Zoheb Hynus:

RayTracing/2018 Spring

Aaron Kitchen Highslide JS
Aaron Kitchen:
Aaron Kitchen Highslide JS
Aaron Kitchen:
Aaron Kitchen Highslide JS
Aaron Kitchen:
Aaron Kitchen Highslide JS
Aaron Kitchen:
Bailiang Gong Highslide JS
Bailiang Gong:
Chen Lu Highslide JS
Chen Lu:
Chen Lu Highslide JS
Chen Lu:
Chen Lu Highslide JS
Chen Lu:
Christopher Ben Hudson Highslide JS
Christopher Ben Hudson:
David Luca Westen Highslide JS
David Luca Westen:
David Luca Westen Highslide JS
David Luca Westen:
Esteban E Maldonado Highslide JS
Esteban E Maldonado:
Esteban E Maldonado Highslide JS
Esteban E Maldonado:
Esteban E Maldonado Highslide JS
Esteban E Maldonado:
Esteban E Maldonado Highslide JS
Esteban E Maldonado:
Ethan Edward Mori Highslide JS
Ethan Edward Mori:
Ethan Edward Mori Highslide JS
Ethan Edward Mori:
Gabriel Reece Chenier Highslide JS
Gabriel Reece Chenier:
Hyoyup Chung Highslide JS
Hyoyup Chung:
Jake Timothy Mathern Highslide JS
Jake Timothy Mathern:
Juan Pablo Ramos Highslide JS
Juan Pablo Ramos:
Juan Pablo Ramos Highslide JS
Juan Pablo Ramos:
Juan Pablo Ramos Highslide JS
Juan Pablo Ramos:
Matthew Oakes Highslide JS
Matthew Oakes:
Matthew Oakes Highslide JS
Matthew Oakes:
Matthew Oakes Highslide JS
Matthew Oakes:
Matthew Oakes Highslide JS
Matthew Oakes:
Oleg Konoplia Highslide JS
Oleg Konoplia:
Prof Herron Highslide JS
Prof Herron:
Riley Scott Alston Highslide JS
Riley Scott Alston:
Riley Scott Alston Highslide JS
Riley Scott Alston:
Robin Diaz Barranda Highslide JS
Robin Diaz Barranda:
Robin Diaz Barranda Highslide JS
Robin Diaz Barranda:
Robin Diaz Barranda Highslide JS
Robin Diaz Barranda:
Rohit Tolety Highslide JS
Rohit Tolety:
Rohit Tolety Highslide JS
Rohit Tolety:
Sujay Naresh Shah Highslide JS
Sujay Naresh Shah:
Sujay Naresh Shah Highslide JS
Sujay Naresh Shah:
Uddipon Das Highslide JS
Uddipon Das:
Uddipon Das Highslide JS
Uddipon Das:
Varun Premchandran Highslide JS
Varun Premchandran:
Varun Premchandran Highslide JS
Varun Premchandran:
Varun Premchandran Highslide JS
Varun Premchandran:
Vidhi Prakash Soni Highslide JS
Vidhi Prakash Soni:
Vidhi Prakash Soni Highslide JS
Vidhi Prakash Soni:
Vidhi Prakash Soni Highslide JS
Vidhi Prakash Soni:

RayTracing/2017 Spring

Andrew Aldwell Highslide JS
Andrew Aldwell:
Austin Brunkhorst Highslide JS
Austin Brunkhorst:
Chris Hoskins Highslide JS
Chris Hoskins:
Cole Ingram Highslide JS
Cole Ingram:
Cole Ingram Highslide JS
Cole Ingram:
Cole Ingram Highslide JS
Cole Ingram:
Cole Ingram Highslide JS
Cole Ingram:
Cole Ingram Highslide JS
Cole Ingram:
Matthew Yan Highslide JS
Matthew Yan: 1920x1080, 8192 passes. 40 Intel i7-7700 processors, 320 logical cores. Render time: 25 minutes. An approximation of the familiar Cornell box. Even after all these passes, some static noise remains. This is probably due to the the setup of the scene.
Matthew Yan Highslide JS
Matthew Yan: 1920x1080, 8192 passes. 40 Intel i7-7700 processors, 320 logical cores. Render time: 32 minutes. An array of spheres, each with slightly increased alpha-parameter. This scene converged very nicely, due to the lack of complex objects.
Sean Higgins Highslide JS
Sean Higgins:
Sean Higgins Highslide JS
Sean Higgins:
Tuoming Li Highslide JS
Tuoming Li:
Tuoming Li Highslide JS
Tuoming Li:
Tuoming Li Highslide JS
Tuoming Li:
Volkan İlbeyli (Case Conflict) Highslide JS
Volkan İlbeyli (Case Conflict): The sphere behind and the X on the table is blurrred due to Depth of Field focus plane being at the red sphere.
Volkan İlbeyli (Case Conflict) Highslide JS
Volkan İlbeyli (Case Conflict): Finall Image: 1440x720 pixels, metallic Torus rendering. Although, the reflection of the torus on the sphere is correct, the lighting calculation on the torus itself isn’t correct.
volkan ilbeyli Highslide JS
volkan ilbeyli: The sphere behind and the X on the table is blurrred due to Depth of Field focus plane being at the red sphere.
volkan ilbeyli Highslide JS
volkan ilbeyli: Finall Image: 1440x720 pixels, metallic Torus rendering. Although, the reflection of the torus on the sphere is correct, the lighting calculation on the torus itself isn’t correct.

RayTracing/2016 Spring

Akshay Dhok Highslide JS
Akshay Dhok: To give proper effect of DOF (Depth Of Field) I have added some more spheres in the scene in the corner of table. I have to adjust the depth and circle of confusion value to properly set the centre sphere in focus and provide enough radius value for circle of confusion.
Antoine Michaelian Highslide JS
Antoine Michaelian: The same Reventon as above but this one has an orange light inside the cockpit as well as the image based lighting.
Antoine Michaelian Highslide JS
Antoine Michaelian: A CSG sphere with displacement and a half translucent material inside a Gold CSG Cube minus 2 cylinders.
Antoine Michaelian Highslide JS
Antoine Michaelian:
Antoine Michaelian Highslide JS
Antoine Michaelian: Reference scene
Antoine Michaelian Highslide JS
Antoine Michaelian:
Antoine Michaelian Highslide JS
Antoine Michaelian: The Suzanne mesh from blender with a high number of vertices compared to the original one and green translucent material.
Antoine Michaelian Highslide JS
Antoine Michaelian: Centered CSG sphere using Displacement (sin waves added to the sphere) + nice lighting from the image.
Antoine Michaelian Highslide JS
Antoine Michaelian: Centered CSG sphere using Displacement (sin waves added to the sphere) + nice lighting from the image.
Antoine Michaelian Highslide JS
Antoine Michaelian: Two translated CSG sphere using Displacement (sin waves added to the sphere), the translation affects the sin waves as well.
Antoine Michaelian Highslide JS
Antoine Michaelian: A bunch of Images showing the Lamborghini Reventon car under different materials and different IBL’s. I want to say that those look the nicest as the model is pretty well done and the IBL has a very nice effect with reflective materials. My favorite Reventon renders are the space and snow_copper.
Antoine Michaelian Highslide JS
Antoine Michaelian: A bunch of Images showing the Lamborghini Reventon car under different materials and different IBL’s. I want to say that those look the nicest as the model is pretty well done and the IBL has a very nice effect with reflective materials. My favorite Reventon renders are the space and snow_copper.
Antoine Michaelian Highslide JS
Antoine Michaelian: A bunch of Images showing the Lamborghini Reventon car under different materials and different IBL’s. I want to say that those look the nicest as the model is pretty well done and the IBL has a very nice effect with reflective materials. My favorite Reventon renders are the space and snow_copper.
Antoine Michaelian Highslide JS
Antoine Michaelian: A bunch of Images showing the Lamborghini Reventon car under different materials and different IBL’s. I want to say that those look the nicest as the model is pretty well done and the IBL has a very nice effect with reflective materials. My favorite Reventon renders are the space and snow_copper.
Antoine Michaelian Highslide JS
Antoine Michaelian: A bunch of Images showing the Lamborghini Reventon car under different materials and different IBL’s. I want to say that those look the nicest as the model is pretty well done and the IBL has a very nice effect with reflective materials. My favorite Reventon renders are the space and snow_copper.
Antoine Michaelian Highslide JS
Antoine Michaelian:
Antoine Michaelian Highslide JS
Antoine Michaelian: CSG sphere with half translucent material and displacement.
Antoine Michaelian Highslide JS
Antoine Michaelian: The best render I have. A CSG cylinder using Displacement + a green translucent material. I placed 2 blurry mirrors below and behind the shape.
Hiago DeSena Highslide JS
Hiago DeSena:
Hiago DeSena Highslide JS
Hiago DeSena:
Kurihi Chargualaf Highslide JS
Kurihi Chargualaf: The scene consist of a translucent bunny and sphere in the pine desert environment map.
Niklas Bieck Highslide JS
Niklas Bieck: Two shiny metal bunnies on a shiny table.
Niklas Bieck Highslide JS
Niklas Bieck: Cube - Cone
Niklas Bieck Highslide JS
Niklas Bieck: Cone - Cube
Niklas Bieck Highslide JS
Niklas Bieck: Cone ∩ Cube
Niklas Bieck Highslide JS
Niklas Bieck: Cone ∪ Cube
Niklas Bieck Highslide JS
Niklas Bieck: A red glass bunny next to a reflective sphere. Caustics are already visible, but not particularly well converged.
Niklas Bieck Highslide JS
Niklas Bieck: The Object in this picture was created by taking a cylinder centered around the origin, rotating it slightly to be out of alignment with the z-axis, and then twisting. I then rotated it to be horizontal and translated it into the right location in the scene. The object is using a nice matte gold material. At 800x600 running overnight got me 1691 iterations.
Niklas Bieck Highslide JS
Niklas Bieck: This is the typical CSG object, created by intersecting a cube and a sphere and subtracting three cylinders. It is using a simple shiny metallic material. 11146 iterations.
Prof Herron Highslide JS
Prof Herron: A test scene containing most of the features of a first semester path tracer. Includes reflection and transmission (with caustics), BRDFs (both metallic and non-metallic), soft shadows, indirect lighting (for instance, on the floor under the table), basic primitive objects (table body and legs), mesh object (70,000 triangle bunny), CSG (constructive solid object), and IBL (image based lighting). Most of the picture converged within minutes, but the caustics took about 7 days of computation to converge.
Sagnik Chowdhury Highslide JS
Sagnik Chowdhury: A bunny shaped light. This image uses the pinhole ‘lens’.
Sagnik Chowdhury Highslide JS
Sagnik Chowdhury: The two back surfaces are actually reflective, not transmissive; I thought that'd make for a nicer image. This pic has 23,986 rays per pixel and has been rendering for about a week.
Siyu Chen Highslide JS
Siyu Chen: 1 is texture mapping, 1 is BRDF and another BTDF

RayTracing/2015 Spring

Austin Scholze Highslide JS
Austin Scholze:
Cody Duncan Highslide JS
Cody Duncan:
Cody Duncan Highslide JS
Cody Duncan:
Cody Duncan Highslide JS
Cody Duncan:
Cody Duncan Highslide JS
Cody Duncan:
Cody Duncan Highslide JS
Cody Duncan:
Gieta Nadhil Laksmana Highslide JS
Gieta Nadhil Laksmana:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Julian Wong Highslide JS
Julian Wong:
Kenneth Chun Hui Tan Highslide JS
Kenneth Chun Hui Tan:
Kenneth Chun Hui Tan Highslide JS
Kenneth Chun Hui Tan:
Kenneth Chun Hui Tan Highslide JS
Kenneth Chun Hui Tan:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Kevin Verholtz Highslide JS
Kevin Verholtz:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Matt Hurliman Highslide JS
Matt Hurliman:
Sandra Jhee Highslide JS
Sandra Jhee:
Sandra Jhee Highslide JS
Sandra Jhee:
Sandra Jhee Highslide JS
Sandra Jhee:

RayTracing/2014 Spring

Abhijeet Yerram Reddy Highslide JS
Abhijeet Yerram Reddy: I implemented CSG using Ray Marching. The object is created by doing a intersection between a cube and a sphere and then subtracting three cylinders from it. The image resolution is 960x722 and was rendered in 1000 Passes
Abhijeet Yerram Reddy Highslide JS
Abhijeet Yerram Reddy: I implemented CSG using Ray Marching. The object is created by doing a intersection between a cube and a sphere and then subtracting three cylinders from it. I also placed the light source at the centre of the object to generate a nice image. The image resolution is 960x722 and was rendered in 1000 Passes
Abhijeet Yerram Reddy Highslide JS
Abhijeet Yerram Reddy: I implemented Depth of Field. The image is focused on the sphere in front by taking the distance between this sphere and the camera. This shows off the nice blurring(out of focus) effect on the objects that are further away from the sphere. The image resolution is 960x722 and was rendered in 1000 Passes
Axel Komair Highslide JS
Axel Komair: In RED, Torus created using distance estimate, scale on one axis using distance estimate aswell to bring out its shape into more of a tube. Sphere created using distance estimate united using the distance estimate formula with the resultant torus. Purpose was to create a cave like shape In BLUE, Sphere twisted by a broken twist, ended up looking like a tornado. See shadows for better reference. In GRAY, Ground plane. 1 Light above the RED cave. 1 Light in the RED cave.
Axel Komair Highslide JS
Axel Komair: Two spheres in a standard red green blue box. Sphere 1: Diffuse Sphere 2: Reflective. 1 Light above both spheres.
Axel Komair Highslide JS
Axel Komair: On the left: Reflective sphere rendered on a path. Shows the motion blur algorithm in play. On the right: Blobed sphere in front of the light. Shows good perspective and self shadowing. 1 Light behind the blob, and above the reflective sphere.
Bhanu Prakash Birur Jagannath Highslide JS
Bhanu Prakash Birur Jagannath:
Bhanu Prakash Birur Jagannath Highslide JS
Bhanu Prakash Birur Jagannath:
Douglas Schilling Highslide JS
Douglas Schilling: Doug Schilling: A test of Beer's Law on a surface with a simple (sine wave-based) procedurally-generated texture.
Douglas Schilling Highslide JS
Douglas Schilling: Doug Schilling: A test of Image-Based Lighting (IBL) with a sampling of diffuse, reflective and transmissive objects. While the "tabletop" object in the scene appears to have a nice, procedurally-generated texture, a possible error in the implementation of the Cumulative Distribution Function (CDF) is actually causing the lighting on the simple, green-tinted surface to converge very slowly (this image was rendering in 10000 passes).
Michael May Highslide JS
Michael May: This sequence of images, converging to a final image, demonstrates two things:

1. The predictive power of a variance calculation in calculating the number of passes needed to reduce the pixel variance down to a preset value. That is, at each pass, the predicted number of passes to reach a variance of .0001 stays remarkably constant.

0011 passes 1375 remaining.

0311 passes 1049 remaining.

1011 passes 0349 remaining.

1350 passes 0010 remaining.

1359 passes 0001 remaining.

2. The *unbiased* nature of Monte Carlo integration's approximation of the final image. Rather than each pass summing light into pixels (which would be a *biased* algorithm), each pass, right from the first, approximates the final image.

Michael May Highslide JS
Michael May: This sequence of images, converging to a final image, demonstrates two things:

1. The predictive power of a variance calculation in calculating the number of passes needed to reduce the pixel variance down to a preset value. That is, at each pass, the predicted number of passes to reach a variance of .0001 stays remarkably constant.

0011 passes 1375 remaining.

0311 passes 1049 remaining.

1011 passes 0349 remaining.

1350 passes 0010 remaining.

1359 passes 0001 remaining.

2. The *unbiased* nature of Monte Carlo integration's approximation of the final image. Rather than each pass summing light into pixels (which would be a *biased* algorithm), each pass, right from the first, approximates the final image.

Michael May Highslide JS
Michael May: This sequence of images, converging to a final image, demonstrates two things:

1. The predictive power of a variance calculation in calculating the number of passes needed to reduce the pixel variance down to a preset value. That is, at each pass, the predicted number of passes to reach a variance of .0001 stays remarkably constant.

0011 passes 1375 remaining.

0311 passes 1049 remaining.

1011 passes 0349 remaining.

1350 passes 0010 remaining.

1359 passes 0001 remaining.

2. The *unbiased* nature of Monte Carlo integration's approximation of the final image. Rather than each pass summing light into pixels (which would be a *biased* algorithm), each pass, right from the first, approximates the final image.

Michael May Highslide JS
Michael May: This sequence of images, converging to a final image, demonstrates two things:

1. The predictive power of a variance calculation in calculating the number of passes needed to reduce the pixel variance down to a preset value. That is, at each pass, the predicted number of passes to reach a variance of .0001 stays remarkably constant.

0011 passes 1375 remaining.

0311 passes 1049 remaining.

1011 passes 0349 remaining.

1350 passes 0010 remaining.

1359 passes 0001 remaining.

2. The *unbiased* nature of Monte Carlo integration's approximation of the final image. Rather than each pass summing light into pixels (which would be a *biased* algorithm), each pass, right from the first, approximates the final image.

Michael May Highslide JS
Michael May: This sequence of images, converging to a final image, demonstrates two things:

1. The predictive power of a variance calculation in calculating the number of passes needed to reduce the pixel variance down to a preset value. That is, at each pass, the predicted number of passes to reach a variance of .0001 stays remarkably constant.

0011 passes 1375 remaining.

0311 passes 1049 remaining.

1011 passes 0349 remaining.

1350 passes 0010 remaining.

1359 passes 0001 remaining.

2. The *unbiased* nature of Monte Carlo integration's approximation of the final image. Rather than each pass summing light into pixels (which would be a *biased* algorithm), each pass, right from the first, approximates the final image.

Michael May Highslide JS
Michael May: For project 5 I implemented Depth of Field (scene included with 4 reflective spheres of varying roughness, with only one in focus).
Michael May Highslide JS
Michael May: Same scene as depthoffield, but without the depth of field.
Nathaniel Cox Highslide JS
Nathaniel Cox: This scene was made using Image Base Lighting techniques, specifically using cumulative density function and binary searches. This scene is using a MilkyWay hdr picture with the gamma set to 2.2 and went through 30,000 passes. The image itself probably would be better if the background was set further away, and the gamma set lower.
Nathaniel Cox Highslide JS
Nathaniel Cox: This scene was made using Image Base Lighting techniques, specifically using cumulative density function and binary searches. This scene is using a Subway hdr image with the gamma set to 2.2 and gone over 30,000 passes.
Nathaniel Cox Highslide JS
Nathaniel Cox: This scene was made using Image Base Lighting techniques, specifically using cumulative density function and binary searches. This scene is using a Tropical hdr picture with the gamma set to 2.2 and gone over 30,000 passes.
Oscar Monge Highslide JS
Oscar Monge: File CornellRoom_Suzane_R_10510p_x2.hdr is the same scene with Suzanne, but this one shows reflections only, it was rendered after 10,510 passes with 4 rays per pixel.
Oscar Monge Highslide JS
Oscar Monge: File CornellRoom_Suzabe_T_6520p_x3.hdr is a scene with Suzanne's model from Blender in a closed room, it was rendered after 6520 passes with 9 rays per pixel, a perfect example of transmissions.
Oscar Monge Highslide JS
Oscar Monge: File test_2200p_x3.png is just the usual test scene with DoF, it was rendered after 2200 passes with 9 rays per pixel.
Prof Herron Highslide JS
Prof Herron: A model from the previous year, but this time with very will converged caustics -- no visible noise. This was helped by implementing Multiple Importance Sampling.
Prof Herron Highslide JS
Prof Herron: Clear-glass and frosted-glass bunnies (exponents 20000 and 40 respectively) at Burning Man festival.
Prof Herron Highslide JS
Prof Herron: A nice test case for depth-of-field (and image based lighting). Focal plane is at the depth of the spherical hub.
Prof Herron Highslide JS
Prof Herron: The Stanford dragon model (800,000+ triangles), depth-of-field, and a nice tropical beach scene for image based lighting. Even after 150000 passes, there is still some graininess in the shadow.
Prof Herron Highslide JS
Prof Herron: The canonical CSG object with a nice brass-like BRDF and image based lighting. The sun, which is just off the left side can be seen to reflect off the metallic surface onto the table.
Prof Herron Highslide JS
Prof Herron: First rendering of motion-blur. For a frame in a film, the motion blur should be evenly distributed across its full path of travel. However, that makes for boring smeared-out still images, so here the spheres spend most of their time at the endpoint of their travel, with just a small amount of time distributed along their path.
Prof Herron Highslide JS
Prof Herron: An early test of image-based-lighting. The sun is to the right (over) lighting the sphere. The warm lighting on the lower left of the sphere is supplied by a mountainside of rocks brightly lit by the sun. Some of the blue sky above the sphere and behind the viewpoint can be seen reflecting in the sphere. Several wood-colored bright spots on the right can be seen to be lit by indirect illumination reflecting off sun-facing surfaces.
Timothy Crossley Highslide JS
Timothy Crossley: These images demonstrate the depth of field effect with two different focal planes: one in front focused on the blue box, and one behind focused on the pink box. In both cases, the initial rays are perturbed by a random distance up to 0.04 world units away in the camera's XY plane. I believe these were around 500-600 passes
Timothy Crossley Highslide JS
Timothy Crossley: These images demonstrate the depth of field effect with two different focal planes: one in front focused on the blue box, and one behind focused on the pink box. In both cases, the initial rays are perturbed by a random distance up to 0.04 world units away in the camera's XY plane. I believe these were around 500-600 passes
Timothy Crossley Highslide JS
Timothy Crossley: Playing around with CSG shapes. The cones on the side are much more complex than they look: each one is made up of a cone, 2 planes, and 2 spheres. This scene took a long time to render because of the complexity of all the CSG objects.
Timothy Crossley Highslide JS
Timothy Crossley: Playing around with CSG shapes. The cones on the side are much more complex than they look: each one is made up of a cone, 2 planes, and 2 spheres. This scene took a long time to render because of the complexity of all the CSG objects.
Timothy Crossley Highslide JS
Timothy Crossley: Playing around with CSG shapes. The cones on the side are much more complex than they look: each one is made up of a cone, 2 planes, and 2 spheres. This scene took a long time to render because of the complexity of all the CSG objects.
Timothy Crossley Highslide JS
Timothy Crossley: A stereoscopic 3D image: cross your eyes and overlap the images to view. 3046 passes, I let this one run for a while because I didn't want noise getting in the way of the 3D effect. The 3D effect is done by tracing out 2 images, with the camera displaced a certain distance on the camera X axis. For this scene the two eyes were 0.4 world units apart.
Timothy Crossley Highslide JS
Timothy Crossley: The indirect lighting scene, with a modified ground color to approximately match the wood texture used in the reference image. 1000 passes. Unsure where the lighter areas around the base of the walls are coming from.

RayTracing/2013 Spring

Adam Parker Highslide JS
Adam Parker: The scene hallofcsg.scn demonstrates all CSG shapes and some operations.
Adam Parker Highslide JS
Adam Parker: The scene hallofcsg.scn demonstrates all CSG shapes and some operations.
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: This image features a mesh of infinite tori intersecting a perpendicular mesh of infinite tori. You can see how the infinite plane calculation done with sphere tracing handles objects larger than the unit box it replecates here. Each mesh has a different noise texture applied; the blue ones are a really muddy looking sky, and the green ones are a marble texture scaled to the point where it should look like a structure carved from jade. Should. You can see some nice depth of field effect in this image as well.
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: This picture shows off some simple transmissive spheres with various colors; the colors are calculated using Beer's Law, although it's hard to tell that light is being absorbed in this scene. The backdrop planes are sphere-traced, but the spheres are traced using usual parametric calculations.
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: Technically, there are only two objects here: a plane and a box. The plane is easy enough to figure out, but the box has had horrible things done to it with sphere tracing calculations. It starts out as a unit cube, which I scaled down to around half that size and elongated along the z-axis. Then I gave the object a twist along the z axis, and put it in a special distance calculation which returns the distance from an infinite plane of evenly spaced objects (a unit grid). That infinite plane of green french fries was then rotated, resulting in the whatever it is we're looking at here. Mmm.
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: This scene is fully sphere-traced, save for the green glass part of the table. You can see a few very blown-up textures in this image; the marble on the backdrop planes and the poorly scaled "wood" on the table edge. It was a work in progress. The table edge and spherical sculpture are both constructive solid geometry based, albeit simple differences of objects (and some scales and translates).
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: This image displays Beer's Law fairly well. Each cube has the same material properties, the difference between colors is caused by the distance light travels through the object to get out to the other side. This scene is completely sphere traced, and each cube has different transforms applied to it (some scaling and translations), as well as a different object subtracted from the center of each cube. The astute observer might notice a bit of depth of field in this image (the focal plane is pretty much aligned with the center box with the diamond shape in it).
Alexander Ciccarelli Highslide JS
Alexander Ciccarelli: First of all, THERE... ARE... FOUR... LIGHTS!!! There really are; each of the cone-shades has a different colored light in (red on the right, green on top and blue to the left). Every shape but the sphere inside of the cage was made through various constructive solid geometry operations done through sphere tracing. The cones are obvious cones with cones cut out of them, and the central object is one of those CSG objects you see everywhere... what is it supposed to be? Who knows, it just looks cool. The central sphere has a sky texture applied to it, but it's nearly impossible to tell.
Alexander Smith Highslide JS
Alexander Smith: I took the Cornell Spheres scene and changed the reflective ball on the left to use the Ashikhmin Shirley BRDF. The sphere on the right I applied Sky colored Perlin Noise and Beer's Law to get a very murky and cloudy sphere.
Chad Zamzow Highslide JS
Chad Zamzow: backdof-5000 (5000 passes): Depth of field demon with the focus distance being at the back of the scene.
Chad Zamzow Highslide JS
Chad Zamzow: frontdof-5000 (5000 passes): Depth of field demo with the focus distance being at the front of the scene.
Chad Zamzow Highslide JS
Chad Zamzow: perlinblur-30000 (30000 passes): Plerin noise and motion blur demo with a sky box, a wood box, and a blur sphere.
Chia Wei Wu Highslide JS
Chia Wei Wu: CSG object using Ray Marching
Chia Wei Wu Highslide JS
Chia Wei Wu: CSG object using Ray Marching
Chia Wei Wu Highslide JS
Chia Wei Wu: An infinite plane of spheres using Ray Marching
Chia Wei Wu Highslide JS
Chia Wei Wu: An infinite plane of spheres using Ray Marching(different camera angel)
Chia Wei Wu Highslide JS
Chia Wei Wu: Motion Blur (Motion in X axis)
Chia Wei Wu Highslide JS
Chia Wei Wu: Motion Blur (Motion in Y axis)
Chia Wei Wu Highslide JS
Chia Wei Wu: Depth of Field with camera focus on the back pillar
Chia Wei Wu Highslide JS
Chia Wei Wu: Depth of Field with camera focus on the center sphere
Chia Wei Wu Highslide JS
Chia Wei Wu: Depth of Field with camera focus on the front pillar
Colin Campbell Highslide JS
Colin Campbell: An example of CSG objects formed using ray marching distance estimates along with Union/Intersection/Difference operations.
Colin Campbell Highslide JS
Colin Campbell: This image uses ray marching distance estimates along with modulus division to replicate an object 'infinitely'.
Colin Campbell Highslide JS
Colin Campbell: A rendering of a Sierpinski tetrahedra fractal with the number of iterations set to 9. This also uses a ray marching technique with distance estimates to trace rays into the fractal.
Colin Campbell Highslide JS
Colin Campbell:
Curtis Laboiteaux Highslide JS
Curtis Laboiteaux: Depth of field can be noticed on the rim of the cylinder podium, as well as in the blurriness of the background.

Exposure control allowed me to light my entire scene comfortably with a single light source.

There are also two BRDF's in play in addition to the typical Phong. The cylinders and spheres are rendered with Ashikhmin Shirley, displaying various levels of anisotropy as they climb the podiums. The box podiums and background triangle elements are rendered with Oren Nayar, allowing for a very flat diffuse, non reflective shaded object to contrast the reflectivity of the diamonds, spheres, and cylinders.

Juan Cifuentes Highslide JS
Juan Cifuentes: For the floor and bases of the pillars a simple box was used applying to each different scale and translate values. Each pillar was created using a cylinder intersected with 2 planes, and placed with translations. Finally for the center shape, from a box we substract 3 perpendicular cylinders using rotations. The resulting shape was intersected eith a sphere. Finally it was rotated, scaled and translated to the center of the scene.
Juan Cifuentes Highslide JS
Juan Cifuentes: The general scene was created the same way as the previous scenes. For the central CSG shape a torus was created, and from it I substracted the union of 4 thinner torus: 1 colliding with the top, 1 colliding with the bottom, 1 colliding with the outer side and 1 colliding with the inner part. This caused the identations on the torus. Finally for better view of the previous part I removed a slice of the shape by substracting the intersection of 2 planes.
Juan Cifuentes Highslide JS
Juan Cifuentes: A Cornell Box was created using planes. 3 Spheres were placed at the scene at different depths to show the effect. To focus the sphere at the back, the distance from the camera to the that sphere was used as focal distance.(No_Depth_of_Field_*.ppm)
Juan Cifuentes Highslide JS
Juan Cifuentes: The general scene was created the same way as the previous scenes. At the center a sphere is placed appling the motion blur transform. There are two renders for this scene: The difference is in the distance between the start and end point of the effect. The first one has more separation causing a more foggy effect than the second one with a more constrained range of movement.
Juan Cifuentes Highslide JS
Juan Cifuentes: The general scene was created the same way as the previous scenes. At the center a sphere is placed appling the motion blur transform. There are two renders for this scene: The difference is in the distance between the start and end point of the effect. The first one has more separation causing a more foggy effect than the second one with a more constrained range of movement.
Kye Bae Highslide JS
Kye Bae: CSG the extremely easy way: four cubes resulting from application of differences against four boxes and moving it further away from the eye (ray marching).
Kye Bae Highslide JS
Kye Bae: An infinite array of spheres based on applying ray marching/distance estimate and depth-of-field.
Kye Bae Highslide JS
Kye Bae: An infinite array of spheres based on applying ray marching/distance estimate and depth-of-field.
Kye Bae Highslide JS
Kye Bae: Mandlebulb implementation based on ray marching/distance estimate found here.
Myles Beaudoin Highslide JS
Myles Beaudoin: For this scene I used depth of field, motion blur, and Perlin noise texturing. For the depth of field, I used a medium sized square aperture to give some depth around the focal plane, which is located about through the center of the red/black sphere. For motion blur, I gave objects an acceleration and a velocity, picked random time values between zero and some max to render at, and averaged the results. For the Perlin noise, I implemented functions for both a wood grain pattern and a marble pattern. This scene was rendered with 6200 passes overnight.
Nima Olang Highslide JS
Nima Olang: This scene demonstrates an infinite field of objects as well as constructive solid geometry. The icosahedrons are constructed of the intersection of 20 different planes, which create an enclosed volume. For the infinite field of objects, when a point is taken to be used in ray marching, only the decimal of the x- and y-coordinates is taken, so that the object collided with is repeated at every unit on the planes specified (in this case, along the xy-plane).

This image is 400x300 pixels and was rendered in 500 passes in 1 hour.

Nima Olang Highslide JS
Nima Olang: This scene applies motion blur to an infinite field of dodecahedrons. After creating the infinite field, a random translation between 0 and 0.1, half of the inradius of the dodecahedron, was applied. Because of this, each of the shapes appears to be in motion.

This image is 400x300 pixels and was rendered in 1400 passes in 30 minutes.

Nima Olang Highslide JS
Nima Olang: A smaller reflective sphere was added at the front of the Cornell Spheres scene in order to demonstrate depth-of-field. For the implementation, I used a focal distance to focus a certain distance away from the camera's position and used an aperture radius larger than the focal distance to emphasize the focus difference between the small sphere which should be in focus and the larger spheres which should be out of focus.

This image is 400x300 pixels and was rendered in 2500 passes in 1 hour.

Prof Herron Highslide JS
Prof Herron: Cutting a torus with a plane can produce perfect circles if the plane is chosen carefully. There are four families of such circles. Planes containing the axis of the torus produce a family of paired small circles, and planes perpendicular to the axis produce another family of paired larger circles. The other two families of circles, called Villarceau circles, are produced by cutting planes at a very specific angle. Four member of one of those families are shown here as the center of the steel like bands. (The other family winds around the torus in the opposite direction.) Except for the floor, this is produced completely with CSG operations on (seven) tori.
Prof Herron Highslide JS
Prof Herron: This is an attempt to show the two Villarceau circles produced by a properly aligned cutting plane through a torus. One of the circles is outlined by a metallic looking band while the other is not.
Prof Herron Highslide JS
Prof Herron: A test of beer's law, refraction and caustics. Beer's law allows for the calculation of light that survives passage thorough an absorbing medium. It can be seen here as darker (and greener) light passing out of the thicker spheres. Caustics are the concentrations of green light shining through the spheres and focused on the floor. They are still grainy, even after more than 150,000 passes. A successor algorithm to path tracing will be needed to smooth them out.
Prof Herron Highslide JS
Prof Herron: Everyone's favorite CSG object sitting upon, reflecting in, and casting shadows onto, a slightly polished wood table that seems to have lost its legs.
Prof Herron Highslide JS
Prof Herron: Everyone's favorite CSG object, this time transparent, and casting (very grainy for now) caustics onto the floor.
Prof Herron Highslide JS
Prof Herron: Playing with indirect lighting. The scene is lit with a single (big bright) light straight above the building. The only light in the building's interior is indirect light reflecting from the ground outside the building. As expected things get darker near the center of the building, and then lighter again near the other entrance.
Prof Herron Highslide JS
Prof Herron: A infinite family of torus-knots. The fat brass-like tubes may hide the fact that the center of tubes lie on an (invisible) torus, winding around the torus both the long-way-around and the short-way-around. Each knot lies on a grid point (p,q) where p specifies the number of wraps the long way around the torus, and q specifies the number of winds the short way around the torus. If p and q are coprime (a GCD of 1) then the object is a true knot -- composed of one strand. If p and q are not coprime, then it's called a LINK and is composed of GCD(p,q) interlocked strands.

The closest knot, at the bottom center of the image, is the (2,2) knot composed of two interlocked strands. Diagonally behind it in either direction are the (2,3)-knot, and the (3,2)-knot. These are both versions of the trefoil knot -- the common overhand knot.

The distance bound function for the ray-marching algorithm works well on the denser knots, but shows some errors on the closer, less dense knots.

Prof Herron Highslide JS
Prof Herron: This was a test that the ray-marching modulus operator is as robust as one might hope. A single torus is repeated in an infinite lattice, and even though the torus flows outside its unit cell, the modulus operator works perfectly. Three such infinite lattices are interlaced without intersection.
Ralph Dsouza Highslide JS
Ralph Dsouza: The base scene used is the Cornell scene. I rendered two CSG objects in this scene using ray-marching.

The first object is a die. To produce this object, I first took an intersection between a box and a sphere. This produced the body of the die. Next, I carried out the difference operation between the body and five small spheres. This produces the pips on the surface of the die body.

The second object is a cage that I produced by creating another die body, and subtracting three cylinders from it. There is a single light source in this scene and it is positioned within the cage.

Rodrigo Duenez Hurtado Highslide JS
Rodrigo Duenez Hurtado: In this picture I wanted to show the capabilities of a BRDF other than the traditional, old fashioned Phong. Ashihkmin-Shirley's main appeal is anisotropy. Using linear tangent vectors on the objects I was able to create these effects which are specially noticeable in their specular reflections. All objects have slightly different parameters that show how the specular lobe can get stretched and how rough the material can be (The three spheres in the front, for example, go from a very rough material to a very polished one. You can also see how the middle sphere has a perfectly circular specular reflection, while the one on its right has a nice stretched reflection)

Depth of field is also present on this picture. The focus plane is located approximately at the middle cylinder.

All objects, except the two big spheres, have some kind of Perlin noise: Wood, marble and sky. I used sky for the middle cylinder trying to achieve a different kind of stone-like effect, perhaps like jade. I used the noise as a grayscale multiplier of the object's diffuse color.

Finally, exposure control. This scene has a lone -not too bright- light on top. The picture therefore turns out very dark by itself as you can see on the first picture. The second picture is the same scene, with the exact same light, just with exposure control added. The benefit of using exposure control instead of manually adjusting the light is that we don't have to render all the passes once again in order to generate a new picture since it's a post-rendering effect.

The scene took 35,000 passes.

Rodrigo Duenez Hurtado Highslide JS
Rodrigo Duenez Hurtado: In this picture I wanted to show the capabilities of a BRDF other than the traditional, old fashioned Phong. Ashihkmin-Shirley's main appeal is anisotropy. Using linear tangent vectors on the objects I was able to create these effects which are specially noticeable in their specular reflections. All objects have slightly different parameters that show how the specular lobe can get stretched and how rough the material can be (The three spheres in the front, for example, go from a very rough material to a very polished one. You can also see how the middle sphere has a perfectly circular specular reflection, while the one on its right has a nice stretched reflection)

Depth of field is also present on this picture. The focus plane is located approximately at the middle cylinder.

All objects, except the two big spheres, have some kind of Perlin noise: Wood, marble and sky. I used sky for the middle cylinder trying to achieve a different kind of stone-like effect, perhaps like jade. I used the noise as a grayscale multiplier of the object's diffuse color.

Finally, exposure control. This scene has a lone -not too bright- light on top. The picture therefore turns out very dark by itself as you can see on the first picture. The second picture is the same scene, with the exact same light, just with exposure control added. The benefit of using exposure control instead of manually adjusting the light is that we don't have to render all the passes once again in order to generate a new picture since it's a post-rendering effect.

The scene took 35,000 passes.

Sanghyeok Hong Highslide JS
Sanghyeok Hong: I implemented CSG for two model (one is for complex combination, the other is twisted column). And I implemented ambient occlusion with distance field (for here, I add additional functionality for all shapes for calculating shortest distance, that's it! All that needed to calculate AO is just shortest distance for all shape models) I made images for AO and result that not combined with AO and the other image combined with AO. I also attached final image in .png form.
Sanghyeok Hong Highslide JS
Sanghyeok Hong: I implemented CSG for two model (one is for complex combination, the other is twisted column). And I implemented ambient occlusion with distance field (for here, I add additional functionality for all shapes for calculating shortest distance, that's it! All that needed to calculate AO is just shortest distance for all shape models) I made images for AO and result that not combined with AO and the other image combined with AO. I also attached final image in .png form.
Sanghyeok Hong Highslide JS
Sanghyeok Hong: I implemented CSG for two model (one is for complex combination, the other is twisted column). And I implemented ambient occlusion with distance field (for here, I add additional functionality for all shapes for calculating shortest distance, that's it! All that needed to calculate AO is just shortest distance for all shape models) I made images for AO and result that not combined with AO and the other image combined with AO. I also attached final image in .png form.
Santosh Shedbalkar Highslide JS
Santosh Shedbalkar: I have only implemented the CSG in this project
Seon Chan Highslide JS
Seon Chan: This image demonstrates real time shadows and reflections in a scene consisting of spheres. Shadows are achieved by casting a ray from the fragment to each light source to determine occlusion. Reflection is implemented as a recursive ray cast in the reflected direction. 3 small spheres in this image have phong lighting model applied and some reflectivity.
Seon Chan Highslide JS
Seon Chan: This screenshot demonstrates rendering of a transmissive glass ball with high index of refraction. Glass ball in foreground distorts image of small red and blue ball in background, warping the image produced.
Seon Chan Highslide JS
Seon Chan: Image demonstrates reflection in large reflective ball with a mirror-like surface. Relfection of the entire scene can be seen in the large ball. Note the transmissive distortion evident in the reflection of the glass ball seen in screenshot 2.
Seon Chan Highslide JS
Seon Chan Click for video: My project implements real time recursive ray tracing in a GLSL 2.0 shader.

Features:

Scene Details:

Implementation:

Sugu Lee Highslide JS
Sugu Lee: For the object in the middle of the scene, I used a Julia Set. I ray-traced it using Sphere Tracing with Distance Estimate.

For the two spheres on the left and right side of the scene, I applied a Light Probe Texture on them.

Thomas McGrail Highslide JS
Thomas McGrail: I implemented raymarching, constructive solid geometry, depth of field, and motion blur.

This shows a shape created using constructive solid geometry and a depth of field effect.

Thomas McGrail Highslide JS
Thomas McGrail: I implemented raymarching, constructive solid geometry, depth of field, and motion blur.

This shows the same shape with motion blur applied. This image also has the depth of field, but the effect is more subtle than the other image.

Vasileios Fezoulidis Highslide JS
Vasileios Fezoulidis: I implemented Ray-Marching and CSG. Supported shapes: Boxes, spheres, cylinders

The first image contains one oriented box and a sphere subtracted from the center of it and next to it is a sphere and 2 cylinders subtracted from it.

Vasileios Fezoulidis Highslide JS
Vasileios Fezoulidis: I implemented Ray-Marching and CSG. Supported shapes: Boxes, spheres, cylinders

The second image shows the intersectionf of a box and a sphere(rounded edges) and 2 spheres subtracted from it.

Zheng Dou Highslide JS
Zheng Dou Click for video: Recorded video are scenes running on my laptops which is not very powerful. Desktops with high-end graphics card can easily run it five times faster.

Implementation

As an optimization, I first rasterize the scene and output the triangle ID to a render target, and when tracing the ray from the camera. It first test against this triangle which it has a greater chance to hit. Though this improves the speed a bit, it also causes some aliasing.

Zheng Dou Highslide JS
Zheng Dou Click for video: Recorded video are scenes running on my laptops which is not very powerful. Desktops with high-end graphics card can easily run it five times faster.

Implementation

As an optimization, I first rasterize the scene and output the triangle ID to a render target, and when tracing the ray from the camera. It first test against this triangle which it has a greater chance to hit. Though this improves the speed a bit, it also causes some aliasing.

Zheng Dou Highslide JS
Zheng Dou Click for video: Recorded video are scenes running on my laptops which is not very powerful. Desktops with high-end graphics card can easily run it five times faster.

Implementation

As an optimization, I first rasterize the scene and output the triangle ID to a render target, and when tracing the ray from the camera. It first test against this triangle which it has a greater chance to hit. Though this improves the speed a bit, it also causes some aliasing.


RayTracing/2012 Spring

Creighton Evans Highslide JS
Creighton Evans: This project implements depth of field in a raytraced scene with kdops. These scenes mimics the pt-CornellSpheres scene but instead of spheres, kdops are used. The first scene has the focal plane near the forward kdop, and the second scene has it near the further kdop
Creighton Evans Highslide JS
Creighton Evans: This project implements depth of field in a raytraced scene with kdops. These scenes mimics the pt-CornellSpheres scene but instead of spheres, kdops are used. The first scene has the focal plane near the forward kdop, and the second scene has it near the further kdop
Emory Myers Highslide JS
Emory Myers: Rendered with the realtime raymarcher at around 3 fps, diffuse color only.
Emory Myers Highslide JS
Emory Myers: Rendered with the realtime raymarcher at 60+ fps, diffuse and specular.
Emory Myers Highslide JS
Emory Myers: 60 passes on the distance-estimated mandlebulb in the path tracer. Three light sources (red, green and blue) against a white mandlebulb.
Emory Myers Highslide JS
Emory Myers: Illustrates the field of spheres primitive, with repetition of spheres on the XZ axis.
Emory Myers Highslide JS
Emory Myers: A simple fractal, another illustration of using distance estimated shapes to achieve something which traditionally would be much more expensive.
Emory Myers Highslide JS
Emory Myers: Around 100 passes on a scene containing procedural textures (marble and clouds) with a furry sphere. Everything is based on simplex noise.
Emory Myers Highslide JS
Emory Myers Click for video: Shows realtime animation of objects using distance estimated raymarching. The point to be estimated for the sphere is transformed with an inverse translation matrix. The parameters of the torus are varied.
Emory Myers Highslide JS
Emory Myers Click for video: Shows the rate at which frames are rendered (decidedly not realtime.)
Emory Myers Highslide JS
Emory Myers Click for video: Moving through the field of spheres (not sure what else to say!)
Emory Myers Highslide JS
Emory Myers Click for video: Shows realtime modification of the mandlebulb's power, hard shadows and simple AO (based on the number of steps in the distance estimator.) Employs jitter and a decreasing alpha for anti-aliasing.
Jason Nollan Highslide JS
Jason Nollan: I built this model using Blender's sculpt tool, and textured it using blenders texture paint mode. The scene has 1750714 objects (mostly triangles), which are all contained within a hierarchical bounding volume(AABB Tree). This helps speed up the rendering time significantly, with the cost of about 30 seconds of tree building time for this scene. The render time of this 2880x1800 image at 1000 passes was less than 8 hours on a 2 core x 2.53 Ghz cpu.
John Yednock Highslide JS
John Yednock: Showing both depth-of-field and k-dop techniques in one image.
John Yednock Highslide JS
John Yednock: Cornell spheres scene with two lights, a reflective octahedron, and a reflective rhombic triacontahedron (30 sided die). About the shape: The k-dop is defined by: 3 values for center location, 1 value for scale (distance of planes from center), and k * 3 values for the normals corresponding to the k slabs that make up the k-dop. The ray to k-dop intersection is the same as the ray to cube intersection except that instead of 3 slabs, one must test against k slabs. The minimum value for k is 3.
John Yednock Highslide JS
John Yednock: One hundred purple spheres in a plane with the closer spheres in focus. About the technique: There are 3 parameters for the depth of field: lens distance from camera, lens size (radius), and focal distance of the lens. A plane is created at 'lens distance' from the camera and another plane is created at 'focal distance' from the lens plane ('lens distance' + 'focal distance' from the camera). A ray is cast as usual from the camera through the focal plane. Then, a random point is chosen around the intersection of that ray with the lens plane within 'lens radius'. Now, a new ray is created originating from this random point and passing through the point of intersection with the original ray and the focal plane. This new ray is cast into the scene, and the resulting color is stored in the image. After many passes, the blur effect of depth of field will be apparent.
Jon Olson Highslide JS
Jon Olson: 3000x3000 image, 20 passes This scene shows off the wonderful power of the simplest of path tracing. It has radiance from the walls providing illumination for the sides of the boxes in the center of the room. This high resolution Stanford dragon is used to show off intricate light reflections from a myriad of angles.
Jon Olson Highslide JS
Jon Olson: 1920x1080 pixels, 2000 passes (requiring several months of rendering after the class had finished) In this scene, some slight depth of field can be seen in the background. In the foreground we can see a model of the Stanford dragon. This model weighs in at 862k triangles. The ground on which it sits is translucent with a diffuse transmission and participating media applied.
Jon Olson Highslide JS
Jon Olson: 640x480 pixels, 100 passes In this scene, depth of field was exaggerated to show proof of implementation. The model is out of focus, while the columns behind it are in focus. For this particular run, the model was switched to the lower resolution version with only 11k triangles.
Michael Myers Highslide JS
Michael Myers: In this image I took the standard cornell box scene and added one reflective sphere and one transmissive sphere. I altered the illumination rays so that they would refract through transmissive objects; this provided the caustics seen in the image. I also included motion blur for the cone in the ceter of the scene to simulate it falling. This was done by sampling the object at different positions during rendering.
Paolo Surricchio Highslide JS
Paolo Surricchio: These images show volume lighting atmospheric effects around spheres and capsules.
Paolo Surricchio Highslide JS
Paolo Surricchio: These images show volume lighting atmospheric effects around spheres and capsules.
Paolo Surricchio Highslide JS
Paolo Surricchio: These images show volume lighting atmospheric effects around spheres and capsules.
Prof Herron Highslide JS
Prof Herron: Path tracing of a scene demonstrating indirect lighting, soft shadows, and refraction among CSG (Constructive Solid Geometry) objects. CSG: The tiles are infinite repetitions of a super-ellipsoid. The lens is the intersection of two spheres (i.e., a "thin" lens). The objects on the floor are the intersection of a sphere and cube minus three cylinders. Indirect lighting: All surfaces are indirectly lit by the diffuse reflection off the brightly colored walls. The effect is subtle, but easily visible if you look for it. Refraction: The magnification produced by the lens is the result of ray-tracing refractive rays. Notice also the room behind the viewer is reflected in both surfaces of the lens, visible mostly as radiating lines of tiles. Soft shadows: Objects cast shadows with hard or soft edges as appropriate for the distance to the receiving surface.
Prof Herron Highslide JS
Prof Herron: Same scene as previous image, with the addition of a large amount of specular reflection applied to the walls and floor. Careful examination will show that all objects in the scene are lit by both direct reflection and indirect reflection from the colored walls.
Prof Herron Highslide JS
Prof Herron: The Mandelbulb fractal -- a 3D version of the famous Mandelbrot set; see http://www.skytopia.com/project/fractal/mandelbulb.html for details. The Mandelbulb and the ray marching were brought to the attention of the class by student Emory Myers (who has his own images of the object). My lighting does not (yet) match the quality from the website.
Prof Herron Highslide JS
Prof Herron: A high resolution long-running rendering. (Over 1000 path-tracing passes over two full nights.)
Prof Herron Highslide JS
Prof Herron: A closeup of the silhouette of one of the bumps of the Mandelbulb fractal. Many smaller copies of this 'broccoli forest' can be seen in the foreground.
Prof Herron Highslide JS
Prof Herron: A closeup of the Mandelbulb.
Prof Herron Highslide JS
Prof Herron: A cross-eyed stereo closeup of the Mandelbulb. Sit square in front of the image, cross your eyes to bring the two images together, and relax until your eyes focus, and enjoy a 3D image. The holes in the beehive-like shape reveal lots of intriguing complexity going on behind the front surface. That's the nature of fractals.
Prof Herron Highslide JS
Prof Herron: Another cross-eyed stereo image of the Mandelbulb, this time of the broccoli forest in silhouette and its complex 'foamy' foreground.
Ryan Scheppler Highslide JS
Ryan Scheppler: Cone shapes, and a better caustic lighting. What I did was extend the shadow checking to more or less do a short ray trace of its own to see if it hits a light source, as well as add some other colors that could possibly get through any transmission or reflection.
Ryan Scheppler Highslide JS
Ryan Scheppler: Cone shapes, and a better caustic lighting. What I did was extend the shadow checking to more or less do a short ray trace of its own to see if it hits a light source, as well as add some other colors that could possibly get through any transmission or reflection.
Stephanie Cheng Highslide JS
Stephanie Cheng: I implemented CSG shapes supporting unions, intersections, and subtractions of all current shapes. I also added a new type of camera that takes parameters for the focal length, the fstop (for aperature), and the exposure length. I used these parameters to calculate both depth of field and motion blur. For motion blur I also added a velocity parameter to every shape. For efficiency, I implemented a KD-tree and also added Russian Roulette to randomly kill deep depth traversals. My final scene file displays all of the above implementations. I have two versions of the same final scene. One is looking straight into the room and the other is a lower shot with the camera closer to the die. I moved the objects around somewhat in the two different shots but the objects themselves are the same. There are three lights in the room. The right wall is red and the wall behind the camera is blue. The far wall and the left wall are reflective mirrors. In the front left there is a reflective blue-tinted sphere that is in motion. In focus in the front is a perfectly reflective CSG die constructed by intersecting a sphere and box. In the back left is the classic CSG shape, a sphere and box intersecting with 3 cylinders subtracted. In the back right is a transmissive CSG that is a sphere subtracted from a sphere. Behind that is a diffuse yellow box to show the transmission of the CSG in front of it. The angled image took 25 hours to run 5000 passes at 1920x1080 on an Intel i7 2600K. The straight shot took 22 hours to run 2150 passes at 1920x1080 on an AMD FX6100.
Stephanie Cheng Highslide JS
Stephanie Cheng: I implemented CSG shapes supporting unions, intersections, and subtractions of all current shapes. I also added a new type of camera that takes parameters for the focal length, the fstop (for aperature), and the exposure length. I used these parameters to calculate both depth of field and motion blur. For motion blur I also added a velocity parameter to every shape. For efficiency, I implemented a KD-tree and also added Russian Roulette to randomly kill deep depth traversals. My final scene file displays all of the above implementations. I have two versions of the same final scene. One is looking straight into the room and the other is a lower shot with the camera closer to the die. I moved the objects around somewhat in the two different shots but the objects themselves are the same. There are three lights in the room. The right wall is red and the wall behind the camera is blue. The far wall and the left wall are reflective mirrors. In the front left there is a reflective blue-tinted sphere that is in motion. In focus in the front is a perfectly reflective CSG die constructed by intersecting a sphere and box. In the back left is the classic CSG shape, a sphere and box intersecting with 3 cylinders subtracted. In the back right is a transmissive CSG that is a sphere subtracted from a sphere. Behind that is a diffuse yellow box to show the transmission of the CSG in front of it. The angled image took 25 hours to run 5000 passes at 1920x1080 on an Intel i7 2600K. The straight shot took 22 hours to run 2150 passes at 1920x1080 on an AMD FX6100.
Stephanie Cheng Highslide JS
Stephanie Cheng: I implemented CSG shapes supporting unions, intersections, and subtractions of all current shapes. I also added a new type of camera that takes parameters for the focal length, the fstop (for aperature), and the exposure length. I used these parameters to calculate both depth of field and motion blur. For motion blur I also added a velocity parameter to every shape. For efficiency, I implemented a KD-tree and also added Russian Roulette to randomly kill deep depth traversals. My final scene file displays all of the above implementations. I have two versions of the same final scene. One is looking straight into the room and the other is a lower shot with the camera closer to the die. I moved the objects around somewhat in the two different shots but the objects themselves are the same. There are three lights in the room. The right wall is red and the wall behind the camera is blue. The far wall and the left wall are reflective mirrors. In the front left there is a reflective blue-tinted sphere that is in motion. In focus in the front is a perfectly reflective CSG die constructed by intersecting a sphere and box. In the back left is the classic CSG shape, a sphere and box intersecting with 3 cylinders subtracted. In the back right is a transmissive CSG that is a sphere subtracted from a sphere. Behind that is a diffuse yellow box to show the transmission of the CSG in front of it. The angled image took 25 hours to run 5000 passes at 1920x1080 on an Intel i7 2600K. The straight shot took 22 hours to run 2150 passes at 1920x1080 on an AMD FX6100.
Stephanie Cheng Highslide JS
Stephanie Cheng: I implemented CSG shapes supporting unions, intersections, and subtractions of all current shapes. I also added a new type of camera that takes parameters for the focal length, the fstop (for aperature), and the exposure length. I used these parameters to calculate both depth of field and motion blur. For motion blur I also added a velocity parameter to every shape. For efficiency, I implemented a KD-tree and also added Russian Roulette to randomly kill deep depth traversals. My final scene file displays all of the above implementations. I have two versions of the same final scene. One is looking straight into the room and the other is a lower shot with the camera closer to the die. I moved the objects around somewhat in the two different shots but the objects themselves are the same. There are three lights in the room. The right wall is red and the wall behind the camera is blue. The far wall and the left wall are reflective mirrors. In the front left there is a reflective blue-tinted sphere that is in motion. In focus in the front is a perfectly reflective CSG die constructed by intersecting a sphere and box. In the back left is the classic CSG shape, a sphere and box intersecting with 3 cylinders subtracted. In the back right is a transmissive CSG that is a sphere subtracted from a sphere. Behind that is a diffuse yellow box to show the transmission of the CSG in front of it. The angled image took 25 hours to run 5000 passes at 1920x1080 on an Intel i7 2600K. The straight shot took 22 hours to run 2150 passes at 1920x1080 on an AMD FX6100.