zutilz v.3...updates- 1st post | new:mac & linux .so's

I am now working on a new seq plugin called zutilz which gives you a mask or grayscale output based on the zbuffer. You can select the beginning and ending z-values which makes it alot easier to get an accurate mask or a good 8bit grayscale depth map.

Load a scene strip (or Iris-Z)and add the plugin and push the [n] key to access the buttons that control the plugin.
now you can add a zbuffer to an image by adding a second strip to the plugin - see below
These are the default settings:

These settings give you an instant 8bit grayscale depth map of the USED portion of the zbuffer. Turn off autoselect and adjust the start[>Z] and end[<Z] values for even better results.

In the spirit of the f1 competition, lets use this abandoned model…
This is the error window that you get if there is no zbuffer to work with:

3 new TOG3 mode buttons:
http://webpages.charter.net/paprmh/zutilz/db1.pngselected range grayscaled(8bit depth map) - outside selected range masked to mask color & alpha http://webpages.charter.net/paprmh/zutilz/f1depth.png
(autoselect on -> background alpha 0)

http://webpages.charter.net/paprmh/zutilz/db2.png dumps the zbuffer into the image buffer so that you can save a 32 bit png of the zbuffer that can be reinserted to the image png later for composting(it looks wierd but it works… & the 2 pngs are about 1/2 the size of a comparable iris-z)
first image is what you what you see in the editor, second is what is actually saved with alpha:

http://webpages.charter.net/paprmh/zutilz/vb1.png Gives you 3 gradients- red->yellow below start-z, grayscale of the selected zvalues, blue->cyan above end-z(NOTE: if you save this image as rgba, the blue and red gradients will be saved with the alpha value that you have set for the mask). This mode is useful for setting the start and end z values for the selection
(invgradient shown)

http://webpages.charter.net/paprmh/zutilz/vb2.pnga dof mask of sorts, that leaves the selected z all black or white then gradient outward. This is just an experiment- needs a way to set some clipping values to be really useful…
DOF clipping has been added - see below
with the selected zvalues shown here (viewZ):…you get this greyscale DOF mask:

http://webpages.charter.net/paprmh/zutilz/mb1.pngselected z-values masked to mask rgba -outside selection output normally

http://webpages.charter.net/paprmh/zutilz/mb2.pngselected z output normally - outside selection masked

The other buttons:
http://webpages.charter.net/paprmh/zutilz/ab1.png plugin’s simple guess as to the most important part of the zbuffer:
>Z = closest pixel
<Z = furthest fully opaque pixel
->turn off to manually adjust start and end z of selection

http://webpages.charter.net/paprmh/zutilz/ssb.png select start (select greater than this value)

http://webpages.charter.net/paprmh/zutilz/seb.png select end ( select less than this value)

http://webpages.charter.net/paprmh/zutilz/dofbo.pngNew clipping factor for the near and far dof mask gradient. Adjust these to control the max amount of blur in each direction
DOF without clip:…DOF with clip front=100, rear=200

http://webpages.charter.net/paprmh/zutilz/obo.pngoutput the working zbuffer to the plugin output.
http://webpages.charter.net/paprmh/zutilz/u2bo.pnglets you use ibuf2 (either as a zbuf snapshot img or as a scene) to import a zbuffer to an image

These 2 buttons let you insert a zbuffer into a previously rendered image for composting purposes…remember that pic that took you hours to render and you would like to have the zbuffer for composting that pic without the wait?
First, load the scene that you rendered the image from and turn off all of the fancy render stuff that made it take so long to render(ao, shadows, ray, etc). Go to the seq editor and add the image & scene. Now select the img then shift select the scene and add the plugin. Now toggle [use ibuf2] on and the plugin will work with the image according to the zbuffer in the scene…If you toggle the[output zbuf] button, you could now use one of the other plugins that depend on the zbuffer (like the zblur plugin) on your image

http://webpages.charter.net/paprmh/zutilz/ib1.pnginverts gradient from black closest to white closest

http://webpages.charter.net/paprmh/zutilz/tb1.pngprints info to the console window

http://webpages.charter.net/paprmh/zutilz/tb2.pngprints possibly Too Much Information

the color picker and the alpha slider are for the mask color used in the masking operations

The console screen gives you info about the z-buffer values and plugin operations

Try the newest version:


Here is a nice new mac compile complements of gojellybelly:

now a new linux version by tarlack:

I think it works fine, thank You for this plugin!
Now I’m waiting for a integrate it with rendering system, it is important to have a RGB, A a Z data of every frame, mayby sometime Blender writes this data (RGB, A, Z) of the several frame at rendering animation without using a sequence plugins.

