Sunday, October 12, 2014

Previewing a new Material Presets Manager for mGo! - The Materialiser

It's been too long between updates. Things have been really busy lately and I've needed some rest, but I'm at the point where I'm ready to jump into it again. Looking over the blog I realize it's deviated a bit from the original intention- which was talking about materials and shading networks and building up a resource of techniques- and has instead become a kind of dev blog for the couple of python projects I am involved with. I'm not sure what to do about that just yet.

Today though, I will atleast try to merge those two things by previewing a new feature to mGo!, which I've dubbed 'The Materialiser'. This new functionality will allow you to save and load material presets from inside Mari, and of course is designed to work with Antonio's production based OpenGl shaders. When importing a preset, the script will read the shader type and from there a new shader will be created and every attribute set. In this way you can quickly get up and running with materials in Mari by having quick and easy access to these presets. When saving, you'll be able to sort your custom materials within categories, based on shader type or whatever you wish, and we'll include a bunch of presets with the release.

A feature which could potentially really help Mari artists is an RGB values to New Channel feature, which I've been trialing the past couple of days. This would take any attributes in the material preset which were represented as RGB values, eg- the specular colour of a gold material or the gloss value for a matt plastic, and recreate those values inside new channels by adding a constant colour layer inside of them. From there, the new layer would serve as a reference or guide - you'd have a base colour or greyscale value to work from as you built up textural variety around those values. It seems like this would be quite useful.

While I'm working on this stuff, Antonio is putting the finishing touches on a new system which will allow blended shader and falloff shader support in mGo! We'll transfer this system over to the Materialiser soon, so you'll be able to easily load up a 'carpaint with decals' blended shader preset if you wanted- and output the whole network directly to Maya once textured. Lots of interesting potential there.

Tuesday, April 8, 2014

Mari Custom Shaders Project Update

mGo! Exporter

We've recieved a lot of great feedback from Mari users about the Custom Shaders project. If you haven't caught up on the latest videos, Antonio has posted to Vimeo some demonstrations here, here, and here. Needless to say, we'll be pushing things further with new ideas- we're passionate about the project and are looking forward to seeing things evolve.

For now, I'd just like to go through a couple current features of the exporter, which haven't been covered in the videos. First to mention is that the exporter supports shader connections to Maya linked to multiple objects. So for example- if you have a head object, and then some eyes as a separate object in Mari, you can export textures and shader attributes for the head, and then the eyes, and update those shaders and textures specific to each of those objects whenever you want in a back and forth manner.

Second (and this is obviously a small feature) is the texture filter options menu in the Mari exporter UI. This lets you select amongst a small set of options related to the filter settings in Maya's filenode. The default setting 'Quadratic' blurs textures heavily and it's a pet peeve of mine to always go into that setting and turn filtering to 'Off'. 'Quadratic' and 'Off' plus another option, 'Animation' (Quadratic filtering with a reduced filter of .1 from the default 1) are the three available choices for now.

Tuesday, February 11, 2014

Preview of 'Mari Go!' - And some Good News about LookDev in Mari

The Mari to Maya bridge is coming along and recently there have been some exciting developments which have impacted the project in a positive way, allowing it to be a much more useful tool than I'd originally planned. It's now being integrated into a larger project with a bigger vision- the central idea or tool being the development of some fantastic new custom shaders for Mari. These shaders are being designed (by Antonio NetoMiguel A Santiago Jr and Nicholas Breslow) as accurate representations of existing architectural/monolithic shaders used in various 3d renderers, such as Arnold, Vray and Mental Ray, and will allow artists working in Mari to get a much better sense of how their texture maps are going to look in render.

mia_material replicated in Mari (by Nicholas Breslow)

Once the user is happy with how things are looking inside Mari, all textures and shader parameters set within the custom shader will translate 1:1 over to Maya/Softimage, enabling a very quick and simple way to get texture assets out of Mari and into your 3d package, ready for a test render.

