PDA

View Full Version : New free optimizer nodes for LW11 Mac/Win 32/64 (includes source code)



jrandom
04-14-2013, 02:15 PM
Finally! I keep forgetting how long it takes to write documentation. :P

Requires Lightwave 11 and Mac OS 10.7 (Lion) / Window 7 or better.

RainyBrain LWPlugins 1.0 (http://rainybrain.org/?page_id=152)

Any comments, bugs, feature requests, etc, just toss 'em at me. (I'm also attaching the node documentation if you want to see what's in there.)

Lewis
04-14-2013, 02:33 PM
thanks man, that's very usefull :).

allabulle
04-14-2013, 03:18 PM
Thanks!

adk
04-14-2013, 04:58 PM
Cheers a bunch jrandom, this looks very handy indeed :thumbsup:

jrandom
04-14-2013, 07:39 PM
I'm curious to hear if there are any problems with the 32-bit Windows plug-in, as I have absolutely no way of testing it.

I'm looking into making optimizers for Car Paint and Skin, although aside from the Full/Simple switches, there's not a lot I can do. I'm going to have to experiment around with those nodes and see if there's anything else I can use (specular cutoffs, etc...) to make useful optimizers with.

Dielectric has me stumped.

Do people still use the old Standard settings or Standard Material? I suppose I could make an optimizer for that as well.

(What's funny is that this whole coding push was primarily to get an infrastructure in C++ built so I could go on to learn how to make procedural texture nodes. Should prove to be an interesting challenge.)

COBRASoft
04-14-2013, 07:50 PM
Thanks for these!

Dielectric is strange and slow :). Perhaps you could make an archviz version instead :).

jrandom
04-14-2013, 08:00 PM
Thanks for these!

Dielectric is strange and slow :). Perhaps you could make an archviz version instead :).

Dielectric is, so far as I know, physically accurate if you use partial internal reflections and a lot of ray bounces. I suppose I could go back to my older model of using the optimizer node to drive a switch to select between a Dielectric node and some bog-standard transparent node, but that dual-node driving approach was not very-well liked -- people found it a bit confusing, I think. That's why I abandoned that model in this new release and went with just driving a single node.

I'm not sure if there'd be any point in me attempting to write an actual dielectric material node directly, as the LW coders are far more qualified than I am in that area, and I'd just wind up using the same math they do.

What do you look for in an archviz glass material? Any simplifications you can think of that you'd find useful?

Matt
04-14-2013, 08:10 PM
Nice work Bradley, very nice!

Matt
04-14-2013, 08:15 PM
What do you look for in an archviz glass material? Any simplifications you can think of that you'd find useful?

Pretty much physically correct *looking*, but with easy settings to drive nice bold reflections (that may not be physically correct). Think a mix of dielectric and regular layered surfacing reflections in the Surface Editor.

Essentially, when using layered surfaces, you can get nice bold reflections, but the glass might not look as 'accurate' as dielectric.

Dielectric is nice looking, but sometimes can be hard to get bold reflections, you have to set up your lighting / bounce cards etc to get what you're after. If may be physically correct, but sometimes I want a "physically correct" cheat.

If that makes any sense!

jrandom
04-14-2013, 08:30 PM
Dielectric is nice looking, but sometimes can be hard to get bold reflections, you have to set up your lighting / bounce cards etc to get what you're after. If may be physically correct, but sometimes I want a "physically correct" cheat.

If that makes any sense!

Yes! Makes perfect sense. I don't think I'm at the skill-level where I can write a material node like that just yet, but I'll keep it in mind as I push forward with the other nodes I have planned. If I think of an easy way to do it via an optimizer node, I'll go that route first.

If you have a demo scene with window materials set up the way you like them, that would help me study what techniques I'd need to implement.

adk
04-14-2013, 10:24 PM
Pretty much physically correct *looking*, but with easy settings to drive nice bold reflections (that may not be physically correct). Think a mix of dielectric and regular layered surfacing reflections in the Surface Editor.

Essentially, when using layered surfaces, you can get nice bold reflections, but the glass might not look as 'accurate' as dielectric.

