2011-09-28

This is the 100:th post...

...and it's only appropriate that it is about the fact that I've been hired by Autodesk.



Yes, you've seen Ken spill the beans over on CGTalk. It is true. Autodesk has hired me to handle rendering and funky stuff like that. Pixels. Whatnot. Friday sept 30:th is my last day at mental images/NVidia (which I end by doing the meet-and-greet-3d event in Berlin, see previous post), and Monday October 3:rd my first day at at Autodesk... this time around (I used to work for Autodesk in the past, doing mechanical design software).

This all started around some discussion between my good friends Neil Hazzard, Shane Griffith and myself back at EUE (all good friends which will now be my actual colleagues). It was thrown out as an idea, we pondered the thought, thought it made sense, and I talked to my managers at mental images/NVidia, and everybody thought it made a lot of sense.

Integration of mental ray and iray into Autodesk products have always been.. problematic. Integration work was done by Autodesk, but there was never a dedicated person with enough precise know-how of the nitty-gritty details to handle it (or sometimes simply not enough priority put on it). Well...... now I will be working there. 'nuff said :)

I think this will be interesting, and I've been "Shader Wizard" for mental images (now "NVidia ARC" - "Advanced Rendering Center") for 7+ years now, perhaps it's time to move forward to New Challenges. Todays physical rendering doesn't really require "shaders" in the same way it did in the past anyway..... 'tis all BSDF's and physics and shiny stuff :)

It's not like I'm moving far anyway. I will probably be in all the same meeting, just on the other "side"....

I think this will be really interesting, and the future is Bright (about 95000 cd/m^2 to be exact). Lets go there together.

With Sunglasses.

Also, as I type this I am finalizing some Really Cool Sh%t. Stay tuned - as always :)

/Z

2011-09-14

Appearing at Meet and Greet 3D



On Sepmber 30:th 2011 I will be speaking at the Meet and Greet 3D event in Berlin.

I will do a small sit-down session about Linear Workflow at 2 PM, and a big-hall presentation about the physics of light at 11.50AM. <=== UPDATED TIME!!!

Venue info etc. available at www.MeetAndGreet3D.com

Location:

  • Forum Adlershof, Rudower Chaussee 17, 12489 Berlin


See you all there. :)

/Z

2011-08-23

User Survey (and a chance to Win a Quadro 6000!)

Just a quick note; We are currently running a user survey, and anyone who fills this in can win a NVIDIA Quadro 6000 graphics card!

It's a survey about how you use mental ray, and we want to gauge how it is being used across all possible industries. Appreciate your answers!

So please take the survey by clicking right here!

/Z

2011-06-29

What if SIGGRAPH was held in a Pub?

Hotel Florin (EUE 2009)

Have you ever wondered what it would be like if SIGGRAPH was about 200 of your best friends, had all the cool talks but none of the showfloor commercial glitz... and was held in a pub?

If you think that sounds like a good idea, you should have registered for the End User Event (see previous post). Me? I'm packing my last thing, flying down there now.

If you wish you were there, well..... I told you already. In the aformentioned previous post :)

This year I'm going a bit more abstract than previous years, and will be talking about "the Physics of Light", and 'tis gonna be fun.

I will (connection willing) try to amend this post with some pictures, videos, and other stuff as the event happens.

For those who want the (likely) stream of crazy updates, tune in to my twitter at twitter.com/MasterZap.... connection willing, of course.


/Z

2011-05-18

Welcome to EUE 2011

As several years previously, I will be presenting at the EUE (= "End User Event") 2011 in Utrecht, Netherlands.

The event is June 30:th/July 1:st, and it is held in the Florin, a nice old building that used to be a bank, but now is a pub..... with adjoined conference rooms.



Think of the event as the worlds smallest SIGGRAPH - only with the commercial glitz shaved off, and held in a pub. And if you walk outside, you are not run over by yellow cabs, but by blonde students on bicycles. Seriously, you almost need a bicycle helmet to walk the streets here. :)

