The Panther Dynamics Blog

Ultimate Glory

I give glory to, acknowledge and remember God for this website. He enabled me to do all this and this website belongs to Him. Thank You!

Optimizing Node Groups

October 31, 2018
Hey all!

NOTE: Don't just skim the headings - they are not clear enough for you to know what I mean.

I got to share with you all a special set of group nodes affectionately called 2Depth. These cover 2D to 3D conversion and some other depth based nodes. One in particular is called the parallax 3D node and this one was known mostly for it's slowness and secondly for it's sharp 3D results. Now, it's going to be the other way around!

The LORD helped me take the processing time down to 5 seconds from 30 seconds! That is HUGE! I cannot even begin to tell you what a difference that sort of time makes in a 3D workflow! 

A few days ago I felt led of the LORD to see if I can make the node faster. I had tried this before, so my hopes were really not very high to begin with. I tried it anyway and sure enough, the old tactics didn't work, but the LORD certainly did open my eyes a bit as to how many bad decisions I had made in the building of the node and that is where today's post comes in - how to help you optimize nodes based on this example.

 - Reduce overhead
While all of the tips can be added to this category, I am going to make it singular to 1 thing - make things faster while still achieving the exact same result (again, basically the same, but you'll get what I mean in a second).

This means that we want to take away things that make absolutely no difference to the final result (and there is more than you think). Sometimes we leave things on that make things slower without even realizing it, so this is to focus on that.

For the parallax node, this one had a surprising set of things that really made a big difference!

1) Removing a blanked image in favor of a color
2) Removing a conversion feature for something that was already correct

Let's kick-off with the first one. In the node, I have to run the same thing twice, this step has no image input, even though it does. The difference is that I am looking for the tears, not the image, so the image has to be white and the tears black. Initially, I had added a mix node to simply color the image completely white. Removing this so that Blender started with a simply white color (ie no input into the node), made a drastic difference in time.

The second has to do with the alpha over node. There is something called premultiplied alpha. This means, from what I understand, that if it is premultiplied, it just takes the open areas into consideration and lets your colors be your colors. If this feature is not used, it will be very additive in nature. This meant that I could turn off the "Convert Premultiplied", but had to leave on the premultiplied factor. Still giving a major speed boost!

Stuff like this will amaze you!

 - In as few nodes as possible
This one is a bit of a puzzle. Sometimes it is actually slower when you do it in as few nodes as possible...

In this case as well. I have the tear mask processed by the image's tearing and shifting, but using that alpha channel as a mask, makes the node go nuts. It is actually two times faster to have it run the same process on white as a color. I don't know why...

In other cases, using as few nodes as possible helps reduce the overhead and gets you higher speeds. For example, you can learn how to do something in 5 steps, but if you can do it in 2, why do it in 5, it doesn't make sense. For example the overall parallax adjustment.

I had in-painting nodes and blurring and masking and and and. It was really a mess of nodes that could simply be replaced with the displace node... I felt so silly! It made things so much faster. It does mean that the parallax is now in pixels, but regardless, it works and it's awesome! I encourage you to start with the default values that come with the node to get a good idea of what feels comfortable and what'll work when combined with the warping for compositing effects.

 - Different method, same result
I think this one made the biggest difference. It's similar to the previous one, but I want to make it a separate point, because it's something you learn as you go.

In Blender there are many ways to do the exact same thing. Some methods look better than others. Some are faster than others and shocking, some look exactly the same and differ monumentally in time needed to process. This should become even more commonplace with Eevee vs Cycles renders.

In the node, this came in the form of the RGBA nodes. I used them to break up the image so I could get the alpha adjusted, but this was a massive overhead step for processing, because it had to break up the image into 4 parts, change 1 and rejoin all 4. That is nuts!!! With set alpha you just do 1 and that's it. No wonder it made such a huge difference!

And of course, there are nodes that allow you to change the method used or samples used, etc. In these cases I recommend the fastest method that gives you the result that you want (sound easier than it is). I used Flat for the blur method in this node, because it is basically like reducing the resolution of an image. It works for the tears, because your attention is supposed to be elsewhere. Since the clarity of the blur doesn't matter and it should be selective with how much it blur and where on the image, it was the most logical choice. I would've luved to use Fast Gaussian, but the problem is that it does not support variation blur (similar to a defocus effect).

 - Test test test
