Paul Newman

Paul Newman

About Me

EXPERTISE
VFX Artist
INDUSTRY
Film/TV

Connect

LOCATION
South Africa

Houdini Skills

Availability

Not Specified

Recent Forum Posts

How to do this particular HScript with Vex? Dec. 3, 2016, 10:56 a.m.

Konstantin Magnus
Setting up dozens of geo nodes with the same content looks not very Houdini-like to me.

One way of scaling tubes up and down is using a copy SOP. Also make sure to have a look at CHOPs for these kind of effects.
Thanks for your time to teach me with an example scene!

Coming in cold on a deadline, the main thing is to get something that works ASAP.

I did originally use the copy SOP for non-animating shafts. The idea of animating a point before copying geometry onto it is so cool! That's another Houdini a-ha moment for me!

Cheers!

How to do this particular HScript with Vex? Dec. 3, 2016, 6:21 a.m.

Hi!

I needed to automatically animate about 80 tubes to illustrate drilled shafts in the ground, animating the Y-scale of each shaft from 0 to 1 at a fixed speed, but not all shafts at once. I did not want to keyframe all that by hand.



As a Houdini newbie I excitedly jumped into solving it with Vex. A SOP Vex exposed the points while I really just needed quick access to the Y-scale attribute at object-level. I briefly considered an Attribute Wrangle node but I was sorely pressed for time considering that I still had to learn how to code Vex, HScript or whatever was required. Although I had read somewhere that HScript was deprecated, I went for it.



In the Textport I setenv:

playPoint = 140
scaleDuration = 20
spread = 100

I wrote the following HScript for the Y-scale of the first tube before making copies:

{float n = atof(substr($OS,7,3)); float v = 0; p = int($playPoint + ((rand(n) - 0.5) * $spread)); if ($F > p) {v = ($F - p) / $scaleDuration;} if (v < 0) {v = 0;} if (v > 1) {v = 1;} return v;}

HScript description:
  1. get tube geometry node name (“shafty_001”)
  2. strip out digits (“001”) and convert digit string to float
  3. use digit (unique to each auto-numbered tube) to seed the random generator (ranging from 0 to 1)
  4. offset random values between -0.5 and 0.5 to allow start time either side of a point in time
  5. multiply offset with ‘spread’ global variable (frame count for animating all the tubes)
  6. compute scaling steps using my ‘scaleDuration’ global variable (individual tube animation duration)
  7. add to ‘playPoint’ global variable (animation of tubes is now spread around this point in time)
  8. clamp result between 0 and 1 (my code here is probably inefficient)

It works like a charm! The global variables allowed me to very easily time the animation. HScript is suitably fast = real-time viewport playback for all those tubes.

Questions:

(1) Would you do this using SOP Vex? If so, how?

(2) Would you use an Attribute Wrangle? If so, how?

(3) Any other clever / efficient way to solve this?

irregular Mantra frame render times Dec. 1, 2016, 5:30 a.m.

Hi everyone!

Before I ask my question, I suppose a short intro is in order…

I've been using Houdini Indie for a couple of weeks (thanks SideFX for Indie – really!). I picked it up fairly quickly once I “got” a few paradigms. Houdini is really a pleasure to use! I jumped right in and after an hour or so started doing commercial production on some simple 3D logo project. I had used Project Messiah Studio and Lightwave 3D before that (and several modelling apps). My current workflow also includes Syntheyes which plays very nice with Houdini. A recent project includes a truck model of about 5 million polygons and Houdini just shines! I've been doing commercial 3D animation since I got a copy of Imagine 3D for my Commodore Amiga from a stiffy disc on a graphics magazine cover. Since then I have worked as linear and non-linear video editor, VFX artist, coder, web developer, sysadmin, film producer, director, screenplay writer, and more recently enjoying the privilege of setting up a full service production studio with my wife and kids who are all amazingly creative! At this point you may think me a fossil but I'm still only 17 at heart with an able 47 year old body.



I'm really looking forward to learning much from you guys and perhaps also help others!

I currently work on Windows 7 Professional 64-bit, Intel 2600K @ 3.4GHz, SSD, 16GB RAM, Nvidia GTX660. I hope to soon upgrade to a GTX1070 with Octane Render for Houdini.

Here's my question: When rendering a scene where the composition is very similar (nearly identical) from frame to frame, I find Mantra's render times quite irregular.

This scene is a tanker truck on a floor with raytraced shadows and PBR rendering on all available processors with the camera just slightly changing position between frames.

Here's a few recent Frame Wall Clock Times obtained from Alf Progress on the Houdini Console:

6:43 min
6:05 min
4:51 min
5:41 min
6:23 min
5:53 min
6:27 min
4:32 min
6:17 min
6:43 min
5:55 min
7:03 min
4:08 min
6:30 min

Is this normal behavior? That's quite some fluctuation of over 2 minutes per frame between extremes. System RAM usage maxes out at 10GB of 16GB during this render. I don't do much else at the same time, except typing this post, print a document, and email.

Looking forward to your replies!