Check out the www.EndUserEvent.com site for more details; there is even a Youtube behind-the-scenes channel where you can see the organizers setting up the event, which I found neat.

This year I will be talking about light, the perception thereof, and how to translate that knowledge to what you do in CG.

But I'm not the only one rambling, other speakers include:
  • Jeff Mottle (CG Architect)
  • Wayne Robson (y'know mudbox guy)
  • Rune Spaans (about his work on Troll Hunter)
  • Jamie Gwilliam (Autodesk)
  • Neil Hazzard (Autodesk)
  • Shane Griffith (Autodesk, will be holding an NDA session on future dev. of 3ds Max)
  • Ted Boardman (often mistaken for a member of ZZ top)
  • Johan Boekhoven
  • Eric de Broche
  • Yoni Cohen
  • Borislab "Bobo" Petrov
  • Hristo Velev
  • ...and many more, see here
While waiting, what about the trailer for Troll Hunter that Rune worked on? Think of it as "Cloverfield goes to Norway. With Trolls". :)
See you in Utrecht!

/Z

2011-04-26

Render Optimizer script for max 2012

I discussed progressive sampling in the previous post. Thorsten Hartmann and Artur Leão has collaborated on an "Über-script" for handling a ton of stuff. Torsten calls his variant "Render Optimizer" and can be found on this link:

http://www.infinity-vision.de/blog/render_optimizer

The Render Optimizer does a lot more than just turn on unified sampling, and Thorsten has several tutorial on the various subcomponents.





If you are overwhelmed by the number of tabs on Thorstens version, Artur also independently has a slightly different version on his site, called "mr Options Manager", which you can find here:

http://dimensao3.com/al/





I will be updating this post w. some tricks-and-tips myself shortly.
For now, Enjoy Thorsten and Arturs cool work!

/Z

2011-04-15

2012 and Unified Sampling

Hello World!

The new 2012 versions of the Autodesk products Max/Maya/Softimage are upon us, and they are loaded up with mental ray 3.9.

One of the cool new features in 3.9, which doesn't seem to be exposed in some of the products, is "unified sampling".

The new "Unified Sampling" is a new way to choose which and how many samples (i.e. "rays") are shot into a given pixel, and what position in space AND TIME those rays have.

This becomes very significant as we discuss motion blur.

For anyone who have read the Samples Tips page over at lamrug.org knows that mental ray normally shoots rays roughly in a grid (but with jittering, so it is not exactly a grid) which it subdivides adaptively as needed, and for motion blur, mental ray actually (in the default raytracing case) shoots multiple rays into the same spatial position, but with different temporal positions (effectively rendering the subpixel sample at more than one position in time).




An image from LAmrUG.org


Now, Unified sampling unifies (hence the name) spatial and temporal sampling. Each ray has it's own space AND time sample. And not only that, the convergence of both is adaptive, so you simply set a lower limit on the amount of rays (say, 1) and an upper limit (say, 100) and simply turn a quality knob. This tries to adaptively resolve any noise from any source, be it soft shadows, glossy reflections, or motion blur with the SAME oversampling scheme.

Sounds nice, eh? So it's a pity it wasn't included in the 3ds Max UI, isn't it?

Luckily, the FEATURE is still there, and can be reached via Scripting.

In the Beta team, a set of people generated scripts to solve this issue (there are even several), and here are a few places you can download such scripts:

Arthur Leão and Duncan Howdin cowrote this script (pictured above) which you can download from Arthur's site
at http://dimensao3.com/al/ (file itself here)

It allows you to set the parameters and by doing this improve render times with motion blur and quality of quasi-random effects such as soft shadows and glossy reflecitons more easily than in the past.

These scripts utilize the MaxScript exposure of mental ray "string options". A problem with the string option MaxScript feature is that it the state of string options is NOT saved with the .max file. However, Arthur has solved this isse with a callback in the script ... or somesuch magic, I suck at MaxScript myself... ;)

Thorsten Hartmann (Infinity Vision) wrote another version which he has posted at http://www.infinity-vision.de/blog/unified_sampling which also contains some information and test renders.

