Jump to content

Shader Writing and why is so important?


wandersonp

Recommended Posts

Hello everyone,

I know this question is totally stupid, but I still do not know why.

I saw some jobs about shader writing position, and I want to know why this guy is so important to production pipeline.

And my question is, why writing shaders and materials if the 3d app like houdini, maya or max, have a lot of shaders to work in our projects.

What that guy do exactly?

I would like to see some examples.

Thanks

Wanderson

Link to comment
Share on other sites

Ei Wanderson,

The first time that I head about shader writing was in 1992's Jurassic Park while they production team was describing the complexities of the tiranossaurus first scene. Try to imagine how to use a standard phong material to describe the dinosaur skin with its specular, displacement, ao, together with some dust, rain droplets flowing down reacting to the geometry, physics, etc.

Writing down your own shader you can have the exact parameters exposed to the art department. Different than let them try to make a "plastic material" look like a "wet dirty dinosaur skin".

Link to comment
Share on other sites

Well you wouldn't be able to do this with stock shaders now would you:

Davy_Jones.jpg

At the minute I've got my own shaders picking up attributes from sims, which just wouldn't exist in the pre-built shaders. So I guess in it's simplest form, shader writing is important for customizability.

Link to comment
Share on other sites

Hello everyone,

I know this question is totally stupid, but I still do not know why.

I saw some jobs about shader writing position, and I want to know why this guy is so important to production pipeline.

And my question is, why writing shaders and materials if the 3d app like houdini, maya or max, have a lot of shaders to work in our projects.

What that guy do exactly?

I would like to see some examples.

Thanks

Wanderson

Shaders describe/create/define the surface material of the geometry and how light interacts with it. They define what is plastic, skin, metal, glass, or any other surface material, and how they interacts with their environment.

When you look all around you, everything you see, the surface needs to be described through shading in 3-D. It doesn't come for free and nobody has thought of all the combo's. It's impossible to imagine any out of the box shader being able to represent all these different proprieties that are inherent in these materials. There are many physical/scientific properties inherent in each of these that are different between each object, a jelly fish doesn't interact the same as corrugated metal. Just look at the materials on the image ChristianW posted. On top of that shader writers can write in a dozen different languages all depending on the pipeline and render package, from C++ in mental ray, rsl for renderman, vex for houdini, opengl for some games, plus a lot of custom codes/languages.

At some companies these guys are strict coders, or they could be nodal base coders. They usually receive an object from the modeling department and will look develop a material so that it interacts with the environment how they want it to. So one side of the screen will be codes, or nodes, while the other side of the screen has a constantly updating image as the code is modified. They will usually have a reference image up on their screen, or a piece of the physical object in front of them to analyze to make it looks similar too. Depending on the company they could be working on a specific model or on generalized shaders.

When some one is looking for a shader writer specifically they are usually looking for a pure script based coder, but in many studios there is a lot of cross over with this department, from lighting, texturing, look development, and modeling.

-Ben

Link to comment
Share on other sites

Well you wouldn't be able to do this with stock shaders now would you:

Davy_Jones.jpg

I think he would... after some vendor have had a chance to read a bunch of papers, 2-5 years after "Pirates" were on screen, and have made public the technology standing behind that face. Secondly, he would be able to render 1-5 shots perhaps, not 500 of them. Third, he wouldn't have a director standing behind his shoulders asking for more details "kinda around eyes or something...", which - as it just turned out - that built-in shader can't handle. And so on...

Link to comment
Share on other sites

The problem with standard shaders is that they seem to be okay, but they are not appropriate for a complex production. This is not a real problem if you make commercials, beause you can fix a lot in compositing or render some parts with lots of layers.

But in a movie production, you need shaders that are suited for special cases or simply shaders that work.

e.g. in maya with mentalray you have the normal lambert shaders. If you use it for passes rendering you will discover that translucency and diffuse channles are rendered together and not as seperate layers. Other shaders allow subsurface scattering, but they dont have the appropriate outputs.

So if you need something that works for a whole production you will have a lot of cases that need further development. In houdini, you have no choice at all because as soon as you need to load an image and do some color correction on it, like in maya, you have to implement it with some shading nodes. Fortunatly the mantra surface is a really good starting point.

Link to comment
Share on other sites

Guys your explanation are awesome, now I understand the concept behind the shader writing and how is important to production.

Thanks haggi, Symek, LaidlawFX, CristianW, AndZ

No worries. I'd say don't worry about it. Shader writing is complex and there's a lot of other things you have to worry about before you start thinking of creating your own shaders. You can get far with the Mantra Material Shader, learn from the help and have a gander around the nodes (when you know what you're looking for, ie, adding a second layer of spec, which is built in, but not activated on the shader interface). That way you can build up slowly, just getting used to what you want something to look like, rather than the maths behind it. When you're starting to ask more complex questions about how the light is interacting with the surface, then you can start looking at old siggraph papers ;)

I've recently gone to the effort of writing a few of my own shaders for specific situations and now feel happy jumping in and starting from scratch, but it was messing with my head at the beginning.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...