Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Today

    Only sharing files and links for peoples that want to learn ..including mine self Here its snippets(File) useful for Tricks and Links for Video Tut INC ...WITH FILE. https://vimeo.com/454127040 https://vimeo.com/207724703 https://vimeo.com/305429043 uiHud.hiplc
  4. Motion vector not working

    Thank you Haggi, I was looking for the trail sop but forget the name.. Nems.
  5. Motion vector not working

    I suppose that's because the optransform() returns identity matrices only in your case. What about using a trail sop to calculate the velocity automatically? Or use a timeshift to calculate the previous point position.
  6. How to fracture bricks for sim?

    Thanks man this works great! Yeah the problem was my UVs It was too small. Anyway thanks a bunch!
  7. Hi guys, I can't make motion vector working in my scene even with a wrangler point to activate it.. Any help? Thank you. MotionVector.hip
  8. Thank you!
  9. seems to work exactly that way, what exactly is not working for you? attached file with the same code Specific_pscale_fix.hip
  10. Yesterday
  11. I think now Mantra does, Arnold doesnt work with shop_materialpath on points
  12. Hello guys. Im doing some changes to NodeGraphCommon.inc and NodeGraphDark.inc to change my colors and some extra bits. Is there any chance to avoid changing them in the install directory and use my user directory? Not always i have rights to edit those two files inside the install directory. Putting them into userDir/Houdini xx/config doesnt help. M
  13. How to creat subdivision pattern ?

    v@P = set(v@uv.x, v@uv.y, 0.0); ------ v@P = primuv(1, "P", i@hitprim, v@hitprimuv); ----------------------------------- //f@r = sqrt(v@P.z * v@P.z + v@P.x * v@P.x); f@r = length(v@P); //f@r = length2(v@P); f@phi = atan2(v@P.x, v@P.z); v@P_cartesian = v@P; v@P.x = f@phi; v@P.z = f@r; ------------------------------------------- over primitives int edge[]; float longest = 0.0; int vertices[] = primvertices(0, @primnum); for(int i=0; i<len(vertices); i++) { int vtx1 = vertices[i]; int vtx2 = vertices[(i + 1) % len(vertices)]; int pt1 = vertexpoint(0, vtx1); int pt2 = vertexpoint(0, vtx2); vector p1 = point(0, 'P', pt1); vector p2 = point(0, 'P', pt2); float dist = distance(p1, p2); if(dist > longest) { longest = dist; int e[]; push(e, pt1); push(e, pt2); edge = e; } } if(len(edge) != 0) { s@edges = ' p' + itoa(edge[0]) + '-' + itoa(edge[1]); } ---------------------------- projection Ray projection Ray l-system or vice versa.. Your approche @vinyvince?
  14. If you switch Attributes drop-down to Point attributes it should work for point groups In the past I think Mantra didn't work with point based shop_materialpath so there is a chance it still doesn't, but if I remember correctly Redshift did, I haven't tried for a while though
  15. I'll check once I have access to Houdini
  16. How to creat subdivision pattern ?

    Started to get some cool things myself for a project, using my own ways, still feel a limited to code my own subdivision rules Obviously how not to mention master Michael Hansmeyer here? _______________________________________________________________ Vincent Thomas (VFX and Art since 1998) Senior Env and Lighting artist & Houdini generalist & Creative Concepts http://fr.linkedin.com/in/vincentthomas (Available soon, feel free to contact for reel and resume=
  17. How to creat subdivision pattern ?

    Really interesting thread here. Recently, our brilliant friend Akira Saito came out with the generation of some splendid forms. I though it wirth a share My assumption is he is using fractal and recursive subdivision iterations using nonstationary weights based on custom division patterns. Found it was worth to share
  18. Here is a quick capture example using attribfade (and point deform) , you could apply the same method, and even if your cavity map is changing, it will react hopefully smoothly enough. I havent used it for this kind of effect, but You could also eventually used Chop to smooth the anim ________________________________________________________________ Vincent Thomas (VFX and Art since 1998, Available soon) Senior Env and Lighting artist & Houdini generalist & Creative Concepts http://fr.linkedin.com/in/vincentthomas ballnoiseanimatedpscalefading.mp4
  19. Houdini export instances as FBX

    https://www.sidefx.com/forum/topic/53971/#post-242445 https://www.toadstorm.com/blog/?p=435 https://www.toadstorm.com/blog/?p=493
  20. Hi, I would like to ask how to export instanced geometry using Instance Node to FBX? I would like to get the instanced geometry out to work with it in Maya LT (that's why FBX) Thank you in advance!
  21. Its Old (I know)steering behaviors

    How To connect or What ?This Vex ..just want to learn ..Found on China BLog I have Code and Pict.. I know Its Old and I can Find Everywhere ..just wondering #define dao 6.28318530718 #pragma label max_force "Max Factor Force" #pragma label slow_radius "Seek Slow Radius" #pragma label acc_weight "Acceleration weight" #pragma label pc_radius "Neighbours Radius" #pragma label pc_ptnum "Neighbours number" #pragma label wander_max "Wander Max Velocity" #pragma label sep_weight "Seperation Weight" #pragma label co_weight "Cohesion Weight" #pragma label ali_weight "Alignment Weight" #pragma hint avoid_center invisible //get target vector gettarget(int target_handle){ vector target; while(pciterate(target_handle)){ pcimport(target_handle, "P", target); } return target; } // seek + flee + cohesion + seperation vector seek(vector target; float slow_radius; float max_force;){ float seek_power = fit(length(target - P), 0, slow_radius, 0, 1) * max_force; vector seek_force = seek_power * normalize(target - P); return seek_force; } vector flee(vector target; float slow_radius; float max_force;){ float flee_power = -fit(length(target - P), 0, slow_radius*1.5, 1, 0) * max_force; vector flee_force = flee_power * normalize(target - P); return flee_force; } vector wander(vector max_force; float wander_max;){ //wander force //to constrain the steering force to the surface of a sphere located slightly ahead of the character //any point on the sphere: 0 < theta < dao ; 0 < beta < dao/2 // x = r * cos theta * sin beta // y = r * sin theta * sin beta // z = r * cos beta float theta, beta; theta = fit01(noise(P*37), 0, dao); beta = fit01(noise(P*10+234), 0, dao/2); vector displacement = set(sin(theta) * cos(beta), sin(theta) * sin(beta), cos(beta)); vector wander_dir = normalize(2 * normalize(v) + displacement) * wander_max; return wander_dir; // * fit(length(v), 0, max_force, 1, 0) ; } vector cohesion(int self_handle; float pc_radius; float co_weight){ //Cohesion vector co_target = set(0,0,0); while(pciterate(self_handle)){ vector current_point; pcimport(self_handle, "P", current_point); co_target += current_point; } vector co_force = normalize(co_target - P) * pow(fit(length(co_target - P), 0, pc_radius, 1, 0), 2) * co_weight; return co_force; } vector seperation(int self_handle; float pc_radius; float sep_weight){ //Seperation vector sep_force = set(0,0,0); while(pciterate(self_handle)){ vector current_point ; pcimport(self_handle, "P", current_point); sep_force += normalize(P - current_point) * pow(fit(length(current_point - P), 0, pc_radius, 1, 0), 2); } sep_force = normalize(sep_force) * sep_weight; return sep_force; } vector alignment(int self_handle; float pc_radius; float ali_weight;){ //Alignment vector average_dirction = set(0,0,0); while(pciterate(self_handle)){ vector current_velocity; vector current_point; pcimport(self_handle, "v", current_velocity); pcimport(self_handle, "P", current_point); average_dirction += normalize(current_velocity) * pow(fit(length(current_point - P), 0, pc_radius, 1, 0), 2); } average_dirction = normalize(average_dirction) * ali_weight; return average_dirction; } vector obstacle_avoidance(vector avoid_center; float avoid_radius; float avoid_weight;){ vector hit_position; float p_u, p_v; int hit_prim = intersect(2, P, normalize(avoid_center - P) * avoid_radius, hit_position, p_u, p_v); if(hit_prim != -1){ vector turn_force, turn_direction, second_direction; second_direction = prim_normal(2, hit_prim, p_u, p_v); turn_direction = cross((hit_position - P), second_direction); turn_force = normalize(turn_direction) * fit(length(hit_position - P), 0, avoid_radius*10, 1, 0) * avoid_weight; return turn_force; }else{return 0;} } sop steering( // max velocity float max_force = 1.0; // the area radius around target, //when charactor get in this area, the the seek_power will drop down float slow_radius = 1.0; //acceleration scale for all charactors float acc_weight = 0.3; //point cloud radius float pc_radius = 0.5; //point cloud point number int pc_ptnum = 10; //wander max float wander_max = 0.02; //seperation weight float sep_weight = 0.2; //cohesion weight float co_weight = 1.0; //alignment weight float ali_weight = 1.0; //obstacle avoidance weight float avoid_weight = 1.0; //obstacle avoidance radius float avoid_radius = 1.0; // avoid target centroid export vector avoid_center = 0; ) { // get the target location vector target; int target_handle; target_handle = pcopen(1, "P", P, 99999, 1); target = gettarget(target_handle); // open the point cloud int self_handle; self_handle = pcopen(geoself(), "P", P, pc_radius, pc_ptnum); // desired_v is the force that guides the character towards its target using the shortest path possible // we add wander_force as an extra factor that will effect desired_v vector desired_v; vector steering; //define every factor forces vector seek_force; vector flee_force; vector wander_force; vector co_force; vector sep_force; vector ali_force; vector avoid_force; //get each forces seek_force = seek(target, slow_radius, max_force); flee_force = flee(target, slow_radius, max_force); wander_force = wander(max_force, wander_max); co_force = cohesion(self_handle, pc_radius, co_weight); sep_force = seperation(self_handle, pc_radius, sep_weight); ali_force = alignment(self_handle, pc_radius, ali_weight); avoid_force = obstacle_avoidance(avoid_center, avoid_radius, avoid_weight); // desired_v = seek force + flee force + wander force + seperation force desired_v = seek_force + flee_force + wander_force + co_force + sep_force + ali_force + avoid_force; steering = desired_v - v; steering = steering * acc_weight; v += steering; P += v; }
  22. action for the values outside the find attribute value array

    thank you but your code doesn't work, I want to scale the point with random_number attribute that equal with 3 by specific_pscale slider and the rest of the points with the rest slider. I'm tested the find, find returns the index of certain value in the array
  23. Tesan pointed you to the most common method to sticks your scatter points to your deformed geo. Now well dont expect miracle. If your curvature is changing quite importantly, your density distribution will also be and off course your scatter point can't stick. - Try first to see if you could find a frame where the curvature could be a decent compromise for all the animation. - If not other ideas will be play with pscale to fadeoff the point instead of brutal disappearing and do a linear interpolation with different timeshift value offset in time. Or morph between then, so the scatter point could "slide" on the surface and change scalling up and down. - Finally a brutal force solution, scatter point all around , stick in place, and link your curvature to pscale using a ramp to fine tune control. Can't see other solution for now, hope it helps! ________________________________________________________________ Vincent Thomas (VFX and Art since 1998) (Available soon) Senior Env and Lighting artist & Houdini generalist & Creative Concepts http://fr.linkedin.com/in/vincentthomas
  24. you have to use prim groups instead.
  25. Not by Houdini right now, but I think you may want something like this int values[] = findattribval(0,"point","random_number",3); @pscale = find(values, @ptnum) >= 0 ? chf('specific_pscale') : chf('rest');
  26. Last week
  27. How to fracture bricks for sim?

    Did you check the UV View (Space+5 in the Viewer)? Depending on your scale you might need to decrease the spacing on the UV Unwrap by a lot. Anyways, heres a file: frac_uv.hiplc
  28. as you can see the code below: i[]@values = findattribval(0,"point","random_number",3); for(int i = 0 ; i < len(@values) ; i++) { if(@ptnum == @values[i]) { @pscale = ch('specific_pscale'); } else { if(@ptnum != @values[i]) @pscale = ch('rest'); } } the second if inside the else doesn't work properly. Specific_pscale.hip
  1. Load more activity