Enjoy Unification day!

/Z

2011-03-21

MetaSL.org - MetaSL Tutorial and Reference Book/Website

Hello everybody!

Today we release MetaSL.org which is a companion website to the work-in-progress book about MetaSL programming by Andy Kopra and Lutz Kettner.


This site/book is a walkthrough of the concepts behind MetaSL and will show you how to write shaders in the MetaSL language.

Now, let it be clear that this is intended as a living "work in progress site", so these are the initial chapters of the book, available online.

I quote from the page: "Chapters of the MetaSL book will be posted on the website in both HTML and PDF formats as they are written. The structure and contents of earlier chapters may change as required by the development of later chapters. The reference pages, based as they are on the MetaSL specification, will not change between MetaSL specification versions, though improvements may be made in the way the content is hyperlinked and cross-referenced."

What is available so far is the first four chapters explaining topics such as basic language concept and layout, and some of the most basic shading- and raytracing concepts.





The book also has an accompanying forum on the mental images website, where questions and feedback can be posted. You will get an unprecedented front-row seat to the evolution of this book. Enjoy the ride!

/Z

2011-03-03

Issue in mia_envblur in 3ds Max

An issue has been found in the "mia_envblur" shader as it is integrated into 3ds Max. (Read more about mia_envblur here)



Autodesk has added a Phenomenon wrapping the shader, and it was just discovered there is a typo in the Phenomenon declaration, that causes one of the parameters to not actually function. The blur still works - but only with a fixed level. The checkbox for inheriting the blur from the Arch&Design material is non-functional!

You can easily fix this yourself by opening a file named "architectural_max.mi" which in the path: <3dsmax>\mentalimages\shaders_standard\mentalray\include.

Opening the file you can search for a line which reads like this:

"mia_material_blur" = interface "not m.mia_material_blur",

Edit this line to read:

"mia_material_blur" = interface "m.mia_material_blur",

...i.e. removing the "not ".

Now, all parameters of your environment blur (including inheriting blur from the Arch&Design material) should work!

Also, some people report issues with flickering in the reflections. This can be caused by two things:
  • Too low resolution in the Envblur shader. The "resolution" value need to be high enough to resolve details in the original environment map.
  • Intermittent interaction with the "blur" feature in 3ds max "Bitmap" shader. Turn down the blur in the Bitmap shader (in the "Coordinates" rollout) to lowest possible, which should resolve the problem.


/Z

2011-02-26

I thought this was funny....

I normally don't use mentalraytips.com to post "funny" things, but I had to make an exception for this, because, well... you'll see.

When I received this little video, it literally made my day. It's the "Behind The Scenes" video for Freddie Wong's "Epic VFX Time". Freddie does little funny visual effects experiments and tutorials on his youtube channel - well worth a watch.

However, when this came across my screen, well, I couldn't help but laugh:


I've been mentioned in VFX behind-the-scenes documentaries before - but never like this.

Thanks guys. :)

However, I'd like to massively correct that I am not "the guy who programs mental ray", I am *a* guy who programs mental ray *shaders*. That's different. We are a whole team behind the software, not just me...

But still - thanks!

/Z

2011-02-04

The Great Directory Migration - putting stuff in 3ds max 2011 (and newer)

I apologize that this blog post is way overdue.

What's this about?
All over the net (including this blog) you can find instructions in how to add various shaders to 3ds Max, by putting files in certain directories in the 3ds max directory structure, namely a "mentalray" directory (with various subdirectories) under your main 3ds max directory.

Nowdays, there are two things to watch out for:

GOTCHA #1: 64/32 Bitness


First is 32 vs 64 bit. In windows, programs on a 32 bit machine live under a directory that (on an english speaking computer) is called "C:\Program Files\" 

This is also true for 64 bit programs on a 64 bit computer.

However, for 32 bit programs on a 64 bit computer the directory is called "C:\Program Files (x86)\" which may throw you off.

