Jump to content

mantra "clusterThis" procedural geometry DSO


Guest xionmark

Recommended Posts

Guest xionmark

You can install the libraries in any place that you like really, but you'll likely have to set your LD_LIBRARY_PATH environment variable. I would highly recommend to get the open VDB Houdini toolkit as some of the examples will use some of the SOPs and you can also use the vdb_view and vdb_print utilities to examine the VDB files created for processing (which helps in debugging and tuning for performance).

On my system (Ubuntu) I have the open vdb libraries in /usr/local/lib/:

sirius:/earth_home/mstory/work/HDK/VRAY_clusterThis/distro> ll /usr/local/lib/*vdb*

lrwxrwxrwx 1 root root 26 2012-11-25 14:20 /usr/local/lib/libopenvdb_houdini.so -> libopenvdb_houdini.so.99.0

-rwxr-xr-x 1 root root 2880496 2012-11-25 14:20 /usr/local/lib/libopenvdb_houdini.so.99.0

lrwxrwxrwx 1 root root 18 2012-11-25 13:47 /usr/local/lib/libopenvdb.so -> libopenvdb.so.99.0

-rwxr-xr-x 1 root root 1541766 2012-11-25 13:47 /usr/local/lib/libopenvdb.so.99.0

The LD_LIBRARY_PATH environment variable is:

LD_LIBRARY_PATH=/usr/local/lib/

Hope that helps.

--Mark

Edited by xionmark
Link to comment
Share on other sites

  • 2 weeks later...

Thanks Mark, for everything.

I'm still a Houdini newbie-intermediate, so I just want to make sure I understand what your tool does: at render time, it takes the point data, creates a volume and an approximate fluid container (either with OpenVDB or with Houdini's native tools), and permits you to further instance additional points (or geo or primitives or whatever) within a set radius of each point, while preserving (or modifying, with CVEX or noise procedural functions or whathaveyou) P, N, Cd, A, v, and pscale attributes for each instanced point, is that correct? And the modifications are made to the original points as well?

That is hella cool. Let me know if I have that right.

Also, I wanted to mention, with some degree of difficulty, I managed to figure out a pretty easy way to compile and build on OS X (10.7.4, Xcode 4.5.2), if anyone is interested... rather than using the included Makefile, I modified a copy of hcustom, which serves the purpose of passing flags appropriate for your configuration to hcompile; this means, if you've updated Xcode since installing Houdini, you're going to have to reinstall Houdini (it should be pretty apparent if you can't compile the simple star sop from the $HFS/toolkit/samples dir... the source for which, of course, has to be copied to a directory where you have appropriate read-write permissions, unlike anything under $HFS).

1. Go to OpenVDB.org and download the source for OpenVDB and OpenVDB_houdini

2. From a houdini shell (everything must be done with the houdini environment initialized), you're going to want to adjust the Makefiles for each package to make sure things install where you want them. Have a look at this thread on the OpenVDB forums - things should compile without a hitch: https://groups.google.com/d/msg/openvdb-forum/qQNJ1jwtqX4/msbrTXmz4A4J

Make sure you install OpenVDB's libraries to somewhere hcustom can find. I installed OpenVDB to /usr/local.

3. After cloning Mark's ClusterThis repo (I checked out the 2.5 branch), you're going to want to copy Houdini's $HFS/bin/hcustom script local to the clusterThis source, and modify it to include a couple of build variables clusterThis needs for compiling.

a) under the first "set CCFLAGS" line, add this: set CCFLAGS="$CCFLAGS -DMAJOR_VER=2 -DMINOR_VER=5 -DBUILD_VER=343"

(note that these variables are what I used for clusterThis 2.5.343. Change your minor version and build version accordingly. The build version is just the nth day of the year - in a shell, type "date +%j" to get that).

B) Run your modified hcustom for VRAY_clusterThis.so.

c) not sure if this is necessary, but I copied VRAY_clusterThis.dylib from ~/Library/Preferences/houdini/12.1/dso to ~/houdini12.1/dso/mantra (mkdir as necessary)

4. Copy the VRAYprocedural file to ~/houdini12.1

(I had to comment out the #include "$HFS/VRAYprocedural" line at the bottom).

5. Copy VM_GEO_clusterThis.otl to ~/houdini12.1/otls

6. run mantra -V4 from the houdini shell, and make sure clusterThis shows up, no exceptions are thrown, etc.

And with that, you should have a Mantra_clusterThis otl in your SHOP context, which can be loaded into the procedural shader for any geo that has the appropriate point attributes (use a point SOP if necessary to add N, Cd, Alpha, pscale, vel, and id). May want to delete extra attributes beyond those.

Anyway, that's what I've discovered so far about clusterThis. Looking forward to actually figuring out how to use it properly :)

Link to comment
Share on other sites

Guest xionmark

I'm still a Houdini newbie-intermediate, so I just want to make sure I understand what your tool does: at render time, it takes the point data, creates a volume and an approximate fluid container (either with OpenVDB or with Houdini's native tools), and permits you to further instance additional points (or geo or primitives or whatever) within a set radius of each point, while preserving (or modifying, with CVEX or noise procedural functions or whathaveyou) P, N, Cd, A, v, and pscale attributes for each instanced point, is that correct? And the modifications are made to the original points as well?

That is hella cool. Let me know if I have that right.

Hi Zach!

Thanks for compiling on OS-X, it's on my TODO list(s) and acutally there's only a few changes I have to do to make the Makefile a little more friendly. I'm curious about hcustom finding the openVDB libs during the linking stage as well at runtime. On OS-X, where do the Open VDB include files live? And do you have your LD_LIBRARY_PATH set? To something like: "/usr/local/lib/"?

You description is fairly accurate, I have some flow charts in progress that gives a better detailed description without having to scan threw the code/doxygen docs.

One fairly significant change before I release 2.5 is to place the VDB grid creation into the initialize() method, and have it save those grid files for similar reasons that I save out the instanced geo file when using deep shadows so mantra (via clusterThis) can read the file instead of executing the instance generator again.

Also, I'll then be able to pass those grids (hopefully efficiently) to the CVEX processing so not only can you modulate data before instancing, but during instancing and post instancing ... (!).

There's other extensions to the CVEX code that I'm behind 'cause of the very cools things I'm seeing in the (relatively simple) use of Open VDB, volumes for moving points and blending attributes, but it's been worth it, lots of potential that is much easier accomplished than previous techniques. Yep, this works better! :-)

I'm slowly getting the examples into movies on Vimeo and will have a video tutorial of usage and tips once we get the last big changes done.

Now I'm *totally* focused on getting usage in a project, especially of the experimental sort.

Contact me through od[force] if anyone here is interested. You don't need to be in the Seattle area.

Must be non-violent and exceptionally unique ideas; we're looking to finance it so we'll need group involvement and great content.

--Mark

Link to comment
Share on other sites

  • 2 weeks later...

Thanks for compiling on OS-X, it's on my TODO list(s) and acutally there's only a few changes I have to do to make the Makefile a little more friendly. I'm curious about hcustom finding the openVDB libs during the linking stage as well at runtime. On OS-X, where do the Open VDB include files live? And do you have your LD_LIBRARY_PATH set? To something like: "/usr/local/lib/"?

Ah, yeah, sorry, I forgot to mention that. You do have to have your LD_LIBRARY_PATH set to include /usr/local/lib; I also compiled openvdb directly to /usr/local, which I'm sure wasn't the safest way to do that, but... gotta live fast and die young, you know?

Thanks for clusterThis, this has been very interesting to work with.

Link to comment
Share on other sites

Guest xionmark

Cool! We're just about done with the major surgery and starting to button everything up for release of v2.5.

It's supposed to be pretty easy to generate volumes from the VDB grids to pass to mantra, and thus apply all the volume tools (in your shaders) to the "clustered" volumes. I'm hoping we can get that into v2.6 around end of January.

There's a flow chart updated for the render method that should help, I'll have more detailed diagrams soon which will make it clearer what's going on under the hood and how to utilize it's features: http://www.digitalcinemaarts.com/dev/clusterThis/design/clusterThis_flowchart.pdf

Take care,

Mark

Edited by xionmark
Link to comment
Share on other sites

  • 2 months later...

Heya Mark,

Hope you're doing well. Just out of curiosity, what version of openVDB are you building against? I'd like to play around with some of the new nodes in 1.0.4, but I don't want to break my precarious build of clusterthis :)

Link to comment
Share on other sites

Guest xionmark

Hi Zach,

It's using v1.0.3, I'll likely be updating the code to v1.0.4 later this week. I want to finish the last piece of threading modifications for this next release as well.

Hopefully I'll have some tutorials finished then too, people keep asking ... I keep running short on time. :-(

--Mark

Link to comment
Share on other sites

Guest xionmark

Heya Mark,

Hope you're doing well. Just out of curiosity, what version of openVDB are you building against? I'd like to play around with some of the new nodes in 1.0.4, but I don't want to break my precarious build of clusterthis :)

Modifications are complete for OpenVDB v1.0.4. Still have some work to do on remaining multithreading.

http://www.digitalcinemaarts.com/dev/clusterThis/download/mantra_clusterThis_v2.5.426_H12.1.125.tar.gz

https://github.com/digital-cinema-arts/clusterThis

--Mark

mantra_clusterThis_v2.5.426_H12.1.125.tar.gz

Link to comment
Share on other sites

Guest xionmark

Finished modifications for OpenVDB v1.0.4.

Still have a bit of work to do to compete remaining multi-threading of the instance generator. Maybe soon ... :-0

http://www.digitalcinemaarts.com/dev/clusterThis/download/mantra_clusterThis_v2.5.426_H12.1.125.tar.gz

Source code:

https://github.com/digital-cinema-arts/clusterThis

Still plenty of things to adjust and refine ...

--Mark

Link to comment
Share on other sites

Guest xionmark

BTW, OpenVDB hasn't actually reached v1.0 yet, it's actually at version 0.104 - major version 0, minor version 104 :)

ACK! Silly me.

Thanks Edward!

--Mark

Link to comment
Share on other sites

  • 2 months later...

hey guys,

few questions,

Will it work with H12.5 ?

Where can i see some examples of clusterThis in action ? As far as i can understand, its for delayed load point instancing. But this feature is already in Houdini, so what new is bringing this plugin ?

Can I create volumetric point cloud effect with this ? I see there is VDB support, but what practically does it allow me to do, instance little volume to each point ?

thanks!

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...
Guest xionmark

Hi Dave,

My apologies for not getting back to your email from a few weeks ago, I had unexpected events happen that tore me away from keeping up on the forums & lists.

Yes, I need to get a build for 12.5, and start the last phase of coding, much of it as it is now is the result of a lot experimenting these last few years (darn, this project is some 5-6 years old already!).

Take care,

Debra

Link to comment
Share on other sites

  • 1 month later...
Guest xionmark

Hello Mike,

Plans were to have an H12.5 version out a last month or so, I've been delayed by the fact I've moved to a new city (Olympia, WA!) and am starting school (started last week, LOVE IT! The Evergreen State College rocks! Soon there will Greeners as part of the Houdini community).

I'm staying in temp housing so I don't have much of my studio set up yet, hopefully it won't be too long until everything is up and running again.

*If* I have time this weekend, I might be able to work with just my laptop.

Thanks for the feedback Mike, it's a fun tool to use.

BTW: I talked to another s/w engineer yesterday and will be meeting a TD/artist tomorrow about the org I'm forming here, soon there will be a team supporting our projects ... not just me! :-)

Take care,

Debra

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...