Check out the 'Mari Custom Shaders' project on the Paintmore forum, here.

Sunday, December 29, 2013

Creating a 'Gummi' type Thickness Shader (Part 1)

Thickness pass (values inverted from render) - Mental Ray

Some time ago I figured out it's possible to make a serviceable 'thickness' or 'gummi' type compositing/utility shader in Vray using the Vray Mtl and it's 'Fog' parameter. At my current workplace we've used in the past a 3rd party shader from Binary Alchemy (the RayLength shader I believe), in order to compliment subsurface scattering at the compositing stage via a thickness pass. This was explained to me by my boss at the time as a dirty trick, which nevertheless had the desired effect of making our CG food look more 'foodlike' and appetising. It's a strange but potentially useful technique, which I'll cover in a later post. For now let's just focus on making the shader. The basic idea is also translatable to a MR mia_material version, using the 'Max Distance' instead of the Vray 'Fog' parameters.

Basically, a thickness shader is one which is able to approximate the interior thickness of an object. A thickness pass would describe in greyscale values the relative thickness of something, ie- whiter pixels representing thicker areas and darker pixels thinner areas. As you can see in the video above, the dragon's tail, tip of the tongue, horns etc, are all darker in colour while the belly, legs and head are the thickest, lightest areas. When setting up the shader, we will need to invert these values however, and then re-invert back in our compositing package later on.

Setting up the shader/pass...

Saturday, December 28, 2013

Create your own XSI styled Maya Viewport Render Tool

One Softimage feature which I've felt was sorely lacking in Maya (apart from ICE of course) is the awesome interactive viewport renderer. This thing is super functional- you can quickly via shortcut make a little region render in full persp view to see how one little aspect of your scene is looking, or drag a rectangle over everything for a full render without needing to open up the render view and close it back down again. The benefit is that it doesn't interrupt you by taking you out of your normal working view. Going back to Maya and dealing with the render view panel feels really unintegrated and clumsy by comparison.

So how happy was I when I saw that someone over at Therenderblog has developed a Softimage style viewport render tool for Maya, which theoretically will work with any renderer of your choice and will help educate you about scripting Python tools in Maya to boot?

Pretty happy.

Saturday, December 14, 2013

Thinking 'bout Mari

Mariya/Gomaya design concept.
There has to be a better name for this thing

This is currently just concepting an idea. I've been inspired recently by Dave Girard's Mari Me script for Maya- I thought it might be fun to see how Python works in Mari and started wondering about a Texture Robot type script which works across Mari and Maya, sending out the locations of flattened channels to Maya to be hooked into shading networks, a la Texture Robot.

It looks a lot like Texture Robot right now. The main design difference is in linking the various shader inputs to existing Mari channels, rather than filenames in a directory. Again, you'd select the shader type appropriate to the renderer you're using. UDIM support will need to be a feature.

Early days.


Tuesday, June 18, 2013

Texture Robot - Version 1.2.0

TR - 1200

I wanted to get a new version of TR out before going overseas, so here it is. The main new feature is a store current config button (top left), which will save you from having to re set things up the way you like them everytime the script is run. The configuration file stores all the suffixes, file extensions, checkbox options and currently selected shader type.

Another new addition is Ptex support (currently only available with mia_mat and Blinn in TR as I ran out of time for Vray. Arnold doesn't support Ptex in Maya yet). Ptex is not a file format I'm very familiar with, but I thought I should address it as you can't load in ptextures with normal file nodes while using MR or Vray, you need to use special nodes specific to each renderer. Ptex does work with normal file nodes in Viewport 2.0 however, so the Blinn shader option in TR goes that route.

The icing on the cake is a somewhat nice-a-fied UI, with a new info bar at the top of the window for displaying messages.

Oh, and emissive textures now actually go where they're supposed to.  (golf clap...)

Creative Crash has it.

update: version 1.3 available. Fixes bugs, adds stuff