I cannot stress this point enough! Every time you adjust something, you have to make sure that you still get the result you are looking for. If you don't, you have to be able to change it back. If you made 100 changes, how will you know which one it was that broke the result? Simple, don't make so many changes before testing. I will add this though - you can make a categorical change before testing. For example, turning off the conversion for all the alpha over nodes and seeing what happens. It's technically 1 change, because you know what caused a change if any and can correct it for whatever reason should you need to.

And that's it! Optimizing nodes is not an easy task and I know some optimizations can come down the line. Blender's inner workings have also gone through some major changes and the compositor will too. Until then, we really have the responsibility to keep optimizing whatever we put out there so that whoever uses it does not waste their time.

 - Final tip
This is one of those "doesn't matter to everyone" kinda tips. For the 3D, the slices do not come with anti-aliasing, this can leave some edges really harsh and ugly looking. If you feel inclined to do so, the post AA node for images does seem to have a good impact on this. It's totally up to you as the end user whether to add this or not.

I ran into a situation on Exodus this week where a sequence looked great for the 3D, but the original 2D looked awful (different blur method...). Anyway, I wanted to keep the clean2D (a term I use for the 2D version that will form the basis for the 3D render) for the Final2D and so I rendered it out and added some AA to it, because, like I said, some of the effects that enable it to be 3D (including the 3D itself) can make it look really harsh around the edges. Now, much much better!

Again, artists' choice. Won't happen with every scene, won't be needed with every scene.

I want to thank the LORD for pushing me to give this speed up another go. I learned a lot from it and I know you guys did too! The Node Editor can be really scary, but once you know how it works, it is really not that bad. You just need someone to show you and I hope this helps your workflow be much faster than you anticipated!

Know JESUS yet? GOD is reaching out to you through these videos. HE loves you more than you can imagine and wants you to know HIM. Not because HE's lonely, but because HE loves you and paid a heavy price to enable you to go to Heaven, where HE is. See, we all have sinned in some way shape or form. That makes us guilty before GOD. If you have ever said that you hated someone, in GOD's standard, you have committed murder (James 4). If you've ever looked on a person with lustful thinking, you've already committed fornication with them in your heart and you are then guilty of sexual impurity. If you were to face GOD on judgement day, saying: "I was a good person" will be a void argument, just like it would be before a human judge. GOD knew that we would have to pay that penalty and that we could not pay it, even if we tried, but sent JESUS to pay the price for us. Your sins were put on HIM and the forgiveness that is there for you was by no means cheap - the cross was not padded and comfortable, neither was the death.
But, HE was raised up on the third day (after being crucified) and finished the work so that we may enter through HIM paying the penalty we were supposed to pay, but it is only valid for you, if you accept it and live for HIM.

If that is you today, please, follow this prayer:
"JESUS, I believe that YOU are real and I believe YOU died for me and was raised on the third day for me. Please forgive me for my many sins. I make YOU the LORD of my life, full time and to fill me with YOUR HOLY SPIRIT. Teach me how to live for YOU, help me become what YOU have made me to be, in JESUS' Name! Amen!"

To find out more, you can check out this link:
It gives you access to free Bible translations, free teaching videos and more. Remember, this is a decision with eternal consequence, choose life, choose JESUS. :D

Have a great one!!!

Thank YOU!!!!!!

Tutorial for the node groups

October 27, 2018
Hey all!

