Skip to main content

More drawing with a wacom in Houdini

I have been improving the wacom python panel I posted about last time -- to try to solve the issues with the number of nodes I would end up with, also the file size of the .hip files were too large.

In the last version, I was saving the curve data as a string on the SOP node, but this made for large files sizes. I was also using the parms on the SOP node to configure a bunch of things for the line (like the duplication, taper and width settings.) which caused me to have to create too many nodes when I wanted to vary the settings.

I am now using the "geometry data" parm type on the SOP node to save the curve data. I am storing all of the configuration (duplication, tapering, width etc) in primitive data and have moved the settings to the python panel interface, rather than the SOP interface.

This means that I don't have to create a new node to have different settings for a curve.

I needed to add a selection tool, curve tool, and a freehand tool to the opython interface to cover all of the cases I needed.

The toggles on the interface for duplication and tapering are just settings on each prim -- each time the selection changes the interface changes to reflect the settings on the current prim.

Here is the new interface:

The icon images for the interface are saved into the SOP OTL, which is a bit strange, but I couldn't figure out how to get QT to load images from disk -- it would work if I gave it the full path to the images but I couldn't find out how to do a relative reference.

The python panel stores its own copy of the curve data in a hou.geometry() object, and copies it to the SOP node to 'export' to the node.

Each prim also stores the time that it was drawn (relative to when the panel was opened), The points also store the time that they were drawn since the start of the curve, so that the curve drawing can be replayed.

I have remapped the times and compressed it all a bit to animate the drawing of the constellation, like in the following video:

My plan eventually is to animate the reveal of the constellation drawing based on the proximity to stars. I want to do this in realtime so I will need to bake all of this data into a texture.

The new .pypanel and .otl can be downloaded here


Popular posts from this blog

Cloth tear geometry and shading detail

Been adding geo detail to the torn cloth and shading the additional geo. Shading sure is fun! :) Thickness added to the cloth geo Extrude sides are extruded out again  The second extrusion is done twice, once for the U direction, and once for the V direction. Polyframe is used to get the UV gradient to extrude along, vopsops are used to move the extrudeFront points after extrusion as you can't control the extrusion per point with just a polyExtrude node... The extrusion is done twice so that the two different surfaces represent the opposing thread directions. since my geometry (and therefore tears) are in line with the U and V direction, the effect is not obvious in this case. The extra geo after shading The .hip file below has a slightly newer shader than in the video and the image above, I removed the part of the shader that created the soft ramp for the alpha edge and used just the thread noise instead; it now looks more like: Slightly newer shader than

Wire solver and wire deformer.

Just playing around with the wire solver and deforming wires onto wires... rendered as tube primitives, 2 area lights and an env light, took about an hour to render 2K :/ hipnc is here