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 Neto, Miguel 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)

POST UPDATED 31/12/2013 - INCLUDES SETTINGS FOR MENTAL RAY MIA_MATERIAL
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.




update:

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.
Changelog

update: version 1.3 available. Fixes bugs, adds stuff
http://www.creativecrash.com/maya/script/texture-robot

Wednesday, June 12, 2013

Texture Robot updated to Version 1.1.0


Just a quick note to say that the Texture Robot script for Maya has moved up the chain to version 1.1.0. I'm getting closer to implementing all of the features I'd originally planned for it, including support for various renderers (Arnold, Vray) via the aiStandard material and the Vray Mtl. There's also support for Maya's blinn, which is useful in a viewport 2.0 viewport environment as you're able to display more types of texture map (including bump and specular) than the other materials. I've been using it a lot lately for quick previews and it works great. Of course, it's nothing compared to what you can do with the new Dx11 shader, which I'll hopefully get around to doing something about for games people in a later version.

There's also been a few added texture slots- Transparency, Cutout Opacity, and Emissive (self illumination/incandescence). I think this covers the most widely used types of texture map that people regularly use. There's SSS to deal with, but again, that's for the future, hopefully not to distant.

The last thing I want to mention is the added 'tooltip' descriptions as you hover over parts of the UI. Most of them just describe the thing itself (browse Texture Directory icon for instance), but if you hover over the texture slot labels on the left hand side, you will get a little message showing you where the texture slot connects into the various shader's parameters. For eg, hovering over the 'Spec Gloss' label will bring up the following:


TR- now with tooltips. Goody


So this is just a way to understand the different terminology across shaders, how the parameters relate to each other and hopefully it can help to clear up any confusion about where each texture slot is going. I used pretty standard names for each slot (specular instead of reflection, as I don't think anybody refers to a specular map as a reflection map, but I could be dead wrong) but just in case, these tooltips are there.

Next feature I'll be working on is a button to save out A custom setup within TR. That means, if you don't like the suffix 'd' for diffuse, but prefer 'c' for colour or something else, you can save your custom suffixes and next time you run the script, it will load your preferences. It should also save out the shader type, file extensions and the other various options. That would be pretty handy I think.

You can get the latest version of Texture Robot here.

Full Changelog.


Friday, May 31, 2013

Texture Robot - Home

DOWNLOAD LINK (ver 1.3.0 - July 27th, 2013)



Version 1.3.0 (July 27, 2013)

* Added Ptex support for Vray material
* Added insert Gamma Nodes option for Linear Workflows (mia_mat and Vray Mtl)
* Bug fix- Some Vray textures failed to assign to file nodes in previous version of TR
* Bug fix- The 'create shading network' button lit up green and "textures found" message displayed only if a diffuse file texture was found
* Bug fix- Misnamed icon filename

Version 1.2.1 (June 23, 2013)

* Bug Fix- # UnboundLocalError: local variable 'file_node4' referenced before assignment #

Version 1.2.0 (June 22, 2013)

* Added Store Config and Toggle Hypershade Buttons (top left)
* Added support for Ptex (mia_material_X and Blinn).
* For Ptex in MR, maya.rayrc file created in maya/prefs folder if it doesn't already exist (rendering will require Maya restart)
* UI Improvements - nicer button graphic, found textures highlit in green, info display window, new shelf icon
* Bug fix- Specular Gloss overwrote Emissive texture slot
* Bug fix- When creating a Blinn shader, script tries to delete node before it exists
* Bug fix- Script editor gives error @ Create Network if hypershade isn't open

Version 1.1.0    (June 10, 2013)

* Added support for Vray and Arnold renderers with Vray_Mtl and aiStandard material shaders
* Added support for Maya Blinn (useful for viewport 2.0 texture map previews)
* Added option for creating Place2D Texture nodes before file texture nodes
* Added transparency, cutout opacity and emissive (self illumination) texture slots
* Added 'tooltip' annotations to many UI elements
* Added support for vector displacement with 'vector space options' menu
* Set attribute 'Alpha is Luminance' to On for all file textures (when might someone specifically not want that? Email me!)

Version 1.0.1    (May 25th 2013)

* Fixed bug on Mental Ray plugin load
* Redirected Texture Robot 'Home' icon button to this page

Version 1.0.0    (May 2013)

* Initial Release version  



Noted Bugs / Rough Edges

* Once in a while I've noticed the Object list stops showing objects. This is fixed by closing Texture Robot, and reopening it. I'm not sure why this happens but I'm working on a proper fix.

* If TR finds both a bump map file and a normal map file, it will try to hook both of them up to the network, which will result in an error. Same goes for displacement and vector displacement. A workaround for this problem while working in Maya is to temporarily change the suffix of one of the slots (the one you don't want to use) to something unrecognisable (ie, change bump from 'b' to 'x', then refresh the texture slots. A proper fix will be to code in some radio buttons which toggle between bump and normal map or displacement and vector displacement.


Features or possibilities planned for future versions

* Update currently selected shader via filename versioning, ie- of the two files 'apple_d_v01.jpg' and 'apple_d_v02.jpg', the latter file will be selected and will overwrite the current entry in the file texture node, or create a new node if none existed.

* Shader conversion (from mia_material_x to VrayMtl for eg) (? a bolt on feature, low priority)

* Udim (multi UV patch) support

* 'Super auto' feature - if a scene object(s) matches a name in Texture Robot's object list, the script will automatically apply the associated textures to the selected (unselected?) geometry. This could be an 'outside the UI' feature, possibly another shelf icon or hotkey, leaving the UI as a general configuration tool.

* SSS layer slots for combined SSS and mia_mat etc,

* Dx11 shader support

* UI improvements


INSTRUCTIONS:

Video coming Soon