Jump to content

New Fast as Possible Topic - Ambient Occlusion

Hey all,

Hopefully some of you recognize me by now - if not I'll give a quick intro. I'm Nick, the advertising/sales/misc. guy here at Linus Media Group. I've been working here full time since May.

Now, as a disclaimer - I have NO experience in the world of graphic design or game design.

 

We're trying to churn out even more content for you guys to consume, so Linus is starting to delegate some scripting for Fast as Possible to Taran and I. The first topic I got was ambient occlusion. Knowing nothing about the topic, I went straight to Wikipedia/Google and churned out a script.

Before we post this to the channel, we want to make sure that the video will give an accurate and relatively easy to understand overview of ambient occlusion. Here is the script:

 

Ambient occlusion is a term that is thrown around a lot in gaming and 3D rendering, but what is it and how does it work?

 

First, let’s determine what occlusion means. The Collins World English Dictionary defines occlusion as “to block, stop up, or obstruct. So, for our discussion today, we can comfortably describe occlusion as “the amount of obstruction there is between one point or region of a 3D scene and a light source.

Now, let’s add the whole “ambient” part into the mix. From Wikipedia – “ambient occlusion is a render technique used to calculate how exposed each point in a scene is to ambient lighting.To expand on that, it is a global method of illuminating a scene, whereby each point is illuminated by taking all other geometry in the scene into account. Though shadows are not clearly defined, areas that are less exposed to direct or indirect light like corners appear dark and shadowy.

 

Though it is more comprehensive than local methods like Phong shading (an early technique for approximating the shading of a smooth surface in 3D graphics), ambient lighting is still a very crude method of achieving global illumination – more on this later.

 

Ok, so it’s a lighting effect that graphic designers and game developers use to add realistic shading to a scene. But how does it work, and why should I care?

Ambient occlusion was first introduced to gaming in 2007 by the developers of Crysis. Due to hardware limitations, Crytek implemented a scaled-down version of ambient occlusion called Screen-Space Ambient Occlusion, or SSAO . SSAO works by using pixel depth rather than scene geometry to form an ambient occlusion map . It is a much more simple process, as it applies a somewhat realistic amount of occlusion to each pixel in relation to those around it rather than evaluating the shading of an entire scene based on a light source or multiple light sources.

 

SSAO’s advantages include zero load time and no pre-processing. It works the same for every pixel on the screen, and it does not use your CPU at all . That’s right, it can add a huge amount of depth and complexity to a scene, and only ends up taxing the GPU. Pretty cool.

 

It DOES have disadvantagess though – it will not represent the scene as accurately as true ambient occlusion would as it only takes what you can see on the screen into account, and there are some issues with accurately blurring and smoothing out noise without interfering with depth discontinuities like hard edges. It is certainly not the perfect solution.

 

In 2009, we got an upgrade to SSDO – Screen-Space Directional Occlusion. This allowed game engines to calculate local indirect illumination, and cast directional shadows with the aid of an environment map. SSDO allowed for a wider variety of shades by taking the angle from which the light approaches the object as well as the bounce of the light off an object behind the initial object into account. This helps, but is still a far cry from true ambient occlusion.

 

So we covered the approximations, but what would TRUE ambient occlusion look like? In a perfect world with uber computers, every aspect of a scene’s geometry would be taken into account – from your character’s model, to the bridge directly in front of you, all the way down to the tree 300 yards behind you. Light would bounce off all of these elements to create a photorealistic lighting model like the groundbreaking full global illumination method that Pixar implemented in Monsters U. Unfortunately rendering all of this in real time would be extremely taxing on your CPU, which is what makes it nearly impossible to achieve in games with modern technology. Some advances have been made through pre-rendering parts of the scene’s occlusion, like the occlusion caused by your character’s model and static objects in outdoor scenes, or by separating high-frequency, detailed ambient occlusion for objects close to your character from low-frequency ambient occlusion on distant objects, but we are still unable to render true ambient occlusion in real time… So for now we’ll have to deal with the approximations… First world problem, right?


 

