Wednesday, 24 November 2010

RQ Presentation

The RQ presentations were on Friday. I don't think my presentation was that great, I'm a terrible public speaker, but I didn't faint or die or get pelted with rotton tomatoes so in some respects it was a success. Some of the other presentations were pretty interesting though. And certainly better presented than mine. XD

In the interests of completeness here is my slide show for the presentation - Dynamic Ambient Occlusion

Also, I have finally got my hands on that ShaderX7 book since Peter Mitchell was nice enough to lend it to me (Thanks ^^) and there are loads of ambient occlusion chapters. It may even contain the secrets of the universe, it's certainly thick enough.

ttfn

Worksheet 4

Introduction
What is the topic and aim of the project?

The topic being looked at for this project is dynamic ambient occlusion in computer games. The aim is to determine the best method for rendering real time AO in a cost effective manner, while at the same time extending it to simulate indirect lighting as well.
  
Issues
What issues do you want to address?

Probably the main issue to look at will be keeping costs down, since the ambient occlusion will be utilised in applications that already have lighting, shadows, dynamic objects and user interaction, it can't have too great an impact on the framerate. But keeping a balance between the efficiency and the quality will also be important - SSAO can produce noisy output which isn't ideal.

Being able to deal with hidden geometry will also be something to adresss, as SSAO doesn't take into account hidden geometry, especially that outside the camera frustrum.

And of course, adding indirect lighting into the ambient occlusion algorithm, so that global illumination can be better approximated. The two things are closely related so it is a logical step.

Research question
What is your current research question?

What are the best solutions to rendering dynamic ambient occlusion in computer games and how can they be improved/expanded upon to better approximate global illumination? 
Addressing the Question
How do you envisage yourself carrying out the project? - a short exposition of the project.

1. I will look at many different variations of the SSAO algorithm to determine the best way to approach the various problems associated with the method. I've found quite a number of papers and resources on the subject - different techniques solve different issues. I will also look at the newer technique of ambient occlusion volumes (AOV) which I recently found on Nvidia's site, as a potential alternative to SSAO. 

2. I will create a 3D application which simulates a game environment, including things such shadows, lighting, dynamic objects and a user controlled camera. Initially I will test a few different methods of AO and then eventually narrow it down to one technique (which may be an amalgamation of more than one method) which I will then attempt to optimise and expand to include indirect lighting. 

3. Performance will be measured - using the frame-rate, how many passes are needed, etc -  with and without the AO in the scene. Graphical quality will need to be measured with the naked eye.    

 Progress
What have you managed to do so far and how has it influenced your vision?

So far it has all been just research. I've been trawling the web and the library for ambient occlusion resources and found quite a lot of research material. I haven't read everything I've found (though I've skimmed through most)...but I have been trying to get through it, and take notes. I've been looking at static ambient occlusion methods as well, so I can get a wider view of the topic and hopefully a fuller understanding of the theories behind it. My vision has been influenced in a small way by some of the things I've found - i.e. the paper on   
SSDO: Approximating Dynamic Global Illumination in Image Space - made me think about expanding AO into indirect lighting, thus changing my RQ slightly.

Research links #4

Ambient Occlusion Volumes - NVIDIA

Wednesday, 10 November 2010

Research Links #3

Online:

Ambient Occlusion in Screen-Space
D3DBook:Screen Space Ambient Occlusion
Accumulative Screen Space Ambient Occlusion


Video Examples: 

Screen Space Global Illumination
SSAO final, aka Screen space ambient occlusion
SSAO and Deferred shading in XNA/HLSL
SSAO - Statistical Optimally Distributed Sample Technique
Screen Space Global Illumination

Small Update

I met with Matt Bett again today, as I was slightly unsure about my research question and about the practical aspecty of the project.

RQ-wise, it's all good. I could definitley reword my RQ so that it's more succinct/less wordy but my leaning towards expanding AO techniques to better approximate global illumination is good.

