Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Trilec last won the day on November 28 2020

Trilec had the most liked content!

Personal Information

  • Name
    Curt Edwards
  • Location
    New Zealand/Germany
  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Trilec's Achievements


Newbie (1/14)

  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges



  1. Awsome, definitely can use this, ideally was trying not have a cut.
  2. Hi all, I have a single poly prim with 1+polys ontop/inside, I would like to remove the smaller ones from the larger one (think bool) ideally not using a bool operation (but may be unavoidable) and using VEX, my current approach would be to extract to points and knowing the small prims figure out a way to rebuild a prim from these . (easy right ?) and suggestion welcome. Curt
  3. Hi All, Im creating geo with a primitive wrangle, each primitive used as a base to create a complex assembly (nothing new for houdini ) However, I would like to create a (handle/container/Null) object (floating on-top the assemble that's non-render'able, im thinking anim/rig like control) the final artist can select to override one of the assemblies attributes ,thus changing its properties. My current concept was to see if any bone ( kinefx) or other primitive could be ceated in VEX/SOP and used as a GUI selectable node, this would mean that each generated primitive would have a user selectable area to hold attributes the user can set/override. ...Basically a user control surface ( Primitive/Bone) generated in VEX to hold user attributes , think forest, with a controller for each tree so the user can change and attrubut on the tree (how maney leaves) Hopfully others have come across a solution to solve such a problem Any input thankful.. RED/pink would be the user selectable widget so the object attributes can be changed C
  4. Hi All, Quick question, Objective: I have two points (could be any orientation), If the distance is greater than "x" meters ( in world units, 0.5m in this example) I would like to add an additional point 0.25 Meters along the vector (eg.from first point two second point direction) is there a VEX function for this? cheers
  5. Hi kroaton , Ive also started looking at this problem, I'm at the beginning stages but will Post my thoughts and considerations. Some discoveries: *Adjusting the corrective blend shapes particular around the eyes and lips. (and re-baking these) are problematic. (hoping for procedural techniques that can be implement it here on the correctives. *adjusting/positioning the bones to match the new sculpt. (as you mentioned) *readjusting displacement maps for micro wrinkles etc, to the new sculpt locations.(again thinking possible procedural methodologies) *Pay attention to the whole Z-up /Y-Up in unreal/Maya/Houdini. My Observations. The BODY *Uses an adapted (RBF, Radial Basis Function ) solver node plugin for use on the BODY leaf nodes. (one would need to be developed for Houdini) ie. "clavicle_r_UE4RBFSolver" makes it easier to control correctives or blend shapes (orientation) and I assume to maintain compatibility with UE/DCC apps *The driver skeleton "root_drv" is the control rig in maya. *animation is exported from skeleton to unreal these curves can use "rig-inversion" to target different body types (within the meta-human rig setup) The HEAD *Separate workflow from BODY *The Maya facial animation interface board is the same as the one in unreal (one-to-one curve representation). *The interface board creates the input curves ( and with a little bit of rig-logic) creates the facial expressions ( a mixture of joint movement, blend shapes and textures) *ideally any new sculpted head shape should use Delta based blend shapes to minimize the existing corrective blend shapes. *still not 100% sure about the bone placement but ideally they should be close to the skin. (Looking at several meta human facial rigs this is fairly consistent) (lengthening rather than moving?) so far the workflow seems to be: Extract into maya from bridge (maya 2020, currently supported by plug-in) export to fbx or abc import to Houdini ...do stuff (if applying animation correctives and RBFs won't correctly work, however the animation curves /model adjustments can be applied back in maya ... next Anyway, these are just some of my thoughts in the early stages and hopefully helps others. Curt
  6. thanks noobini, This is a useful node, whats nice is its really just VEX code wrapped in a nice package for selection. seems the approach in VEX with nearpoints is still on the cards but the relbox code is clean; abs( (relbbox(0,@P).y)-0.5)<ch("spread") However this does depend on the rebbox alignment, unfortunate this fails as the bbox is world aligned and if a cut is on an angle it fails the GroupCreate (include by edge) will find the top /bottom so perhaps processing this after might help... Ill still investigate further... thanks again for the jpg, sorry you did not get a hip file...next time cheers
  7. Hi Noobini, Thanks for the reply. I simply would like an understanding if im on the right approach, a jpg concept would also be great , The script is a simple booleanfracture piece ,nothing special, my feeling was its a quite advanced topic and those who would understand the issue would not need such a thing, perhaps one of the long term members can post if this the correct assumption? cheers
  8. Hi All, sorry for the heading, Its a hard one to describe lol. I have a booleanfracture piece and want to process only the middle points , then with that create geo that knows the distance to top and bottom of its local position (as the slice fracture is not a flat plane, hopefully a picture helps). Im not sure the best approach, I would start with nearpoints in some way ,finding the top points and test down for a middle storing the lowest for distance checks?? lol, well its a tricky one
  9. Thanks, After further investigation, seems harder to control VDB than through pure poly mesh (for something like this) I was trying for an even roll as the shapes are arbitrary from bottom to top. Seems you can pass attributes via vdbfrompolygons , but not sure if this is the best solution as the vdb resolution with get very high. using vector rbox = relbbox( @P ); //boost the lower portion if(rbox.y < 0.06) density = 1; //shape f@density -= rbox.y *.2; In the wrangle I get a little way but it removes the top and bottom and falloff not quite there yet.
  10. thanks Konstantin , A nice simple example, It seems attribute transfer is problematic for volumes. I and trying to roll off at the edge and approched this with getOutsideGroups ...attribtransfer and attribpromote Is there a good way to get the same or similar with voxels (volumes) (soft rolling off to the lower edge)? thanks again
  11. Thanks Tesan, Seems the Volume Wrangle geometry node might be worth exploring, ideally I'm trying to avoid advanced mathematics but certainly there might be some tricks here that are interesting. I will need to find some some simple examples using this node to get a better understanding. I assume this means there's no direct manipulation of voxels as in VDB only volume voxels.. or are these the same? thanks again.
  12. Hi Superior brains, as I approach modelling methodologies, I've turn my attention towards VDB's In the below example I've used a grid (but this would be an arbitrary shape Convex/concave "2Shape") with a noise pattern to create heights for a later extrude; I then convert to VDB to "cleanup the geo" My question: is it possible to directly manipulate the VDB via VEX to do something similar without having to go through the conversion process (poly to VDB) One reason behind this is the shape I wish to extrude can be fairly complex and dense thus making the conversion process slow, so perhaps adding voxels or extruding/expanding/manipulating voxels is possible in some way? ( VDB Wrangle?), feels like this is not possible but never hurts to ask... unless its physical...;)
  13. Hopefully this is helpful to others. Small snippet to visualize the different noise's. I have not put them all in, but if you feel inclined please add more and reply-post. You will need to create the menu (as this does not seem possible in VEX and has to be done via the parameter interface? and a 100x100 grid as input. // // Houdini Noise visulization - Curtis // int NoiseMenu = ch("NoiseMenu"); // Create a Ordered Menu "NoiseMenu", In the "Pram Interface", //Token, Lable ... // 0 vnoise // 1 wnoise // 3 flownoise // 4 curlnoise // 5 xnoise // 6 random // 7 alligator float frequency = ch("frequency"); float rough = ch("roughness"); float atten = ch("attenuation"); float jitter = ch("jitter"); int turbulence = ch("turbulence"); int flow = ch("flow"); int seed = ch("seed"); //Noise data vector vp0, vp1; float output1=0; float output2=0; //No Case stament in VEX ... elseif it is.. if ( NoiseMenu == 0 ){ //vnoise VEX function //Generates Voronoi (cellular) noise. vnoise(@P, set(jitter, jitter, jitter), seed, output1, output2, vp0, vp1); } else if ( NoiseMenu == 1){ //wnoise VEX function //Generates Worley (cellular) noise. wnoise(@P, @P.z*frequency, output1, output2); //general noise } else if ( NoiseMenu == 2){ //snoise VEX function //functions are similar to wnoise. output1 = snoise(@P, turbulence, rough, atten); } else if ( NoiseMenu == 3){ //flownoise VEX function (soft) //Generates 1D and 3D Perlin Flow Noise from 3D and 4D data. output1 = flownoise(@P*frequency, flow); } else if ( NoiseMenu == 4){ //curlnoise VEX function //Computes divergence free noise based on Perlin noise. output1 = curlnoise(@P*frequency); } else if ( NoiseMenu == 5){ //xnoise VEX function //Simplex noise is very close to Perlin noise output1 = xnoise(@P*frequency); } else if ( NoiseMenu == 6){ //random VEX function //Generate a random number based on the position in 1-4D space. output1 = random(@P*frequency); } else if ( NoiseMenu == 7){ //anoise VEX function //Generates "alligator" noise. output1 = anoise(@P*frequency,turbulence, rough, atten); } //Output to 100x100 grid as colour @Cd = output1;
  14. Thanks Flcc, Interesting, uses similar to above, by default if you turn the Material type from Concrete to Wood (boolean fracture) you need to change the group expand to "wood_cutoutside". im still investigating and will post any other VEX solutions I might find. c
  • Create New...