Dielectric is nice looking, but sometimes can be hard to get bold reflections, you have to set up your lighting / bounce cards etc to get what you're after. If may be physically correct, but sometimes I want a "physically correct" cheat.

If that makes any sense!

Right on the money Matt ! Dielectric was my very first stop closely followed by folliage - which benefits greatly from various techniques ie Pavlov's dome specular trick.
Don't think you'd get the same sort of performance speed up here but there might be some clever ways of optimising blurred reflections that's easy to setup. It might already be present in your node but I've not had a chance to test folliage yet. Happy to give feedback on 32 bit btw.

jrandom
04-14-2013, 10:37 PM
Right on the money Matt ! Dielectric was my very first stop closely followed by folliage - which benefits greatly from various techniques ie Pavlov's dome specular trick.
Don't think you'd get the same sort of performance speed up here but there might be some clever ways of optimising blurred reflections that's easy to setup. It might already be present in your node but I've not had a chance to test folliage yet. Happy to give feedback on 32 bit btw.

Not sure how well the existing optimizer nodes will work with translucent surfaces -- that's up on my list of things to do, but I've only really used Skin at this point and have no idea how you're surfacing your foliage.

Let me know how that 32-bit version works. I'm always a bit nervous when I have to release binaries I can't test.

COBRASoft
04-15-2013, 03:12 AM
e.g. Octane has a archviz option by faking the shadows. A similar trick is maybe possible? For the rest... What Matt said :).

JohnMarchant
04-15-2013, 03:15 AM
Thanks indeed

Danner
04-15-2013, 05:01 AM
... Dielectric is nice looking, but sometimes can be hard to get bold reflections, you have to set up your lighting / bounce cards etc to get what you're after. If may be physically correct, but sometimes I want a "physically correct" cheat.

If that makes any sense!

To get Dielectric to reflect a bit more I use Material booster.
http://www.db-w.com/products/dbwtools/docs?showall=1

Lightwolf
04-15-2013, 06:04 AM
To get Dielectric to reflect a bit more I use Material booster.
http://www.db-w.com/products/dbwtools/docs?showall=1
Which is precisely what it's been designed for... :D

Cheers,
Mike

jrandom
04-15-2013, 12:55 PM
Well heck, you guys already have a solution for archviz glass, then! :)

I am looking into creating a sort of generic optimizer that will allow easy switching between full/simple input as well as specular cutoff -- that could then be applied to whatever you're feeding into the dbw material booster or whatnot. The tricky part is figuring out what the canonical inputs a generic optimizer should have.

I'm open to suggestions.

zapper1998
04-15-2013, 02:37 PM
thank you

:)

Tobian
04-15-2013, 04:35 PM
A generic optimiser doesn't really exist because the classic surface editor and 'materials' work very differently. I have to work my nodes differently for classic vs materials, because of the energy conserving angle. Interesting stuff so far, but it has to be said it's quite complicated!

jrandom
04-15-2013, 04:43 PM
Yep. That's why there wasn't a generic optimizer in the initial release. :)

The whole full/simple switchover is handy if you're using procedural textures, but it doesn't save nearly as much time as cutting off reflections in GI. A general optimizer should make this easy to do regardless of the node setup. What's got me a bit stumped is how to work in reflection compensation in such a case. In my testing I found that quite a few different kinds of surfaces reflect a drastically-wrong amount of light (either too much or too little or too much color spill) if you simply cut off reflections, so I'd like to find a way to somehow allow for reflection compensation. Hrm... maybe a compensation output that could be blended into the diffuse channel via a mixing node...

I don't do much in the way of custom surfaces, so I primarily only know my way around the energy-conserving material nodes. I don't suppose you happen to have a node setup you'd consider "typical" I could study? It would help me figure out how to make a useful generic optimizer toolkit that would be adaptable to whatever node setups you use.


Interesting stuff so far, but it has to be said it's quite complicated!

At least this version is easier to set up! :) No more having to hook up two different nodes to a mixer. And the documentation is way better this time around.