Sorry for the wall of text...

 

Anyone who knows about ambient occlusion - is this relatively correct? Does it explain the topic relatively well? Keep in mind that there will be a lot of pics/diagrams to support the explanation.

Thanks guys,
Nick

 

Link to comment
Share on other sites

Link to post
Share on other sites

talk about HBAO since its found in most new games such has BF3 and BF4

its also a type of Ambient Occlusion

If your grave doesn't say "rest in peace" on it You are automatically drafted into the skeleton war.

Link to comment
Share on other sites

Link to post
Share on other sites

So we covered the approximations, but what would TRUE ambient occlusion look like? In a perfect world with uber computers, every aspect of a scene’s geometry would be taken into account – from your character’s model, to the bridge directly in front of you, all the way down to the tree 300 yards behind you. Light would bounce off all of these elements to create a photorealistic lighting model like the groundbreaking full global illumination method that Pixar implemented in Monsters U. Unfortunately rendering all of this in real time would be extremely taxing on your CPU, which is what makes it nearly impossible to achieve in games with modern technology. Some advances have been made through pre-rendering parts of the scene’s occlusion, like the occlusion caused by your character’s model and static objects in outdoor scenes, or by separating high-frequency, detailed ambient occlusion for objects close to your character from low-frequency ambient occlusion on distant objects, but we are still unable to render true ambient occlusion in real time… So for now we’ll have to deal with the approximations… First world problem, right?

 

This is incorrect. There are fully path-traced (ray-traced) game engines being developed right now which run real time (brigade), they have true AO.

Link to comment
Share on other sites

Link to post
Share on other sites

It's easy to understand, if it's right, IDK.

i'm a potato

Link to comment
Share on other sites

Link to post
Share on other sites

i came to this topic not to read about fast as possible lmao 

Check out my current projects: Selling site (Click Here)

If($reply == "for me to see"){

   $action = "Quote me!";

}else{

   $action = "Leave me alone!";

}

Link to comment
Share on other sites

Link to post
Share on other sites

There are fully path-traced game engines being developed right now which run real time (brigade), they would have true AO.

Are there any games out now that feature those engines?

Link to comment
Share on other sites

Link to post
Share on other sites

Hey all,

Hopefully some of you recognize me by now - if not I'll give a quick intro. I'm Nick, the advertising/sales/misc. guy here at Linus Media Group. I've been working here full time since May.

Now, as a disclaimer - I have NO experience in the world of graphic design or game design.

 

We're trying to churn out even more content for you guys to consume, so Linus is starting to delegate some scripting for Fast as Possible to Taran and I. The first topic I got was ambient occlusion. Knowing nothing about the topic, I went straight to Wikipedia/Google and churned out a script.

Before we post this to the channel, we want to make sure that the video will give an accurate and relatively easy to understand overview of ambient occlusion. Here is the script:

 

Ambient occlusion is a term that is thrown around a lot in gaming and 3D rendering, but what is it and how does it work?

 

First, let’s determine what occlusion means. The Collins World English Dictionary defines occlusion as “to block, stop up, or obstruct. So, for our discussion today, we can comfortably describe occlusion as “the amount of obstruction there is between one point or region of a 3D scene and a light source.

Now, let’s add the whole “ambient” part into the mix. From Wikipedia – “ambient occlusion is a render technique used to calculate how exposed each point in a scene is to ambient lighting.To expand on that, it is a global method of illuminating a scene, whereby each point is illuminated by taking all other geometry in the scene into account. Though shadows are not clearly defined, areas that are less exposed to direct or indirect light like corners appear dark and shadowy.

 

Though it is more comprehensive than local methods like Phong shading (an early technique for approximating the shading of a smooth surface in 3D graphics), ambient lighting is still a very crude method of achieving global illumination – more on this later.

 

