Original Source: Techncial Artist Bootcamp Shaders 101, GDC 2016

by Ben Cloward, CG Supervisor, Bioware


https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b62faf8a-3f09-448f-ae41-09b651370b05/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3d5cf6ac-e534-4119-aa6d-b217d6c7d41b/Untitled.png

If you're a technical artist, people only notice your work if it's broken.

If you're a technical artist, people only notice your work if it's broken.

Technical Tidbit: There is a divide ocurring between shader parts that handle lighting and shader parts that handle the surface properties. Surface properties happen before the G-Buffer and after the buffer comes deferred lighting.

Technical Tidbit: There is a divide ocurring between shader parts that handle lighting and shader parts that handle the surface properties. Surface properties happen before the G-Buffer and after the buffer comes deferred lighting.

Do not mix Light Properties with Surface Properties or vice versa in shaders. Don't take something created in a night time scene into a daylight desert scene. When authoring materials use your neutral lighting environment.

Do not mix Light Properties with Surface Properties or vice versa in shaders. Don't take something created in a night time scene into a daylight desert scene. When authoring materials use your neutral lighting environment.

What is my container and how many things fit into that container.

What is my container and how many things fit into that container.

How To Achieve Distortion

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3e7ca1ca-40af-4db0-bc09-5d2dd06de68b/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ce6e0b52-47bd-4d4e-bc3c-0fb5ea051e55/Untitled.png

Take your texture coordinates, sample them in the texture, then pass to the output.

Take your texture coordinates, sample them in the texture, then pass to the output.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bce3931b-0e75-4440-ba2d-a3ed35ec8f73/Untitled.png

The multiply node can be used to scale texture coordinates.

The multiply node can be used to scale texture coordinates.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/68148f36-6779-4950-bdca-51835d82e5e1/Untitled.png

The texture will scroll (in this case along the X dimension). Adding scrolls.

The texture will scroll (in this case along the X dimension). Adding scrolls.

As Time passes the value gets larger.

As Time passes the value gets larger.

Time increases its value for every frame. In the case above the offset will grow larger for each successive frame.

Time increases its value for every frame. In the case above the offset will grow larger for each successive frame.

Multiply Time by a constant value (0.5), slowing it down.

Multiply Time by a constant value (0.5), slowing it down.

This texture is channel packed. The Append node allows you to put two values together and turn it into a Float2 value.

This texture is channel packed. The Append node allows you to put two values together and turn it into a Float2 value.