View Full Version : Need Mac LW 11.5 users to help test plugin

04-07-2013, 11:58 AM
I've finally got the initial versions of my new optimizer nodes (delta / conductor) for v11.5 done. The old version (http://rainybrain.org/?page_id=152) was made pretty obsolete by the new unified sampling model, and I wanted more features anyway so I've been porting it over to C++ and updating it for the latest version of Lightwave.

I don't have documentation written up yet, nor do I have a C++11 toolchain set up for Windows, so I've only got the Mac 32/64 plugin compiled at the moment.

T'was wondering if any of you Mac users could install this and see if you run into any problems.

The optimizer nodes are easy to set up this time around -- simply hook each output into the corresponding input of the delta or conductor material node.

Basic Usage:

The term 'cutoff' means the bounced ray where the switch will occur. So if you have "Simple Color" enabled and have the Full Color Cutoff set to 1, the camera ray (bounce 0) will see the full color, and after that all rays will see the Simple Color.

There are two main concepts here: have bounce rays see a simpler color/specular/roughness map than the camera (either a solid color, or if you're using complex procedurals you can plug in a simpler version that uses less octaves or whatnot into the Simple Color input), and to shut off reflections after a set number of bounces.

Reflection and Highlight compensation will attempt to mimic the look of surface specularity after reflections have been shut off so you can have things like specular highlights affect reflections and global illumination even though the specularity has been cut to 0. These options slow things down a tiny bit, so you have the option to disable them.

Global Illumination rays can be controlled separately, allowing for visible reflections as seen by the camera and it's reflected rays while having the global illumination rays truncate reflections at the specified cutoff point (use '0' if you don't want GI to see reflections at all).

If you want to see what the bounce rays will see, temporarily set all the cutoff values to 0. This will give you a good idea of what the optimizer nodes actually do. Think of it as designing a simpler, faster-to-calculate world that is intended to sit behind the full-quality materials seen by the camera.

Any questions, comments, and suggestions are welcome. I'm trying to get the Windows plugin compiled and some decent documentation written and will post those (along with the source code) when it's all ready to go.

04-07-2013, 04:27 PM
I just tried this out on my "kill Layout with blurry reflections" scene to really test things out.

This shot is a sort of best-case scenario for the optimizer -- an enclosed space with all surfaces sporting blurry reflections (what you see is a blend of delta and conductor materials), and a lot of indirect light.

I'm using a ray cutoff of 4, and non-interpolated monte-carlo GI at 3 bounces, 4 rays.

A single AA pass takes 20 minutes, 4 seconds:


For the optimized version, I kept the regular rays on full with no cutoffs, so it sports all four reflection bounces and keeps the normal/bump maps on all the way (so the scene would look good even through windows and in mirrors), and just used the optimizer nodes' separate GI settings so GI doesn't see much in the way of reflections nor bump/normal maps.

Total render time: 1 minute, 7 seconds.


Here's what the node setup looks like. These optimizers are waaay easier to hook up than my last version. :)


04-07-2013, 06:00 PM
Will try to test it as soon as i can and report, although i don't use delta or conductor nodes very often.
Anyway, perhaps it's about time to use them more, especially with what seems to be a great plugin ! :)

Thanks a lot for providing it. :thumbsup:

Laurent aka Tartiflette. :)

04-07-2013, 06:07 PM
Thanks! I'm pulling my hair out trying to get a C++11 toolchain on Windows up and running so I can get this out to everyone else. The microsoft compiler ecosystem is just totally messed up. Hateful, even.

Hey, if you post a screenshot of how you normally create surfaces/materials, I'll see if I can design an optimizer that'll fit your workflow. (I'm looking at dielectric and skin materials right now, but I don't know if I'll be able to design useful optimizers for those.)

04-07-2013, 07:58 PM
Hey, if any Windows users are reading this, I got a successful build! Woo!

Of course, I've only tested the 64-bit version as I do not have 32-bit Lightwave running. I'm still working on the documentation, but if any LW11 Windows users want to try this out, here's the full set of plugins:

04-08-2013, 01:37 AM
Oh how nice of you!
I ll dig into this as soon as I get my break:)
...and thanks!

04-08-2013, 08:14 AM
well this will not load in 64bt mode for me in 11.5, presume the plugin is the cache node for vector and scalar functions (also just tested 32 , also no go, 2 x 3GHz Quad-Core Intel Xeon, 10GB memory, Mac OS 10.6.8 SnowLeopard)

04-08-2013, 10:04 AM
Erm... the separate 32/64 plugins are windows-only. Did you try the one in the MacUB folder? I'm developing on 64-bit Mac and running Lightwave 11.5, so it should work. Are you getting any particular error or does it just not show up anywhere?

Oh wait a sec... I'm developing on Mountain Lion... Hrm. When I get home tonight I'll see if there's a compiler option I need to use to make it work in Snow Leopard. Didn't even think of that particular stumbling block. This is why I really want other people to be testing this thing out. :)

04-08-2013, 10:46 AM
from 20 minutes to 1 minute well that sounds like hell of a job/optimization - good work man :)

04-08-2013, 10:57 AM
I'm a real sucker for blurry reflections -- I want to use them on everything. That was the primary driving force behind this plugin as blurry reflections are too slow in general when you've got enclosed scenes, and doing these kind of optimizations by hand in node networks is just mad. :)

04-08-2013, 11:03 AM
I'm a real sucker for blurry reflections -- I want to use them on everything.

There is no other in real world ;)

I showed how to simulate them by hand in 2nd video tutorial How to Control Reflections:

04-08-2013, 01:14 PM
Erm... the separate 32/64 plugins are windows-only. Did you try the one in the MacUB folder?

The folder I downloaded was the one marked Mac 64bt at the foot of the post it contained only one standalone plugin was not in a folder and looked like any other Mac plugin "RainyBrain_Nodes.plugin" was it's title, if I made one too many assumptions here I'm sorry

04-08-2013, 02:13 PM
No no, that's correct. I suspect XCode is defaulting to Lion or Mountain Lion specific binaries, but I have vague memories that there's a setting that will let me make it compatible with Snow Leopard. I'll go look for it when I get home from work today.

04-08-2013, 07:32 PM
I have some bad news: My plugin is written using C++11, and the standard library used for Mac C++11 binaries is not targetable for Snow Leopard. I can compile for 10.7 Lion (and will do so for the final release), but Snow Leopard support is not feasible and it would be far to much work to restructure my code to get rid of all the C++11 elements.

It appears Snow Leopard is being left behind by Apple. :(

The only way it could be used on SL is if some other dev takes the source (which will be included in the full release) and reworks it for either old C++ or straight-up C.

Edit: Oh man, I even remember now that this lack of C++11 support was why I finally upgraded to Mountain Lion in the first place.