Outerra forum

Outerra Engine => Technology => Topic started by: Luishi5k0 on March 01, 2012, 11:35:37 pm

Title: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Luishi5k0 on March 01, 2012, 11:35:37 pm
Hello there. I had some questions that myself and I'm sure other people that will be doing 3D work will want answered. What sort of maps, shaders, and lighting will be implemented into the engine?

I would assume a bump/ normal map will be used as that is almost a standard now days. As for other maps that I feel would be nice to have, will there be:

Specular?
Some sort of reflection map where we may designate windows and reflective surfaces?
Glow map (where we designate things that would glow, such as signs or windows)? I think glowing windows on a city would look fantastic at night.
Any other features/ maps that I forgot.

As for effects, will there be particles (and will they be soft/z-feathered)?
Sun shafts?
Ambient Occlusion?
Will the reflections be based off of env maps or ray traced? (I think GTA IV ENB Series had the best reflections of any game).
Wet maps/ shaders so when it rains it will create wet surfaces?

Bloom?
HDR?
Sun flare?
Parallax Mapping?
Motion Blur?

As for lights, will there ever be support for other lights other than the sun?

How is LOD handled?

Any other info I missed.

Thank you very much for the info and the engine, I can't wait to see it continue to progress.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Luishi5k0 on March 07, 2012, 08:49:07 pm
Okay, since this thread has a lot of views and no replies, I will make it informative on what these things ARE to those of you who don't know.