GOTCHA #2: 3ds Max 2011 (and newer)


When Autodesk introduced the MetaSL framework in 3ds Max 2011 (which means that shaders are not necessarily mental ray shaders per se) having a subdirectory to your max directory called "mentalray" doesn't really make sense any more. But since these both are mental images technologies, having a directory called "mentalimages" does make sense.


The change was made such that instead of a single "mentalray" directory under which the three categories of shaders (standard, autoload and 3rdparty), there is now instead a "mentalimages" directory. The three categories exist under this directory, similar to before.

However, under those three directories, the distinction between "mentalray" and "MetaSL" shaders has been added.

Under those you find various other subdirectories - which under the "mentalray" subdirectory hence includes the good old friends the "include" and "shaders" directories.

Example:

To add an .mi file like for example the skinplus.mi (a mental ray "include" file) shader to be automatically loaded on startup, you want it in the "include" directory under the "autoload" category.

In 3ds Max 2010 (or older) this would have been:
  • C:\Program Files\Autodesk\3ds Max 2010\mentalray\shaders_autoload\include
In 3ds Max 2011 (and newer) this would instead be
  • C:\Program Files\Autodesk\3ds Max 2011\mentalimages\shaders_autoload\mentalray\include

Basically, the translation would be that
  • C:\Program Files\Autodesk\3ds Max 2010\mentalray\shaders_<category>\<dirname>
becomes
  • C:\Program Files\Autodesk\3ds Max 2011\mentalimages\shaders_<category>\mentalray\<dirname>

I hope this helps installing various shaders and other goodies in 3ds Max 2011 and beyond.

/Z

2011-01-17

The Re-run-run-run, the Re-run-run (FXPhd class on again!)

For those of you who missed my FXPHD course the other two times it was run... HERE SHE IS AGAIN!







More info in the posts below. Again - this is a re-run, so it is the exact same classes as before... but I will be available in the FXPHD forum for students to ask crazy questions.

See you on FXPHD!

/Z

2010-11-23

mental ray for C4D users!

Aloha folks, long time no post.

Sorry, Zap's been busy with .... stuff.

Also, some other guys than me have been busy and created this neat plugin for using mental ray AND iRay from within Cinema 4D:



It fully supports not only all the standard C4D materials, but also custom shaders in MetaSL, so this is some kick-butt powerful stuff!

Check out the website for more information, coz I must admit I am not an expert on C4D at all, and was not directly involved in this project, so I can't really answer much questions about it, sorry :)

But hey, C4D users - enjoy!

/Z

2010-08-23

More about MetaSL in 3ds Max 2011

Aloha again!

Sorry for not making a proper "post SIGGRAPH post", but I've been "post SIGGRAPH busy". And as always, me being Busy, means good things for you all.... in the future. :)



I've gotten a ton of questions about MetaSL in 3ds Max, and since the public beta mentioned in a previous post has now been discontinued (you can still use the 30 day trial if you like it will time out approximately the same time that the public beta would have timed out anyway), the interest in "what was the app actually doing and can I do it myself" has increased.

So let me explain the process 3ds Max uses to load/use a MetaSL shader:

Max uses configuration files located in the <3dsmax>\mentalimages\shaders_standard\MetaSL\Config directory to define how it works.


First there is a file in this directory named MaxMetaSLNodeTexmap.tbx. This file contains entries of which MetaSL shaders are shown in the MetaSL section in the Slate material editor.

By default, only a handful of shaders are actually in this file, but anyone can open up this file and add new entries for any of the standard MetaSL shaders that ship with max (and all the shaders in mental mill are included in this set).

So by adding a line like, for example


<palette_item type="node_class" node_class="generator_blend_ramp" image="conversion.bmp"/>


...will make the standard shader generator_blend_ramp visible in your Slate "MetaSL" toolbox! (NOTE: You must add it before the closing "<palette/>" line)



That's fine for "standard" shaders, but what about adding your OWN shader?

Well, when max is looking for a MetaSL shader name (technically, a MetaSL class name), it rummages through the file NodeToMsl_MappingTable.xml in that same directory.