I’m sure that when you post the source, one of us could quickly compile it for Linux. Can you tell us more about how one might use this plugin or its output?

sundialsvc4. Imagine that You have a grayscale Z map of every frame, then You can use it as mask and fast control at postproduction DOF, color correction etc, it is faster than DOF plugins in 3d applications

How about a Blender example of how to do exactly that? I’ve been poking around for a plugin that uses a depth-map to control (DOF) blur. Most likely I am overlooking %| what is in front of my nose…

yeah, sorry… the source is now in the first post

hmmm… well, at least I have more good reviews than bad :-?
(thanks piotrekk glad you like it)

EDIT: All up to date info has been moved to the first post…

BTW- I origionally started working on this plugin because of this thread: https://blenderartists.org/forum/viewtopic.php?t=33676&highlight=

Very nice!
I read an article(And everyday i log on, I google blender to see wasssup) that pretty much said(Im not quating, but I have gotten the impression of) that Bleder has the 3DCG hardballers shakin in their boots! I see more and more, and more and even more new things happening to Blender everyday here in elysiun.
Blender is amazing! And when people like you break out cool stuff lke this on an almost daily basis, It just shows that other comercial applications are gonna end up curbside because they do not allow the community’s direct influence to their applications to evolve them.
Yeah yeah yeah, I know you heard it all before. Its just cool to witness all the cool things you are all doing and I am happy, very happy to be here learning.

Thank you

Hi, I tried compiling sources in linux and run into this:

z-screen002.c:34: error: COL' undeclared here (not in a function) z-screen002.c:34: error:CHA’ undeclared here (not in a function)
z-screen002.c:34: error: initializer element is not constant
z-screen002.c:34: error: (near initialization for varstr[10].type') z-screen002.c:34: error: initializer element is not constant z-screen002.c:34: error: (near initialization forvarstr[10]’)
z-screen002.c:35: error: initializer element is not constant
z-screen002.c:35: error: (near initialization for `varstr[11]’)

Do you have any idea what this might be ? Maybe an old header file? I’m pretty interested on this plugin, it could save me a lot of work.



What you are saying is true. Although Blender is not, and is not designed to be, a “motion picture CG package,” it definitely proves the value of open-source development and portends many significant changes in the commercial software industry. It cannot be disputed that Blender does evolve faster, and have more advanced features faster, than other competing products. It does so with some tradeoffs, but it does so nonetheless.

There was a time – I remember it well – when IBM’s operating systems (there was nobody else to speak of…) routinely shipped with open source. Mind you, it was IBM’s source, it was proprietary, licensed source, but nonetheless you saw the same kind of “community” involvement and IBM was very grateful for it. Their products were better for it, too.

I am still looking over the sequence-plugins, trying to find the right one to use for DOF, now that we have depth map information. It would simply be a selective-blur plugin and preferably one that allowed the amount of blur to be controlled either in a linear fashion or with a cosine-wave (using the latter to weight the blur-amount).

malefico: yeah, you need the new header files from the repository-
the new defines are for the color picker

the package also includes some new plugins that SirDude recently added

Quick tip-> if all you want is a depth map greyscale and you are using a scene strip, turn off all of the fancy render stuff (AO, shadows, ray, etc.) and the seq editor will respond faster :wink:

The headers included with 2.36 work as well.

I rewrote most of the plugin so I figure I’m entitled to one bump…

check the first post

yeah ! it works !
i was struggling to find a plugin like this that would work :slight_smile: thank you very much !!!

awsome plugin in After Effects its perfect of DOF using the z layer with compound blur!

Just wondering why when I try to add this plugin to a strip in the sequence editor (v236), it reports that ‘ERROR: no plugin’

This effect sounds cool, just what ive been seeking for ages (except an export camera movement to after effects script)


Christian Krupa

… But what can you DO with this thing?

krupa: What os are you using? I know that the win .dll and the linux .so work ok … I have no way to test the mac build though

… But what can you DO with this thing?

Its a real easy way to get a decent 8bit depth map of your scene for composting purposes without special renders… also no need to adjust clip start and clip end of the camera like you have to do with showzbuf plugin (It’s easier to adjust the selected z values if you do though).

also the mask option lets you mask out portions of the scene by their z-value - for instance if you wanted to remove the background of your scene, all you would have to do is adjust select end a bit and use invmask and its gone…possibly usefull for checking out several different backgrounds without rerendering

Me personally? I’m using it to learn c and how to code for blender :smiley:

dare I ask if you’re trying to load the plugin source instead of the binary? %|