Ok, so it’s a lighting effect that graphic designers and game developers use to add realistic shading to a scene. But how does it work, and why should I care?

Ambient occlusion was first introduced to gaming in 2007 by the developers of Crysis. Due to hardware limitations, Crytek implemented a scaled-down version of ambient occlusion called Screen-Space Ambient Occlusion, or SSAO . SSAO works by using pixel depth rather than scene geometry to form an ambient occlusion map . It is a much more simple process, as it applies a somewhat realistic amount of occlusion to each pixel in relation to those around it rather than evaluating the shading of an entire scene based on a light source or multiple light sources.

 

SSAO’s advantages include zero load time and no pre-processing. It works the same for every pixel on the screen, and it does not use your CPU at all . That’s right, it can add a huge amount of depth and complexity to a scene, and only ends up taxing the GPU. Pretty cool.

 

It DOES have disadvantagess though – it will not represent the scene as accurately as true ambient occlusion would as it only takes what you can see on the screen into account, and there are some issues with accurately blurring and smoothing out noise without interfering with depth discontinuities like hard edges. It is certainly not the perfect solution.

 

In 2009, we got an upgrade to SSDO – Screen-Space Directional Occlusion. This allowed game engines to calculate local indirect illumination, and cast directional shadows with the aid of an environment map. SSDO allowed for a wider variety of shades by taking the angle from which the light approaches the object as well as the bounce of the light off an object behind the initial object into account. This helps, but is still a far cry from true ambient occlusion.

 

So we covered the approximations, but what would TRUE ambient occlusion look like? In a perfect world with uber computers, every aspect of a scene’s geometry would be taken into account – from your character’s model, to the bridge directly in front of you, all the way down to the tree 300 yards behind you. Light would bounce off all of these elements to create a photorealistic lighting model like the groundbreaking full global illumination method that Pixar implemented in Monsters U. Unfortunately rendering all of this in real time would be extremely taxing on your CPU, which is what makes it nearly impossible to achieve in games with modern technology. Some advances have been made through pre-rendering parts of the scene’s occlusion, like the occlusion caused by your character’s model and static objects in outdoor scenes, or by separating high-frequency, detailed ambient occlusion for objects close to your character from low-frequency ambient occlusion on distant objects, but we are still unable to render true ambient occlusion in real time… So for now we’ll have to deal with the approximations… First world problem, right?

 

Sorry for the wall of text...

 

Anyone who knows about ambient occlusion - is this relatively correct? Does it explain the topic relatively well? Keep in mind that there will be a lot of pics/diagrams to support the explanation.

Thanks guys,

Nick

 

hey nick does linus remember this of by heart or do you have a screen for him to read off, always made me wonder?

Check out my current projects: Selling site (Click Here)

If($reply == "for me to see"){

   $action = "Quote me!";

}else{

   $action = "Leave me alone!";

}

Link to comment
Share on other sites

Link to post
Share on other sites

Are there any games out now that feature those engines?

There was a small tech-demo type game made with an early version of brigade, but no "proper" games use ray-tracing cause you need a monumental amount of processing power to run it at an acceptable framerate. (iirc they used 2 GTX Titans for their 1080p 30fps video)

Link to comment
Share on other sites

Link to post
Share on other sites

The humor in the script is kind of nyeh. Is Taran or Linus reading it?

 

"Ok, so it’s a lighting effect that graphic designers and game developers use to add realistic shading to a scene. But how does it work, and why should I care?"
MUH GRAFIX THAT'S WHY

 

 

 

hey nick does linus remember this of by heart or do you have a screen for him to read off, always made me wonder?

Linus uses a teleprompter in all of his videos.

How to Post Topics, the Right Way / The Ultimate Build Parts List

 

"4 words. DON'T BE A DUMBASS" ~@Swndlr

Link to comment
Share on other sites

Link to post
Share on other sites

Under disadvantages, it would be prudent to add artifacting. Such as:

 

