Beruflich Dokumente
Kultur Dokumente
A91114755
Group: none
Final Project Report
1.2 Basic High Quality Rendering
Things completed:
1.2.1 GLSL Shaders Custom Toon Shader
1.2.2 Shadow Mapping with PCF, real time light position adjustment
1.2.3 Environment Mapping with switch between refraction and reflection
1.2.4 Addon 1 Stratified Possion Sampling (different from milestone where I put
adaptive shadow as the first addon)
Library used:
glew, glut, glm
FreeImage.h (screenshot)
stb_image.h (jpg file loading)
1.2.1:
Basic viewer operations are printed to the command line, plus number key 1-6 to
adjust position of the first light. 1 2 3 increase x y z. 4 5 6 decrease x y z.
The default shading is Lambert and Phong shading implemented before. I picked a
custom toon shading to achieve a non-photorealistic effect.
You can pass in an argument [xxx.txt] to this program to set up objects, lights, and
scene. The default set up is in default.txt. Note that the first light is assumed to be
the brightest light and a moveable light source.
1.2.4 Addon 2:
Due to my late decision, I didnt complete this part. :(
Video demo:
https://youtu.be/P8MjKh2yhPE
General comment about this assignment:
I started this assignment with Nvidia OptiX real time raytracer that I was fairly
unfamiliar with. I built my project on one of its sample programs, hoping this set
up can get me a head start in learning this engine. However, I encountered lots of
difficulties while using the provided utility functions, such as load mesh, partially
because they are designed for very specific purposes. I had been stuck on a weird
problem about texture loading that is not the concern of this assignment for several
days and with no luck, I finally decided to move on and switch to GLSL shaders.
Thats the reason why I turned in an image using Optix on milestone but now
submit an opengl program instead. I would definitely try to learn more about
OptiX, but not for this assignment.