March 30, 2014

[Week 9-11] End of Semester Update

Hello!

With the school year is coming to a close, the last few weeks have been fairly busy.
I have not been able to blog as much as I would like to, so today's blog post is a summary of what I have been doing the past couple weeks up to today (weeks 9-11).

In the recent lectures periods, we have been doing in class exercises, such as creating the portal effect and creating water effects, which brings together the different concepts we have been learning about this semester. We also had the chance to demo our GDW game to the class for criticism on things to improve on in preparation for GameCon/LevelUp.
In relation to the water exercise, we watched a GDC 12 presentation on the Water Technology of Uncharted from Naughty Dog. In their presentation, the method of how they did their water rendering was really interesting. From what I understood, they were using different geometry sizes of clipmaps on top of each other, and blended in between the different levels.
It worked together with the camera, where the important objects in the scene with detail were in the smallest mesh, with the camera focused on it. As the objects/camera moved in the scene, the rings would also move.

Water Technology of Uncharted
The other topics that we have covered in the past lectures were deferred rendering, depth of field and motion blur, all three topics that were interesting to me.

In the recent tutorial with Dan, we went over the implementation of shadow mapping; an explanation of what is done, and the shader code process. We also went over how to implement projection; projecting an image from the light source onto the scene. I plan to use what we were shown to complete homework assignments due in the few weeks.

Shadow Mapping + Projection
As for homework, there are two weeks remaining for homework submission. My framework still has a few small issues with UV texture loading, but I can finally start finishing off homework questions.
So far I have started and almost completed the ambient occlusion demo, the shadow mapping demo, as well as an artist questions demoing the use of normal/specular/diffuse maps in different environments such as Maya, the opengl shader designer, and into my framework. I may work on mesh skinning or reflections, if I can finish it on time.

Ambient Occlusion In Maya
- Jonathan

March 14, 2014

[Week 8] VR Game Jam

Hello!
Last weekend, I took part in GDSoc second Game Jam, with the theme of VR, requiring that we use at least 1 VR tool available to us.
I was in a team of three, we had a slow start, deciding on our idea and how we were going to complete it; we finally chose to recreate a simple labyrinth, navigating a ball throughout the maze, with the use of the Leap Motion Controller.

Main Menu + InGame Screenshot

Our team is fairly new to the Unity environment and scripting, so it took some time to learn. We did not have enough time to implement the leap motion unfortunately but we were able to complete the basic game without the controller for the last day.
My team did learn a lot, and I am personally building onto the project, as practice in Unity for future game jams.

- Jonathan

March 3, 2014

[Week 6 & 7] Shadow Mapping + Reading Week

Shadow Mapping!
In week 6 we began to cover the topic of shadow mapping.
Shadows in games play an important role, adding realism, character/mood, as well as helps the viewer to understand spatial relationships.
There are different techniques to creating shadows, as well as many variations on each technique. The main techniques include ray tracing, shadow maps (commonly used by Pixar), and shadow volumes (used by many current games).

Shadow mapping which I will be explaining today is a relatively easy to implement technique. Shadow mapping is an image-space technique. There are multiple pros and cons to using it. Some pros of using shadow mapping include its speed, and that it scales linearly, as well as the technique is optimized for GPU. When using a shadow map, you only need a depth buffer, and it also only requires general shapes (triangles, higher-order surfaces). A major con to using shadow mapping is the aliasing problem.

When creating shadow maps, there are two major viewpoints to consider; the lights viewpoint and how it interacts with the blocker (casts shadows) and receiver (surface shadow falls on), as well as the observers viewpoint, which is what the user can see.

Shadow Map Diagram
Projective Texture Mapping is another important concept which also applies to shadow maps. Shadow maps are textures, and they need to perform look-ups. The projective texture coordinates will first need to be computed, then transformed into lights space, then finally projected to screen space.

As stated previously, aliasing is currently an issue with shadow mapping; it can sometimes show up as jagged shadow edges, and as incorrect self-shadowing artifacts (visual artifacts). Shadow maps also have a finite resolution, and could also sometimes result in a resolution mismatch.
Currently a way that could fix this problem is by increasing the resolution of the shadow map; but this only reduces aliasing (not remove) as well as uses up extra GPU memory.

Reading Week + Tutorials!
Over the reading week for most of it I studied mainly for midterms, slept a lot, also some gaming when I had time :)
I didn't have my framework finished for the previous Friday as planned, continued to work on it over the reading week. I completed the artist Character Design homework question since I do enjoy modelling in Maya/Mudbox.
In Dan's tutorials, we went over non-photo-realistic rendering (toon shading), which did help my understanding for what I will need to do for the homework questions.

Next week’s blog I plan to cover more image processing.


- Jonathan S.