As to the practical side of the project - I had been playing with the idea of implementing a proper global illumination effect in my app to compare the AO effect with but Matt said that would be hard and time consuming...particularly for a complex scene, and it was enough to just judge the AO effect by itself. *Inward sigh of relief*

                                                              ***

Research wise - I'm good at finding research material but unfortunately not so good at sitting down and making myself read/absorb it properly. I have made a start though, and I intend to read and take notes from, at least one resource every day. I will then put my notes up on the blog...if I can read my writing.

Wednesday, 3 November 2010

More Research Links

Academic Papers:

An Information-Theoretic Ambient Occlusion
Fast Occlusion Sweeping

RQ Workshop

This is a workshop we had to do in last week's lecture. I thought it would be a good idea to put my answers up on the blog so I have a good record of them.

Are you Focused?

  • What is the name of this module, how many credits?
          AG1081A Honours Project Planning and Reporting, 30 credits.
  • Your technical supervisor, how many times have you met?
         I have talked with Matt Bett twice about my project and hopefully will do so again soon, as there are still aspects of my project that I need to figure out.
  • What other module is associated with the honours project, how many credits?
         Honours Project Execution, 30 credits
  • How frequently do you update your blog?
         I try to update the blog at least once a week.
  • Have you included both your worksheets in your blog, with/out annotations/feedback?
        I have done all the worksheets so far (1-3) and posted them on the blog, but so far I have only had one comment on the first worksheet and not the others though I did send my links out.
  • Have you included in your blog the resources you have found and read/reading through your literature resources?
         Yes, I have put up links to all the online resources I have found so far and references for the books I have found also. I haven't read through a lot of them yet but I'm working on it.

Common Sense?

  • Have you subscribed to any game related forum and posted your RQ, research ideas and got feedback?
        No, I haven't. I've never been much of a forum goer and I do feel a little nervous about asking for help in one.
  • What back up procedures have you implemented?
         I keep copies of all the research papers, demos and links that I find on both my USB stick and on my laptop. Anything I have to write down, I use my notebook for and then transfer to the blog. Though, the notes on my blog are more complete than those in my notebook since I think better at a keyboard.
I would keep backups on my university account, but I've been having problems saving stuff to it as it claims that ther's no room. Once I get that sorted I will keep backups on there too.
  • How long do you spend for your Honours Project activities?
         It's hard to say exactly, but possibly about 2-3 hours a week. I probably should spend more time on it I know.

Do you know what you are doing?

  • "What" is your RQ?
           What are the solutions to rendering dynamic ambient occlusion in realtime 3D applications (i.e. games) and how can they be improved/expanded upon to better approximate global illumination?
  • "Why" is it important?
         Realism is a big issue in computer games today and within the realm of graphics, global illumination is a pretty current topic. Global illumination simulates the ambient light that bounces around a scene, reflecting off diffuse surfaces and adds more realism than just having lights and shadows would. However, global illumination techniques such as ray tracing, radiosity and photon mapping are computationaly expensive and while they produce good results graphically, they are not cost effective enough to really be viable in real time apps, i.e. games. Ambient occlusion on the other hand can be implemented in real time apps in a cost effective manner. AO simulates the soft shadows produced where light cannot reach. i.e. in creases and corners, or when two objects are very close together. It provides more depth to a scene, particluarly those with dim lighting. Ambient occlusion can be expanded to simulate indirect lighting as well and could be a viable alternative to global illumination.
  • "How" will you answer it?
         I will create an application that simulates a game environment, i.e. it will have lights, shadows, moving and static objects, and a movable camera. I will then implement a few of the methods for dynamic ambient occlusion and look at how they could be improved upon/expanded. I'm not sure if I should implement a globa illumination method as well so I could compare them, or how many methods I should actually end up implementing. I will have to think a bit more about this aspect of the project.
  • "So What" will be: 1. Your measure for success, 2. What will be the significance of what you have done?
        1.  I think the success will be measured in both, how cost effective the methods are and how well they simulate a global illumination effect.