Tag Archive for: Maya

If you’re new to 3D graphics or looking to level up your skills, you’ve come to the right place. PBR materials allow you to create realistic surfaces in your 3D scenes. In this guide, I’ll walk you through the basics, but first,

What are PBR Materials?

PBR stands for Physically Based Rendering. Unlike traditional rendering techniques, PBR materials simulate how light interacts with real-world surfaces. This means your materials will look more accurate and lifelike.

“Hang on, materials and textures are different?!”

PBR materials are basically a collection of textures that are designed to be connected as maps into a Arnold/Redshift/<insert your renderer>StandardMaterial. “Hang on, materials and textures are different?!” Yup, read “Difference between Textures, Shaders, and Materials” for disambiguation.

How to Use PBR Materials:

  • Texture Basics:
    • PBR textures include maps for Base Color, Roughness, Height, Normal, Metallic, and Ambient Occlusion, each defining different material properties.
  • Material Setup:
    • Import and map the texture files onto your model in Blender or Maya, ensuring proper UV unwrapping. Be sure to interpret Base Color as sRGB, and the other maps as RAW data.
  • Connect Maps:
    • Link the maps to corresponding inputs of the Principled BSDF shader: Base Color to Base Color, Roughness to Reflection Roughness, etc.
    • If you need a video guide on connect maps, you can find it here.
  • Specialized Properties / Limitations:
    • Certain real-world material properties cannot be properly mimicked by game engines, hence they are not commonly supported as PBR materials. And we’d need to rely on offline renderers like Arnold or Redshift. Like believable murky liquids, colored glass, sheen etc.
    • Examples of specialized material properties
      • Implement opacity, translucency, and double-sided rendering for realistic leaf materials.
      • Implement thin film for oily, iridescent, or pearlescent materials.
  • Surface Imperfections:
    • Enhance material realism with surface imperfections like smudges, fingerprints, and water droplets, adjusting their blending and strength accordingly.
    • These maps can be layered on to supplement the base PBR material that has been pre-designed.


Using PBR materials is a reliable and predictable way enhance the realism of your 3D projects, and you can find them for free at PolyHaven. With a bit of practice, you’ll be creating realistic materials in no time. For a more detailed guide on doing this Blender, please visit “How to use PBR Textures in Blender”. Also, I’ll write about the common misconceptions of PBR Materials, just to help student-types out a little bit with all the confusing terminology and less intuitive features. Happy rendering, and stay tuned!

A video documentation on how to use the tool.

In this video, I explain some of the time-saving tricks in Maya that I kind very useful for my CGI work. There’s a lot in there that I think can save you some time too. On top of this list, there’s a fairly hard-to-explain MMB trick in the Maya timeline when animating, and that shall be the next video tutorial I’m going to tackle. Meanwhile, enjoy this list and I’ve also detailed them as a image-text tutorial below!

  1. Duplicate with Transform
  2. MMB Main Menu for Last Used Submenu
  3. Quick Expressions in attribute editor
  4. Multiple Attribute Edtors
  5. MMB Drag in Viewport for translation
  6. Repeat last command
  7. Content browser + Remesh + Retopo
  8. Varying speeds in Channelbox + Attribute Editor
  9. Right click on <>
  10. Noob code – Drag MEL to shelf

01 Duplicate with Transform

Quickly create cool shapes with this technique. Also useful for quickly populating a scene.
Select object, press Shift+D, do some transformations (rotate, move, scale), Spam Shift+D.

How does it work? When you press Shift+D, it starts “recording” the transformations you make from your original object, then next time and subsequent times you press Shift+D, it applies those transformations it temporarily stored!

02 MMB Main Menu for Last Used Submenu

Quickly access the last used submenu by MMB click on the main menu item.
Very useful when you like to work without clutter of floating menus, but want quick access.

I personally use this all the time for my Graph Editor. Also, I think it’s high time for the Graph Editor to be shipped with a hotkey by default. Alt+G will be nice!

03 Quick Expressions in Attribute Editor

In valid fields in the expression, type “=” followed by the expression you want. For instance, we can oscillate a rotation of an object by typing “=sin(frame)” in one of the rotation axis channels.

04 Multiple Attribute Editors

Have as many attribute editors as you need by pressing the ‘Copy Tab’ button.
The copied floating ones aren’t context-sensitive, so it’s particularly useful for drag-n-drop UI

05 MMB Drag in Viewport for Translation

This is a little bit of a “Kung Fu”. Select your object, switch to your translation tool (W), hold down Shift, and MMB drag anywhere in the viewport in the general direction of where you want your object to move. It’ll work like magic!

06 Repeat Last Command (G)

As long as it’s a function/command in Maya, you can keep pressing “G” to repeat the last command. Useful for repetitive modelling operations like ring splits and bevels, or anything repetitive actually, look out for repetitive tasks and this will come in handy.

07 Content Browser + Remesh + Retopo

