Advanced Real-Time Rendering Techniques

* Everything I did for this course was done from scratch

Phong Tessellation

In this assignment we had to implement a method that would tessellate the loaded 3D model in order to get a smoother surface and edges.

In this video you can see:

  • Tessellation of the 3D object and how the normals (gray lines) are generated.
  • Bumpiness of the generated geometry.
  • Adaptive tessellation (geometry in the center of the objects gets lower tessellation than outline) and refinement depth (tessellation level decreases when camera goes away and increases when camera gets closer).

 

Parallax Mapping

For this assignment we implemented different methods of parallax mapping which includes Offset Limiting, Steep PM, Relief PM and Parallax Occlusion Mapping.

In this video you can see:

  • How different methods and the height map scale affect the final effect.
  • The difference in the result when using self shadowing.
  • Final effect when applying a procedurally generated texture.

 

Ambient Occlusion

In this video you can see:

  • Ambient occlusion by unsharp masking.
  • Effect with and without lighting.
  • How changing different variables modifies the final result.
  • Buffers used in the process (from top to bottom, position, normals, color, depth, lighting).

 

Lens Flares

For the final assignment, we had the chance to research and develop a topic of our choice related with the course, which in my case was lens flares. For doing it, I first researched already implemented methods that have been used, from texture superposition to physically accurate simulations, and I finally decided to base my implementation in the “Pseudo lens flare” method developed by John Chapman.

In this video you can see:

  • Skybox.
  • Reflective/refractive models.
  • How changing different variables modifies the final result.
  • Buffers used in the process (from top to bottom, shiny parts participating in effect, features, blurred final effect).