A map (also known as texture) is an image that is a applied to a 3D model which changes the way it looks. I will start with the two basic ones. Diffuse and normal (bump) map. Diffuse is the color, and as the name implies, a bump map adds bumps to to the texture. A bump map does not change geometry, it only changes the way light reacts when hitting the texture. Here is an example:
(http://media.moddb.com/images/mods/1/12/11263/Untitled-2_copy.jpg)

Next we have the specular map, it changes the way light shines on a surface without actually affecting the depth of it. It's used mostly for scratches and other blemishes. Image:
(http://www.tweakguides.com/images/Specular.gif)

Continuing on, we have have glowing materials. Basically it designates what appears to be glowing. Deus Ex HR had the best use of glow in my opinion.
(http://tctechcrunch2011.files.wordpress.com/2011/09/dxhr-2011-09-07-15-46-49-26.jpg)

Next we have reflections. For these, there are two main types. The most popular is using an environment map to create a reflection. This is essentially a texture that will reflect off of a model. It is often favored because it is not too hardware intensive. The downside is you do NOT get accurate reflections of your surroundings.

The real man way to do reflections is to ray-trace them, giving you perfect reflections as can be seen in GTA IV ENB series. The following are all IN GAME screenshots, in real time.
(http://fc09.deviantart.net/fs70/i/2011/349/c/3/gta_4_enb_mod___dark64_by_dark6464-d4j5y8p.jpg)
(http://img-fotki.yandex.ru/get/6201/35203025.18/0_6b342_972e4557_XL.jpg)
(http://img-fotki.yandex.ru/get/6201/130714258.2/0_791ed_b8b167ad_XL.jpg)

After you've gone and changed your underwear after those, we will continue on to shader effects. We'll start with a popular one lately, which is the sun shaft effect. I'll explain it with a picture:
(http://www.codermind.com/files/crysis-view-mountains-sun-fog.jpg)

Next we have good o'l depth of field. Here is the effect from Cryengine 3 (dx11).
(http://www.mycrysis.com/sites/default/files/video_thumbs/898/dof_dx11_circular.jpg)

Then we have parallax mapping, which is like bump mapping except more extreme in the sense that it actually occludes (blocks out) other pixels and 'can' cast shadows. Here is an example:
(http://graphics.cs.brown.edu/games/SteepParallax/compare.jpg)

Tessellation is also similar, but this actually adds geometry to the scene via DX11 hardware. It is good for LOD and is not too bad of a performance hit considering how many more polys it adds. I believe Outerra does something similar, but not on DX11. This is still controlled by a map for depth. Here is the comparison screenshots:
(http://www.extrahardware.cz/files/images/novinky/2009/10rijen/dx11/Unigine-DirectX-11-Tessellation-l.jpg)
(http://www.extrahardware.cz/files/images/novinky/2009/10rijen/dx11/Unigine-DirectX-11-Tessellation-h.jpg)

For Ambient Occlusion, it checks to see how close things are together and then adds shadows depending on that. To compare, drag the slider back and forth like a mad man in this link:
http://international.download.nvidia.com/geforce-com/international/comparisons/skyrim-AO-comparison-6.html (http://international.download.nvidia.com/geforce-com/international/comparisons/skyrim-AO-comparison-6.html)

Motion blur is pretty self explanatory, if you don't know what that is... wave your hand in front of your face. Moving on.

Next we have shadows. To me, shadows are probably the 2nd more important thing when it comes to video game graphics. For the most part, shadow maps are used. Which is like a texture in the sense that it checks to see which part of the geometry occludes the light from a given point. Here is a comparison of a shadow map and it's blurred version.
(http://images.gamedev.net/columns/hardcore/softedgeshadow/Comparison.jpg)

The higher resolution your shadow map is, the more detail that is within it. It becomes more important when the shadow moves, because that is where you can really notice the jaggy-ness of them. Here is a comparison.
(http://images.gamedev.net/columns/hardcore/softedgeshadow/Comparison.jpg[img]

What we really want is shadows that blur more as they move further from the object, like in real life. Because I just KNOW you can all read German, here is a good German picture for you to read about the shadows in Stalker CoP.
[img]http://i48.tinypic.com/6tedc8.jpg)

Because I know you all love being wet, I will move on to water comparisons. Here we have normal water that intersects with the coast line (like most games), and then a version of that with a fading edge, giving it a softer look. Here is the result.
(http://www.tweakguides.com/images/ClearSky_13b.jpg)

(http://www.tweakguides.com/images/ClearSky_13a.jpg)

Speaking of being WET, we can't have wetness without wet maps, now can we? Say it starts raining, you'd expect your game to look a little more... moist, wouldn't you? Well Wet surfaces are the solution to your moistness problems. It looks way better in game (I promise).
(http://www.tweakguides.com/images/ClearSky_16b.jpg)
(http://www.tweakguides.com/images/ClearSky_16a.jpg)

Next I would like to ask you a question. Do you prefer your particles to look like ass, or not? If you answered no, this next part is for you. What I'm talking about is soft particles (z-feathered). It's quite simple really, you blur the particle as it intersects with geometry so it doesn't look like it wants to cut everything in half. Here is the splendid comparisons.
(http://cdn.wolfire.com/blog/softparticles/flatcompare.jpg)
(http://cdn.wolfire.com/blog/softparticles/softparticlecompare.jpg)

And finally I will finish off with something that almost no engines have, which is global illumination. Do you notice how in real life, things blocking light do not leave the area behind it completely black? That is because light scatters and bounces off of things. That's why when you have a red room things appear more red. To finish off with the theme here, I will add comparisons... now.
(http://www6.incrysis.com/screenshots/cryengine3_global_illumination_off.jpg)
(http://www6.incrysis.com/screenshots/cryengine3_global_illumination_on.jpg)

Thank you for reading. I will add more as I get  time or think of it.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: mctash on March 08, 2012, 11:32:09 am
I don't have anything to add just thanks for informative post :)
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: ZeosPantera on March 08, 2012, 01:43:54 pm
+1 for the time spent on that post.

Forget anything DirectX like tessellation however since this runs on OpenGL. But that just makes it more exotic in the long run.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: RaikoRaufoss on March 08, 2012, 01:48:12 pm
2+ for the time spent and how informative the post was.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Luishi5k0 on March 14, 2012, 07:36:53 pm
Now we will talk about new AA methods. Currently it looks like Outerra uses FXAA which is the hot new AA technique in town, but it does leave the scene a little blurry. What I think should replace it in Outerra is SMAA. Here is an article with lots of comparison shots:
http://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf (http://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf)

Something else that is worth looking at would be Light Propagation Volumes for Global Illumination. It is the same system that Cryengine 3 uses for GI. Here is a very interesting article on that: http://www6.incrysis.com/Light_Propagation_Volumes.pdf (http://www6.incrysis.com/Light_Propagation_Volumes.pdf)


On a differant note as well: CryEngine 3.
Fort Highness Fly through (http://www.youtube.com/watch?v=6kW2sLuSlgM#ws)

Another:
The Lonely Hall (http://vimeo.com/30897865)

Is your body ready for in engine screen shots?
(http://www6.incrysis.com/screenshots/cryengine3_tom_deerberg_aje6p57ceaeanj6.jpg)

(http://www6.incrysis.com/screenshots/cryengine3_thesickness_6Al2FdXw.jpg)

(http://www6.incrysis.com/screenshots/cryengine3_stallownage_Mountain_Lake_Final_01_04.png)
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Jagerbomber on March 14, 2012, 08:44:44 pm
Perhaps it's because my resolution is a little sub-1080, but I haven't liked some of the new AA methods used now.  They tend to cause more crawling on edges which i don't like.  (I don't remember exactly which abbreviations/methods exactly.  There's so many now.  :P).  I think FXAA is my favorite at 1680x1050 because it seems like the "jaggies" seen with FXAA at 1680x1050 are because of my display's/that resolutions and it's visible pixels.  I'm no expert though.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Luishi5k0 on March 14, 2012, 09:04:53 pm
SMAA is like FXAA but it produces a sharper and more accurate image. See how FXAA blurs it a lot more when compared to the other techniques.
(http://i.cubeupload.com/QoIBr9.png)
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: Jagerbomber on March 14, 2012, 09:19:31 pm
In those pictures, the top MLAA looks the best to me (though it's not in motion).  I don't think it's the best image to judge by though.
Title: Re: INFO - & Types of maps/shaders/effects will the engine will support?
Post by: angrypig on March 15, 2012, 05:45:43 am
Hi guys

I would like to combine FXAA with MSAA 2x in next AA iteration it should improve sub-pixel detail, but the new FXAA 4.0 implementation should solve a lot of issues and improve sub-pixel detail too. So i am not going to hurry this part at this time.

Some details about upcoming FXAA 4.0:
http://timothylottes.blogspot.com/2011/12/fxaa-40-development-update-stills.html (http://timothylottes.blogspot.com/2011/12/fxaa-40-development-update-stills.html)