fig3.jpg

 

You also have the out-of-place 'underglow' effect where objects in a world will leave a shadow with a bright spot in the middle of the shadow. I couldn't find an example.

 

Basically, choose the type of AO that you find least troubling. As for myself, I hate every type of artifact and don't use AO at all in 96% of games.

In case the moderators do not ban me as requested, this is a notice that I have left and am not coming back.

Link to comment
Share on other sites

Link to post
Share on other sites

There was a small tech-demo type game made with an early version of brigade, but no "proper" games use ray-tracing cause you need a monumental amount of processing power to run it at an acceptable framerate. (iirc they used 2 GTX Titans for their 1080p 30fps video)

So what I've said is not technically wrong then? If you need that much processing power to run it at 30fps I would say that current hardware is limiting its implementation (especially considering the amount of extra power you need to make the jump from 30 to 60fps...)

 

 

EDIT: I'm going to get Ed to add text that says "at an acceptable frame rate/resolution" to go along with "we are still unable to render true ambient occlusion in real time…"

Link to comment
Share on other sites

Link to post
Share on other sites

Under disadvantages, it would be prudent to add artifacting. Such as:

 

fig3.jpg

 

You also have the out-of-place 'underglow' effect where objects in a world will leave a shadow with a bright spot in the middle of the shadow. I couldn't find an example.

 

Basically, choose the type of AO that you find least troubling. As for myself, I hate every type of artifact and don't use AO at all in 96% of games.

Thanks for adding the photo for clarity!

 

Do you have the source for it? If so we might be able to add it to the video.

 

Those would definitely be good disadvantages to add - not sure if we can due to time constraints but thanks for suggesting them!

Apart from that it looks alright to you though?

Link to comment
Share on other sites

Link to post
Share on other sites

Good you changed it to fast as possible instead of fap

n0ah1897, on 05 Mar 2014 - 2:08 PM, said:  "Computers are like girls. It's whats in the inside that matters.  I don't know about you, but I like my girls like I like my cases. Just as beautiful on the inside as the outside."

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks for adding the photo for clarity!

 

Do you have the source for it? If so we might be able to add it to the video.

 

Those would definitely be good disadvantages to add - not sure if we can due to time constraints but thanks for suggesting them!

Apart from that it looks alright to you though?

 

Hmm I forgot the source on that particular photo, but if you want to dive into some deeper stuff, here's an Nvidia article about some of it: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch12.html

In case the moderators do not ban me as requested, this is a notice that I have left and am not coming back.

Link to comment
Share on other sites

Link to post
Share on other sites

