Lesson 6 - prime directive

From Bo3b's School for Shaderhackers
Revision as of 22:10, 20 September 2014 by Bo3b admin (Talk | contribs)

Jump to: navigation, search

Summary

Now it's time to talk about how stereo 3D is created, and the math behind it.


Level of difficulty: Easy
Time required: 30 minutes

Video Walkthrough on YouTube, pt 1 ... Video Walkthrough direct download link, pt 1
Video Walkthrough on YouTube, pt 2 ... Video Walkthrough direct download link, pt 2

Objective

Review and understand the principles behind stereoscopy.
Learn about the prime directive formula, and how to apply it.

Quiz

??



After we've found a broken shader, we want to disable or fix them. We can't always do the easiest fix though, and this is where ..


We'll step back into The Ball for a minute to get a first glimpse of the 3D formula.

  • Fix Lava effect, not just disable it.
    1. Lava in The Ball is perfectly usable now, but we saw the Unreal fix earlier.
    2. Unreal fix did not function, but we can make it work, using HelixMod inputs.
    3. Edit shader file to use HelixMod stereo texture, instead of game based one.
    4. Fixed in 3D, not just disabling a piece of it.



The best background for how 3D works is a presentation from NVidia for GTC2010.

http://www.nvidia.com/content/GTC-2010/pdfs/2010_GTC2010.pdf

It seems like everyone in this class is going to have a reasonably good idea for the basic principles of stereoscopy, so I'm not going to go into those basics. It would still be worth reading this paper for a refresher and to get the terminology that NVidia uses.


  • Experiment on lava shaders.
    1. Inspect and experiment on lava in PS.
    2. In pixel shader, try changing each texld to invisible.
    3. Those don't work, look next at the input section with interesting stereo fix.
    4. See that v1 is an input location.
    5. Experiment by changing v1 to null.
    6. Fix lava by killing one texture instead of the entire shader.
    7. optional: Fix the lava from the VertexShader output side, where v1 is created.

With that background, let's go back to the Lava, but fix it from the VertexShader this time.

The


  • Fix Lava effect using the prime directive.
    1. Run TheBall, and load up a Lava level.
    2. Shader hunt for the VertexShader this time. Note the non-obvious shader makes it all dark.
    3. Exit out and move the found shader to ShaderOverride.
    4. Edit the shader

Quiz: Go to the end of the demo, and fix the broken water using the prime directive.

  • Fix the water shader at the last level.
    1. Play through to the giant worm at the end, it's not far.
    2. See the water has double-imaging like the water in the hall earlier.
    3. Find the shader for the water effect.
    4. Disable it. Note that it's really not good enough disabled.
    5. Experiment with it to fix it to where it's acceptable.
    6. Save a screenshot to your personal page.