Physically Based Shader Development for Unity 2017 Download PDF, EPUB - Programming Ebook


Download Programming Ebook

Friday, December 29, 2017

Physically Based Shader Development for Unity 2017 Download PDF, EPUB

Physically Based Shader Development for Unity 2017
Physically Based Shader Development for Unity 2017

Book Details 
             Title: Physically Based Shader Development for Unity 2017
         Author: Claudia Doppioslash
     Publisher: Apress
    Language: English
        SubjectSwift / Computers & Technology / Programming / Apple Programming
No. of pages: 242
         Format: PDF, EPUB


I assume you currently have this book in your hands (or on your e-reader) because you’re interested in Unity, or you’re interested in physically based shading, or both.

Shaders are cool, as the Shadertoy web site can attest, and Unity is a good tool through which to learn how to write them. Physically Based Shading is also cool, as the last few years’ worth of AAA games can attest, and Unity is again a convenient way to dip in, without having to write your own renderer.

This book will teach you shader development and physically based shading, using Unity as a convenient medium that keeps the effort needed to learn both within sanity thresholds.

Unity Games By Tutorials Make 4 complete unity games from scratch Using C# Ray Wenderlich

Who This Book Is For

I’m going to assume that you, the reader, have some Unity experience, but little or no shader or coding experience. Some programming experience will help, as we’re not going through the absolute basics of dealing with code.

You might be a technical artist, wanting to learn the principles of physically based shading, or maybe learn how to use code for shader programming, rather than node-based interfaces.

You might be a game programmer, wanting to learn how to get started with shader programming, or wanting to implement some technique from physically based shading.

In both cases, this book should work for you. Beware that the book includes some math, but understanding it is not strictly necessary. You’ll get to the end fine, even if you skip the math, but you’ll learn less.

What You’ll Learn

The following topics are covered in this book.
  • Shader development in Unity
  • Graphics pipeline
  • Writing Unlit shaders
  • Writing Surface shaders
  • Physically Based Shading theory
  • How to research custom lighting models
  • How to implement physically based custom lighting models in Unity
  • The state of the art in custom lighting models
  • How to hook your custom lighting model implementation into the Unity Standard shader functionality
  • How to implement advanced techniques, such as translucency
  • Debugging shaders
  • Advice on writing shaders that are easy for artists to use
  • How to keep up with the ever-progressing rendering advancements

What Do You Need to Use This Book

You need a PC running any version of Unity between 5.6 and 2017.2. Outside of that optimal version range, higher version numbers might break the code, and going too far back (before Unity 5) will definitely break the code.

How This Book Is Organized

This book is divided in three parts and 18 chapters. It’s meant to be read in sequence, but if you know some parts already, you can skip ahead.

If you’re a seasoned shader developer, looking for knowledge specific to Unity, you might want to skim Chapter and then skip to Chapter 5.

If you are only interested in physically based shading and are already handy with graphics programming and Unity shader development, you should skim Chapter and then skip to Chapter 8.

If you’re a programmer but haven’t done shader development, I recommend reading the whole book in sequence.

If you’re a technical artist and have never written a line of shader code (you may be used to node editors), read the book in order and pay particular attention to Chapter 2, as it’ll get you started in writing shader code in Unity.

Part I: Introduction to Shaders in Unity

This first part will get you from shader newbie to having working knowledge of the important graphics programming concepts and being handy at writing non-physically based shaders.

Chapter 1: How Shader Development Works

This chapter covers many foundational concepts about rendering and graphics programming. You’ll get an overview of what shaders are, how the graphics pipeline works, the process of rendering, the behavior of light, and shader and render types.

Chapter 2: Your First Unity Shader

In this chapter, you’ll get started writing shaders in Unity. It covers project setup, making a scene, the syntax,
and the parts that compose a Unity shader. We’re going to write a simple Unlit, monochrome shader.

Chapter 3: The Graphics Pipeline

This chapters explains how the graphics pipeline works, and how different parts of a shader hook into it,
what data is sent in it, how it’s processed, and some things you can do with it. xx

Chapter 4: Transforming Coordinate Spaces

Coordinate spaces are a necessary, but often confusing, part of the graphics pipeline. This chapter presents and explains each of the commonly used coordinate spaces, where they are used in the graphics pipeline, and what tools Unity gives to transform between them.