This file contains entries similar to these:


<Item ClassName="Color_contrast" XMSLName="color_balance.xmsl"/>
<Item ClassName="Color_gamma" XMSLName="color_balance.xmsl"/>
<Item ClassName="Color_saturation" XMSLName="color_balance.xmsl"/>


This links a class name ("Color_contrast" for example) to a file that needs to be loaded to define that class name ("color_balance.xmsl" in that case).

If we further look into the file "color_balance.xmsl" (which lives in the <3dsmax>\mentalimages\shaders_standard\MetaSL\XMSL directory), we will find it consists only of this line:


<root>
<metasl_code file_name="color_balance.msl"/>
</root>


What we see is that this file simply loads the "color_balance.msl" file (which lives in the <3dsmax>\mentalimages\shaders_standard\MetaSL\MSL directory). Now this XMSL file could have defined a whole phenomena of it's own (of the desired class name), but in this case it didn't... it simply deffered to say "nah, to find that class, just load this MSL file, it will defined that class".

And if we were to open up "generator_blend_ramp.msl" we will find some shader code that indeed defines this shader.


So, to add our OWN shader, all we need to do are the following steps. Assume we have a simple shader that multiplies two colors, like this:
shader mul2colors {
  input:
    Color A;
    Color B;
  output:
    Color result;

  void main() {
    result = A * B;
  }
};

#1: We our shader code in a file in the <3dsmax>\mentalimages\shaders_standard\MetaSL\MSL directory in a file named multi_two_colors.MSL

#2: Create an XMSL file in the <3dsmax>\mentalimages\shaders_standard\MetaSL\MSL\mult_two_colors.xmsl that simply reffers to the MSL file, using the simple format above, e.g.

<root>
<metasl_code file_name="mult_two_colors.msl"/>
</root>


#3: Add an entry in the <3dsmax>\mentalimages\shaders_standard\MetaSL\Config\NodeToMSL_MappingTable.xml file for the new class, mapping the shader name ("mul2colors") to the .xmsl file name ("mult_two_colors.xmsl")

<Item ClassName="mul2color" XMSLName="mult_two_colors.xmsl"/>


#4: Finally, make it visible by adding it to the 3ds Max MetaSL Slate toolbox by adding a line to the <3dsmax>\mentalimages\shaders_standard\MetaSL\Config\MaxMetaSLNodeTexmap.tbx file (prior to the closing "<palette/>" line:
<palette_item type="node_class" node_class="mul2colors" image="conversion.bmp"/>

Note: The name of the bitmap isn't important since 3ds Max creates it's own bitmaps by actually running the shader w. it's default parameters to generate the toolbox icon.


Hope this makes sense?

ALSO, DO NOT FORGET that my FXPHD class is still running... we're in the week 5 "break week" currently. There is still time to sign up (FXPHD allows signups up until the 8:th class week). So be there, or be hexagonal! ;)


/Z

2010-07-23

Heading off to SIGGRAPH 2010

A quick note: Heading off to SIGGRAPH right... now.

Those who want to follow me do it most easily on twitter, and I may post some neat stuff on QiK once in a while:

twitter.com/MasterZap

facebook.com/MasterZap

qik.com/MasterZap

Enjoy

/Z

2010-07-02

MRY201 mental ray FXPHD course to be RE-RUN for July 2010 term

For those of you who missed my FXPHD course back in January, fear not, because it is being run AGAIN this upcoming July term!







Scroll down to my previous postings about the course for more info! Now, this is a re-run, so it is the same classes as before (with some minor updates and corrections, especially to Class #1), but I will still be available in the FXPHD forum for the new students to ask their questions!

For more info about the course click here or just go to www.fxphd.com

For now, though, I'm off on some vacation, coming back in time for SIGGRAPH 2010 in Los Angeles! More about that in a later post!

/Z

2010-06-22

MetaSL in 3ds Max 2011 - demo

After posting my last post, I've gotten a lot of questions around the MetaSL implementation in 3ds Max 2011 and the Mental Mill SE 1.1 beta. Well... to demonstrate this, I've made a little video presentation (actually a shortened version of what I showed at the EUE event mentioned two posts back).

So click here to check out the video, it's 15 minutes of me rambling....




The presentation shows my MetaSL "eye" shader (to be posted soon) run in mental mill, mental ray, 3ds Max viewport, and the Quicksilver renderer.

Enjoy! :)

