Friday, January 28, 2011

One honest, rather annoying blog post



Summarizing this week: a bad start.

I know, this is just the beginning, should be straightforward, etc. Well, no.
I have been trying to get an OBJ loader and build the framework for my project but encountered some difficulties. 
I was first using an OBJ loader that was already a project on its own, but since I didn’t know what was happening in most of the code, where the shading began, where it ended, where the loading ended and so on, I switched to one that was a group of files. Once I finally got it to compile, it wouldn’t show anything. So, debugging time. After trying to figure it out for 2 sessions, I decided to go back to the one that came in a project. That was Thursday night. Yay for me, back to the beginning of this week, but without the rest of the week to actually make some progress. 
So, my plan on that matter is to use that project, keep everything there and figure out what to erase once I have the framebuffer stuff in. Hopefully, I will be able to get over the dizziness of having so much code in one file. If not, well, I’ll use the infallible Plan C, which I have to devise once I need it. I know, I know, I am very indecisive and can’t really plan things. Oh, and if I only knew how to set up projects in VS…

About the reading part of my plan:
I have a hard time learning anything from reading or sitting in lectures. The only thing that sometimes works in this scenario is to read the material many many times until it sinks in. I am currently on Pass #3 of all my resources. I have summaries, diagrams, tables, etc. Now I only need to understand the material, which means read some more? I might need another Plan C here.
Good thing though: 
I realized there are a lot of things I should know in order to even start reading about deferred shading. Like GPU stuff and shading basic concepts. I learnt this week that the GPU stores data in 2D arrays called textures. So, when in my sources it says floating point textures it means (sort of) a 2D array of floating points (right?). Most of you know this already… if not all. But you are all great, which explains it =). So, now I am going over some concepts and re-reading my resources.

Plan for this week:
-       Read some more… a lot more…
-       Go over frame buffer tutorials
-       Revise my design document (It might help me understand more)
-       Prepare some questions for Joe (sorry Joe!)
-       HOPEFULLY, actually start coding… (unrealistic, but one gotta hope)
-   Find some advice on learning and understanding. Perhaps from my Human Memory Professor?

Thursday, January 20, 2011

Senior Design Abstract and Plan for First Week


Abstract

The purpose of this project is to get familiar with a different rendering technique. Deferred rendering is widely used in real-time rendering where the speed of performance is very important. Games are not the only application deferred rendering has, but they are great examples of its advantages. Implementing a deferred shader is the main focus of this project with the addition of some extension to it like reflectance fields or light volumes.
Having many lights in a scene is very complicated and normally costs time to calculate. Deferred shading renders multiple lights in real-time without trading performance. Games use this technique to defer light computations with screen-space operations. This technique separates the typical shading process into two discrete steps. One is computing geometry and determining the characteristics of the surface material, and the second calculates the light and computes the interaction between surface and light.
A deferred shader stores the surface information such as position, normal, etc. in a G-buffer in an initial pass. Then, for each light, if it has a non-zero contribution, the light shader will read the G-buffer, evaluate the current light’s contribution and add it up.
I plan to implement an extension to my renderer. I wish to take advantage of reflectance fields or light volumes. These illumination basis functions will re-light an object from a new set of light sources and hopefully enhance the deferred renderer.


Plan for week of Jan. 24th
  • Doing background reading
  • Setting up the framework
  • Integrating an OBJ Loader with my project