Chapter 5: Your First Unity Lighting Shader

This chapter introduces some common lighting concepts (such as the role of the angle of incidence) and approximations (such as diffuse and specular), and how to implement them within an Unlit shader. By the end of the chapter, you’ll have written your first custom lighting shader.

Chapter 6: Specular Implementation

Continuing from the previous chapter, we’re going to implement a specular approximation to complete the diffuse one from the previous chapter. This chapter also explains how to support more than one light within an Unlit shader, a practical use of ShaderLab passes.
Chapter 7: Surface Shaders

So far we’re only used Unlit shaders, because they’re more straightforward and they don’t hide where
the graphics pipeline comes in contact with shaders. But they can be quite verbose, so this chapter introduces Surface shaders and explains how they can save you quite a bit of time and typing. We’re going to reimplement the Unlit shader from the two previous chapters, in a surface shader with a custom lighting function.

Part II: Physically Based Shading

This part is entirely dedicated to physically based shading, from theory to implementation. Now that you have experience implementing shaders in Unity and you have the solid basics in how rendering works, you can focus your attention completely on writing shaders according to physics principles.

Chapter 8: What Is Physically Based Shading?

This chapter presents microfacet theory and corrects some simplifications we had made in explaining how light works in Chapter 1. We go through Fresnel reflectance, index of refraction, as well as how we can measure light, and represent the behavior of light hitting a material with a function. The chapter explains what makes a lighting model physically based and explains every part of the rendering equation.

Chapter 9: Making a Shader Physically Based

To put into practice the concepts of physically based shading immediately, we take our custom lighting surface shader from Chapter 7 and we make it conform to physically based requirements.

Chapter 10: Post-Processing Effects

Post-processing is a necessary part of HDR rendering, which is itself necessary for physically based shading. While the post-process effects stack that Unity offers through the Asset Store is powerful, you’ll still need
to understand and occasionally be able to implement post effects, and that’s what this chapter covers. The chapter also includes an overview of the Unity post-processing stack version 1 and version 2.

Chapter 11: BRDFs Who’s Who

It’s time to get to know common lighting functions by name and based on what they look like. This chapter presents BRDF Explorer, which is an excellent program developed by Disney Research to develop and analyze custom lighting functions.

Chapter 12: Implementing a BRDF

Now that you know a few physically based lighting functions, it’s time to implement one or two. This chapter covers how to gather information and implement a physically based BRDF. We’ll implement the CookTorrance specular and the DisneyBRDF diffuse.

Chapter 13: Hooking into the Standard Shader

This chapter takes our implemented lighting function from the last chapter and explains how to hack it into the Unity standard shader infrastructure, which is going to give you reflections, global illumination, and more, for almost free.

Chapter 14: Implementing Advanced Techniques

Having gone through everything about implementing a BRDF, this chapter explains how to add light phenomena that cannot be described by BRDFs, such as translucency. It also explains the complex mechanisms that cause reflection probes to work.

Part III: Shader Development Advice

Now that you know all the essentials of implementing custom lighting systems in Unity, this part expounds a bit about the art of it—debugging, writing good code, and making sure the artists won’t snub your shaders.

Chapter 15: Making Shaders Artists Will Use

There are many ways that programmers make shaders that are too complex for artists to use, without even realizing it. This chapter lists the top five shader usability mistakes that people make and includes some solutions.

Chapter 16: Complexity and Ubershaders

After Chapter 13, you’ve had quite a bit of exposure about what complexity looks like in a shader system. This chapter explains why it gets to that, and why it’s the still the best solution we have, with the current shading languages.

Chapter 17: When Shading Goes Wrong

There is no such thing as writing a shader right on the first try. Hence, you need to know how to track bugs and find problems. This chapter is about profiling and debugging shaders, and the many tools you can use to do that.

Chapter 18: Keeping Up with the Industry

The game and movie industries never sleep; they keep progressing year after year. After having read the entire book, you’ll be in a good position to deepen your knowledge by going straight into SIGGRAPH papers. This chapter lists many ways you can keep abreast of the latest developments in rendering and shader development.

No comments:

Post a Comment