Shading for buildings in a city

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  04 April 2017
Shading for buildings in a city

Hi, I'm working on a flythrough animation for a city I've modeled in Maya and textured in Mari. The way i thought I will have to shade it is a layered texture, which links to 1 shader for windows and another for the building itself. The shaders will be distinguished by an alpha map which I'll paint in Mari. The above is necessary as I have 1 piece of geometry per building and the windows and building parts often share faces in the model. (so i can't simply assign a shader to the faces that have windows - ie: the windows are painted and not actual geometry)

The problem is I will essentially be creating 3 shaders per building and the numbers of shaders will quickly add up considering I'm making a city, Is there another way to do this?

  04 April 2017

You actually do NOT need to have different shaders for each part of an object (say windows, wall). You can get the same look of multiple materials using a single one. I've done this technique using MARI. Instead of creating an alpha to layer materials you have to paint each of the inputs of the shader thinking as if it was multiple shaders from the beginning. Let me give you and example to see if I can explain myself.

Lets say you want to create a shader that acts both as crystal for the window and as bricks for the wall:
-In the diffuse color you should paint black the parts it will be a crystal, and paint brick texture the parts it will be brick.
-In the specular/reflection you should paint a white value to the parts it will be crystal, and a less specular value to the zones it will behave as bricks.
-In the refraction you should paint a white value that gives refraction for the crystal, and a black value to the parts it will be bricks to make it opaque.

Think about it, with a shader you can create every kind of look, why should you create various shaders? just using correctly painted maps for each input will be enough to achieve exactly the same look. (with the exception if you want to use specific shaders like SSS that usually are a different shader i 3D rendering softwares).

I hope I explained myself.

Alan Monroig (VFX and 3D Artist)
  04 April 2017

Thanks for the answer! I thought of that but my problem was that you often need to tweak the shader in the end, say to make the metallic parts look more metallic, windows reflective and the concrete less so, etc.

While I think I would be able to do it all in Mari, but trying to make small changes to that 1 shader will then affect all parts (the windows, the actual building etc). Is it then feasible to use only 1 shader?

  04 April 2017
Yes.. that is the disadvantage, when you want to keep tweaking details. But if you try to keep your shader physically correct then you wonīt be needing to make much adjustments. When I have to make tweaks to the already baked MARI maps I use Photoshop and tweak the images there, the workflow is a bit slower than adjusting a slider directly in Maya. I donīt know any other way to avoid using multiple shaders. Why are you worried about the number of shaders? I assume if it is a city you can create instances of buildings sharing the same shaders, right?
Alan Monroig (VFX and 3D Artist)
  04 April 2017
Thanks for the advice! I was just worried cause I have a lot of unique buildings and assigning multiple shaders to each seemed a bit inefficient. But, I'll take your advice and try finishing the majority of work in Mari.

reply share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright Đ2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 09:50 AM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.