Recently I got to share some seriously awesome node groups with you guys and today I get to share a tutorial about how some of them work (based on how a few works, you'll get how I was led to build them and be able to use them easily).

GOD is so amazing!! (^^,)

Because I know a lot of you are new to nodes, I would like to make a short FAQ here about what they are and why they are what they are. There was a time in my life when I opened the node editor and promptly closed it, hahaha, so ...

Continue reading...

Node Groups mean New Features

October 2, 2018
Hey all!

Today I get to release a new video - that feels like it took forever to make, hahaha.

GOD is so amazing!!!!!! (^^,) <3

This video comprises pretty much all the node groups that I currently have available for download. Sorry, they don't come with content to test them on, but you are more than welcome to check out Pond5. Their public domain collection has really expanded over the last year. And no, this is not sponsored, hehe.

I endeavored to show you guys what these nodes can do in as ent...

Continue reading...

For Anime - Fountain

August 15, 2018
Hey all!

Tutorial time again and today is kinda like a follow up on previous tutorials. For those of you who have thought about combining these and doing something new, this is gonna be a favorite!

I really like this tutorial and the bonus at the end, so check it out!

GOD is beyond words awesome!

In case you were wondering where you can watch the previous tutorials mentioned, you can check out these or check the description:

- Water Reflections

Continue reading...

For Anime - Garden Sprinkler

July 17, 2018
Hey all!!

About a month ago, I uploaded the last tutorial which was also about a specific kind of sprinkler. This one, quite different in approach, is one of my absolute favorites (see the applied example in the tutorial).

GOD is so awesome!! (^^,)

Again, there was no reference for this online, since sprinklers are either a background element in anime or completely ignored as far as art is concerned. So, finding reference didn't happen. I looked, again, at how water is handled and how I've handl...

Continue reading...

For anime - Course sprinkler

June 19, 2018
Hey everyone!

Yes! It's tutorial time again and this time we get to cover something that is rarely seen in anime (at least from what I've watched)! Sprinklers! Not just any, but those gholf course type from the 80's and 90's mixed with what we have today. I am so grateful for the result!

Without further ado, check this out:

GOD is so great!
 - Difficulty

Because sprinklers are so rare or so much a background feature, there is little to no attention given to it. I looked on image searches and I jus...

Continue reading...

Water Surface and Sun Rays tutorial - For Anime

April 19, 2018
Hey all!

Tutorial time again!

Today we talk about the water surface and getting those beautiful sun rays (of course compositing). Continue reading - there's more!

JESUS rules!!! (^^,)

 - Sound
   I had major sound quality issues over the past year or so. It has been a nightmare to get clean audio! I was frustrated to the max! Everytime though, GOD did come through and I got okay audio, but there has always been a significant amount of noise - at least to the point where I couldn't remove most of i...

Continue reading...

2D to 3D conversion - Proposal

April 9, 2018
Hey all!

I had the amazing priviledge of being able to write another proposal on Right-Click Select! Shockingly, I didn't actually blog about it, so that is what this is! Yay, hahaha!

So the basic idea is that you use the existing depth information (mist pass) to slice up the scene in as many slices as possible, causing something like this:

This means that you can now shift these slices and create what your eyes will see. I was extremely opposed to it, but it actually does make more sense to do ...

Continue reading...


January 3, 2018
Hey all!

Don't you just love that title?! Sounds so epic! It was from a concentration standpoint. Goodness! hahaha.

With all the work said and done, we have:

Normal and Bump Mapping

Works with averaging what is there with the map itself. Gives a nicely balanced result. Bump maps are also converted to normal maps, but purely based on a flattened version that is connected to all three axes.

Ambient Light

For this feature, I simply added an emission shader and fed it, based on circumstances, either th...

Continue reading...

Building a formula with nodes

January 3, 2018
Hey all!

Building a formula with nodes is not as hard as it seams, but it can certainly be harder than you think as well.

You have to take quite a few things into account and these make it confusing:
 - Order of operations (will affect result)
 - Vector math functions available
 - Vector math output appropriacy (which output from vector math to use and when)
 - Vector transforms required
 - Vector separation and joinings required (available math functions dependent)
 - Math node functionality
 - Math ...

Continue reading...

"For I testify unto every man that heareth the words of the prophecy of this book, If any man shall add unto these things, God shall add unto him the plagues that are written in this book:
And if any man shall take away from the words of the book of this prophecy, God shall take away his part out of the book of life, and out of the holy city, and from the things which are written in this book.
He which testifieth these things saith, Surely I come quickly. Amen. Even so, come, Lord Jesus.
The grace of our Lord Jesus Christ be with you all. Amen." Revelation 22:18-21

"Add thou not unto his words, lest he reprove thee, and thou be found a liar." Proverbs 30:6

King James Version, Public Domain

About Me

Marius Oberholster Hey! I've been doing this full-time since July of 2011. It has been an incredible learning experience, not only learning how Blender works (still learning), but also about Open-Source and the incredible software available. ----------- This Blog will be a way to stay up to date on all things Panther Dynamics as well as some personal stuff as well.

LivingWaters movies:

The Living Waters ministry kindly allow people to post these, so you too may benefit from them! :D
GOD Bless you! Please share these!

Wanna see more, check out the portfolio:

Make a free website with Yola