/Z

2010-05-27

mental mill 1.1 Standard Edition public beta 2

Notice: There is a new public beta of mental mill 1.1 Standard Edition


One particular neat feature with this beta is an exporter I built for it that exports MetaSL shaders to 3ds Max 2011 directly from inside the mill.

The workflow is basically this:

  • Build your shader tree in mental mill
  • Select the root node
  • Go to File->Export
  • Choose the "Autodesk 3ds Max 2011 (Slate Extension)" exporter
  • (First time only: Select your 3ds max installation directory)
  • Hit "Export" button.
  • Start Max

Now you will see the shader in the Slate material editor "MetaSL" category.
These shaders now...

  • ...work in the 3ds Max viewport
  • ...render in mental ray
  • ...render in Quicksilver
  • ...and any other MetaSL compatible renderer!
And the coolest part is that it works even with your own custom made MetaSL shaders, in all above renderers! This is different than the MetaSL support in Max 2010 that was locked to the shader set shipping with it. Not so in Max 2011, you can build your own shaders. They compile automatically in the back and "just work". Even raytracing calls in the shaders get converted to the automatically generate cube reflection maps for Quicksliver, which is quite neat :)





Expect lots and lots of posts on this topic coming soon - for those that are curious about this workflow and want to see it up close, and see me debug some shaders live, pop up in Utrecht, Netherlands, next week (June 3-4, 2010) at www.EndUserEvent.com (see previous post)


Known Issues:

  • There are some known issues with the Lookup_Texture_2d node not showing in the viewport with gamma correction enabled, but I hear this should be fixed in a 3ds Max service pack (hopefully). It still works in mental ray / Quicksilver.
  • If Texture2d inputs exist inside a phenomena in your mill graph but are not exposed to the interface of the Phoneomenon, they will not get properly filled in when loaded into 3ds Max. To fix this, simply expose the "Texture2d" to the interface of the Phenomenon.
Find the download for mental mill 1.1 Standard Edition here

Have fun!

/Z

2010-04-25

End User Event, Jun 3-4 2010, Utrecht / Netherlands

A heads up:

On June 3/4, my good friend Joep van der Steen, author of "rendering with mental ray & 3ds Max" will be - again - hold the "End User Event".

Imagine it as a very tiny and very European and very personal mini-version of Siggraph. There are two days filled with lectures and talks and mingling, and, yeah... it's held in a bar. :) (Well, a bar with conference rooms on the sides)

Sign up now if you want to join in on the fun. I'll be speaking there about MetaSL in 3ds Max 2011 and some other mental-ray-y things.... see you there.

www.EndUserEvent.com

/Z

2010-04-09

FXPHD, closed, done, complete, over. PHEW



Well, that was an interesting ride of 10 weeks of doing FXPHD. And while I really enjoyed doing it, well, it was quite a lot of work (since I'm such a nerdy perfectionist and want to embellish everything to the border of insanity) so I won't be doing it again any time soon....

I have not heard if the FXPHD guys plan to re-run the course, at least it is not being re-run immediately for the current April term starting up in the next few weeks. And of course, if/when it is re-run, it's the same classes run again, so all I have to do then is to hang around in the forums for questions, which is much easier....

It was quite fun to see the progress of the students and I saw quite a few nice renders done by them. I think I made several people see the light of linear rendering... :)



I'll let you guys know when more similar stuff happens. Next up is EUE (more in a future post)

Also, expect some trickle-down effect for the blog. I created some nifty Phenomena for the FXPhd course that I will post here after some polish.... stay tuned!

/Z