Use the base mesh in the content browser to prototype or block out models. They can quite easily be utilized for cartoony models (where details are selective) and Maya 2022 makes auto topologizing easy with the new remesh and retopo algorithms! Very decent results I must say!

08 Varying Speeds in Channelbox / Attribute Editor

We often want to get minute control when adjusting values of each attribute. In the channelbox, simply hold down Ctrl, Nothing, Shift, for slow, medium and fast respectively. In the Attribute Editor, hold down Ctrl, and scrub in the input field with your LMB, MMB, RMB for slow, medium and fast respectively. Remember, “Hold Ctrl for Control!”

09 Right Click on <>

When you’ve a bunch of modelling or deformation history on your geometry, you’d have many tabs on your Attribute Editor. The material attributes are usually placed at the end of this stack and instead of fast-clicking the “>” button to reach the end, you can simply right click on those buttons and choose the node you’re looking for!

10 Noob Code

Maya records everything you do in the Script Editor. Simply copy and paste the relevant commands into the MEL input editor, select the code block and press Ctrl+Enter to test the code. If it works, you can drag this bunch of code onto your custom shelf button. Masterful!

Developed this iridescent glass shader in Maya / Redshift based on IG @odddough ‘s request at work.

  1. Start with the Redshift “Glass” present.
  2. Create a RS Fresnel and remap its values into rainbow hues.
  3. Optionally, if you’ve used MASH Color to have varying colorSet values for each part of your geometry like this toy gun example, you can add a Redshift Color Correction to this resulting information, remap colorSet to 0 to 360 and use it to drive the hue variance of the Color Correction node.
  4. Feed the resulting information into the refraction color of the Glass Material
  5. Increase the Dispersion Abbe number to 1 or 30 to taste, it creates iridescent refraction
  6. Enjoy the results!
An example of what this material can achieve.
The lighting setup for this example render. Some volumetric atmosphere and a couple cylindrical mesh lights with volume contribution
Iridescent Glass Material Shading Network
Screenshot of my screen as I was working on this material. While the render at the start of this post has some simple compositing, from this screen shot, we can tell that it looks pretty good right off the bat, without any comp work.

I’ve decided to write my own 3D software biography having watched Entagma’s nerd rant on their software biography. It’s interesting, at least to me, that there are many interesting ways of entry into this beautiful world of 3D computer graphics. I’ll also leave my opinions and impressions of the software based on what I last used, tested or researched on them. You’re most welcome to disagree with my opinions and impressions and I’m interested to hear your point of view. Likely, the differences in opinion will stem from the fact that we use the software for different purposes. Still, happy to hear from you!

SoftwareTypeFirst UsedLast UsedOpinions and Last impressions
TrueSpaceFull DCC20032004My first 3D software, it had a raytracer and floating shelfs. It was cool.
Swift3DModelling20042005A very friendly looking 3D software I used to get 3D designs into Flash and onto websites. Did I just mention Flash? That’s probably indicative of how irrelevant this software is
LightWave 3DFull DCC20052005It was good while it lasted, had some nice modelling workflows.
Rhinoceros 3DModelling20052005Did some modelling in there once to realise that the whole software was meant more for actual production/fabrication modelling than for design/animation purposes.
Mental RayRenderer20052016Produces photo-realistic results had quite a messing shading module, but it works.
3ds MaxFull DCC20072009Great for architechtural visualization but I suspect it’s largely due to the legacy library of presets and materials built over the years
Wings 3DModelling20072007A free poly-modelling toolkit that looked promising back in day, but there’s Blender now, so…
MayaFull DCC20082021The go-to for character animation but the development of new tools is slow and often disjointed
ZbrushModelling20082021The go-to for sculpting, not so great for hard-surface stuff, people keep complaining about its strange navigation from other 3D softwares and I agree, but I’ve also developed the intuition for it in 2 weeks so it’s not that big of a deal
MudboxModelling20092015A Zbrush with less strange navigation, but didn’t have Dynamesh or powerful retopologizing tools so it lost the race to Zbrush, but got shoved into Maya as a sculpting module. Great move.
MotionbuilderMotion Capture20092009Used it for optical motion capture and clean up, but now we use inertia based mocap and the clean up module is somewhat half implemented directly into Maya, so it’s not so relevant as of 2021
ModoModelling20102010Used to be extremely hyped for it’s modelling prowess, can’t say the same now
SketchUpModelling20112011It was not very flexible or intuitive, but then again, I last used it in 2011
NukeCompositing20132021The go-to for compositing, I just wish it’s more affordable
SoftimageFull DCC20152016It was very similar to Maya, except slightly more powerful, slightly less popular, so I can understand why it was acquired and killed
Cinema 4DFull DCC20172017The go-to for 3D motion graphics, useful for a single designer environments
ZmodellerModelling20172017When you want to poly-model hard surfaces in Zbrush. If you come from a more “traditional” software like Maya, it doesn’t offer much more than those legacy poly-modelling tools.
Arnold CPURenderer20172019Very powerful and intuitive shading module, beautiful and natural-looking details and colors, too slow for small studios / freelancers.
V-RayRenderer20172018Shading module is very similar to mental ray so I felt at home when transiting to V-Ray, except that the IPR was actually interactive. Of course, then GPU rendering came along.
FusionCompositing20182018Tried it once, not as intuitive as Nuke, but a much more cost-effective
BlenderFull DCC20182021The go-to for getting started in 3D because it’s free and capable, and the development is exciting and fun
MixamoMotion Capture20182021Superb library for motion capture clips. I have found it largely largely difficult to implement library motion clips into real-world projects because we usually need customized action and there’s still quite a bit of retime and collision fixes to make on top of library clips.
V-Ray GPURenderer20182019Very capable and decently fast renderer with nice details and colors. SSS is relatively slow, but usable.
HoudiniFull DCC20192021The go-to for VFX and procedural animation, steep learning curve for people unfamiliar with node-based workflows
Arnold GPURenderer20192021Either broken or very unstable the last I tried in early 2021. The CPU on the other hand still is beautiful.
MantraRenderer20192019Houdini’s built-in renderer. The time to first pixel can go up to a minute for a simple scene, while renderers like Redshift is a couple of seconds, so I find this renderer not very usuable in a small-studio design oriented production environment
RedshiftRenderer20192021Extremely capable and blazing fast renderer with decent details and colors. Perfect for small studios.
ResolveColoring20202021The go-to for coloring / grading
3DCoatModelling20202020Don’t know much about it except I tried their auto-retopologizing tool. Pretty good results, but Exoside’s Quadremesher results were still better
CyclesRenderer20212021Nice production renderer with speeds comparable to other paid renderers. It’s mind-blowing
EeveeRenderer20212021Nice volume lights, great for mood and concepts
Daz StudioGeneratorHaven’t used it but it looks like a character generator for fantasy / game-ish characters
SpeedtreeGeneratorThe go-to for 3D trees
ClarisseRendererLearnt of this software in mid-2021, and I find it interesting, but that’s about it. Sounds like a little Solaris of sorts which I find mildly cumbersome but I acknowledge its ability to handle large amounts of geometry efficiently.
OctaneRendererBack when I was using Mental Ray and V-Ray, Octane looked extremely tempting
RenderMan XPURendererXPU delivers identical pixels from both CPUs and GPUs, but it’s on an indefinitely release date as of mid 2021, so who knows if it’s actually practical?

