Edge Rendering


About

I implemented an edge rendering project for CS399 – Advanced Real Time Rendering Techniques, an independent study class I took in the Spring 2018 semester. I implemented both image space and world space edge detection and rendering algorithms. I also added a few different non-photorealistic shading modes, but these weren’t the primary focus of the project. The code for this project can be found at the tip of the NPR branch of my repository used for this class which can be found here: https://github.com/qbz223/Falcor/tree/NPR . The image space algorithm utilized Sobel, Scharr, or Prewitt operators. The world space algorithm was based on Doss’ gamasutra post (http://www.gamasutra.com/view/feature/130067/sponsored_feature_inking_the_.php?page=1) and Hermosilla and Vazquez’s paper (http://cgstarad.com/Docs/GSContours.pdf). Assets for this project were from the Open Research Content Archive (https://developer.nvidia.com/orca)

Screenshots

Image space algorithm and toon shading on bistro interior

 

World space algorithm and toon shading on bistro exterior

 

Image space algorithm properly handling double sided alpha materials, which the world space algorithm struggles with

 

World space algorithm drawing thick edges which is much more difficult in the image space algorithm (controllable edge thickness)