i taught we were going to masturbate together :(

LoL

[spoiler= Dream machine (There is also a buildlog)]

Case: Phanteks Enthoo Luxe - CPU: I7 5820k @4.4 ghz 1.225vcore - GPU: 2x Asus GTX 970 Strix edition - Mainboard: Asus X99-S - RAM: HyperX predator 4x4 2133 mhz - HDD: Seagate barracuda 2 TB 7200 rpm - SSD: Samsung 850 EVO 500 GB SSD - PSU: Corsair HX1000i - Case fans: 3x Noctua PPC 140mm - Radiator fans: 3x Noctua PPC 120 mm - CPU cooler: Fractal design Kelvin S36 together with Noctua PPCs - Keyboard: Corsair K70 RGB Cherry gaming keyboard - mouse: Steelseries sensei raw - Headset: Kingston HyperX Cloud Build Log

Link to comment
Share on other sites

Link to post
Share on other sites

Speaking of light bouncing off objects,

You're and your are not the same. Neither are their, there, and they're. Defiantly and Definitely are definitely not the same. Definately and Rediculous are not words, and you should feel bad for misspelling them. If English is your first language, you don't have a learning disorder, and you get any of these wrong, you are making the entire forum slightly dumber by doing so. Please take the extra three seconds to type properly, and have a nice day.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

wut? this is not a fapping topic?

 

anyways, in short AO is the faking of soft shadows with an actual light source.  Yes, it is a way of faking global illumination because gloabl illumination takes A LOT of rendering time.  Well it's best to explain with a pic.

 

ambient-occlusion.jpg

 

Without AO, the areas where there shouldn't be a lot of light, such as the inside the air intake, are evenly lit.  With AO

 

In games, AO is usually prebaked onto a map that is combined with the diffuse map, even if the game has real-time AO. The baked AO map can also be used as dirt map, but that's another story.

Link to comment
Share on other sites

Link to post
Share on other sites

wut? this is not a fapping topic?

 

anyways, in short AO is the faking of soft shadows with an actual light source.  Yes, it is a way of faking global illumination because gloabl illumination takes A LOT of rendering time.  Well it's best to explain with a pic.

 

ambient-occlusion.jpg

 

Without AO, the areas where there shouldn't be a lot of light, such as the inside the air intake, are evenly lit.  With AO

 

In games, AO is usually prebaked onto a map that is combined with the diffuse map, even if the game has real-time AO. The baked AO map can also be used as dirt map, but that's another story.

Thanks - yep we will be showing a couple pics that illustrate that (like the serpent [dragon?] on this page from Nvidia's site http://www.geforce.com/whats-new/guides/ambient-occlusion#1)

As long as we're not giving out grossly inaccurate information (which, judging by the responses in this thread, I don't think we are) we should be good.

Thanks for the help guys.

Link to comment
Share on other sites

Link to post
Share on other sites

tl;dr sorry but for me I learned it as simply as reading the first paragraph of wikipedia.

Link to comment
Share on other sites

Link to post
Share on other sites

So we covered the approximations, but what would TRUE ambient occlusion look like? In a perfect world with uber computers, every aspect of a scene’s geometry would be taken into account – from your character’s model, to the bridge directly in front of you, all the way down to the tree 300 yards behind you. Light would bounce off all of these elements to create a photorealistic lighting model like the groundbreaking full global illumination method that Pixar implemented in Monsters U. Unfortunately rendering all of this in real time would be extremely taxing on your CPU, which is what makes it nearly impossible to achieve in games with modern technology. Some advances have been made through pre-rendering parts of the scene’s occlusion, like the occlusion caused by your character’s model and static objects in outdoor scenes, or by separating high-frequency, detailed ambient occlusion for objects close to your character from low-frequency ambient occlusion on distant objects, but we are still unable to render true ambient occlusion in real time… So for now we’ll have to deal with the approximations… First world problem, right?

 

It sounds like you're referring to ray-tracing here but you actually haven't actually talked about what it is, only given an (a shitty one at that) example of were it's used. It's as if the source of this info has done the same... and you just don't know any better :P

Not to try and insult you but it's insulting me.

export PS1='\[\033[1;30m\]┌╼ \[\033[1;32m\]\u@\h\[\033[1;30m\] ╾╼ \[\033[0;34m\]\w\[\033[0;36m\]\n\[\033[1;30m\]└╼ \[\033[1;37m\]'


"All your threads are belong to /dev/null"


| 80's Terminal Keyboard Conversion | $5 Graphics Card Silence Mod Tutorial | 485KH/s R9 270X | The Smallest Ethernet Cable | Ass Pennies | My Screenfetch |

Link to comment
Share on other sites

Link to post
Share on other sites

It sounds like you're referring to ray-tracing here but you actually haven't actually talked about what it is, only given an (a shitty one at that) example of were it's used. It's as if the source of this info has done the same... and you just don't know any better :P

Not to try and insult you but it's insulting me.

As I mentioned in my original post, I have no experience with 3D graphics or rendering whatsoever so yes, I only know what the sources I found online have told me about the subject. This thread is the first time I have seen ray-tracing mentioned at all. No need to be rude!

Not sure how it's insulting to you, but thanks for the info. I'll ask Ed to make a text note of it in the video.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×