DCC Wars

Here are some statements I hear all too often:

“Maya is the best 3D package. You cannot find any other 3D package that can do the broad spectrum of CGI work it can do for its price point”

“Cinema4D is so much easier to pick up than all the other softwares. Everybody should be using C4D”

“Houdini is the end game 3D software, don’t bother with anything else”

– passionate 3D people

Yes, I’m sure the software you use is the best 3D software…

for you! It could very well be the worst software for others!

We chose it because it fits our production/creative objectives. We then need to acknowledge that not all 3D production artists/companies do the same type of work. Some companies work on hyper realistic creatures, others work with 3D typography and simple geometric forms, while others specialize in heavy destruction VFX work.

So the question isn’t so much about which is the absolute best 3D software, but what are your 3D production/creative needs? That determines which DCC you pick!

I’ll write about my personal experience using these various softwares, and update this space!

Good luck and happy creating!

A quick and dirty way to load an .obj sequence in Maya and have each geometry’s visibility automatically keyed to show up at the frame they are supposed to show up. Wrote this script as an experiment, but don’t have time to make a UI, so I just commented on the two variables to change accordingly to your setup. Cheers!

Update [10 Feb 2020]: Made sure the import command explicitly points to the specified folder directory (Thanks Cody for pointing out that the script didn’t work for you!)

global proc rf_objSeqImport() {
string $folder = "C:/objImport/"; //Change the folder directory to the folder containing your .obj sequence
string $mesh = "Mesh"; //Change the word 'Mesh' to the name of the geometry that would be imported
string $objFiles[] = `getFileList -folder $folder -filespec "*.obj"`;
int $i = 0;
while ((size($objFiles[$i])) > 0){
    print ("Importing " + $objFiles[$i] + "... \n");
    file -import -type "OBJ"  -ignoreVersion -ra true -mergeNamespacesOnClash false -namespace ("objImport" + $i) -options "mo=1"  -pr  -importTimeRange "combine" ($folder + $objFiles[$i]);
    currentTime ($i+1) ; //visible on frame
    setAttr ("objImport" + $i + ":" + $mesh + ".visibility") 1;
    setKeyframe ("objImport" + $i + ":" + $mesh + ".v");
    currentTime $i ; //invisible before frame
    setAttr ("objImport" + $i + ":" + $mesh + ".visibility") 0;
    setKeyframe ("objImport" + $i + ":" + $mesh + ".v");
    currentTime ($i+2) ; //invisible after frame
    setAttr ("objImport" + $i + ":" + $mesh + ".visibility") 0; 
    setKeyframe ("objImport" + $i + ":" + $mesh + ".v");

Tag Archive for: Maya