Jump to content


Popular Content

Showing most liked content on 01/14/2020 in all areas

  1. 7 points
    Let's suppose we want to imitate graffiti art pieces with minimal effort. Warp the lines into curvy curves. Map the direction to the closest curves with greyscale values. Colorize each segment. And e x p l o d e by color difference. curve_art.hipnc
  2. 1 point
    Modeler 1.0 for Houdini released! Free for all the DM 2.* users. $70 for the DM 1.* users. https://gum.co/xKBKM What's new: 1. DM now renamed to Modeler 1.0 2. new feature: the DM menu (Z hotkey) has been replaced with a new alignment menu where you can use tools for fast and accurate transformation. The menu includes the whole set of tools for working with a compass, geometry centring, quick flattening with gestures and many other transformation tools. Use the hotkeys for the tools of the old DM menu. 3. new feature: Deform Menu (N hotkey) with lots of interactive deformation tools including a new Lattice tool 4. new feature: MODELER_PICK_STYLE environment variable allows to override Modeler startup selection pick style. Add it to the houdini.env file. Use "Box", "Lasso", "Brush" or "Laser" values, then restart Houdini. 5. new feature: the hard and soft boolean tools are now combined in a new menu called Boolean (J hotkey) 6. new feature: a Fix Curves tool helps get rid of broken lines in open polygons. This helps when beveling corners of open polygons. 7. new feature: a Select Curves tool helps to select open polygons (curves) in the model 8. improvement: now some tools can create curves and process them. For example, the Extrude tool can produce lines from selected points. The Collapse tool can flatten open polygons (curves). The Connect tool can be used to cut a segment between two selected points or connect two open faces. The Push tool now properly moves points in open faces. 9. improvement: the RMB menu of the Push tool has a new item Toggle Connectivity, which allows you to move points, capturing the points of other closed pieces 10. improvement: the Push tool now works slightly faster 11. improvement: the Push tool can now slide point with Ctrl+MMB 12. improvement: the mouse and keyboard shortcuts of the Push tool have been completely redone 13. improvement: if nothing is selected, the Hose tool searches for all the curves in the current geometry 14. improvement: a Group parm added to the Hose Tool. Can be used in conjunction with a result of the Duplicate tool 15. improvement: Hose now creates straight edges tube if the Resample Curve set to zero value 16. improvement: Geometry Library renamed to KitBash and works only as the python panel 17. improvement: KitBash replace feature now doesn't update the item icon 18. improvement: Tools Panel now has a new category KitBash with tools for working with the library items. Now you can create, save, overwrite and update icons faster, without actually working in the KitBash panel 19. improvement: volatile edge sliding now does not require explicit movement of the mouse pointer to the edges 20. improvement: volatile edge sliding now can be used to slide points and faces 21. improvement: Fix Overlaps can now use face groups 22. improvement: Duplicate applied to edges now creates a curve in the current geometry object 23. improvement: the Resymmetry tool now works slightly better. The Tollerance parameter is no longer saved between nodes (). This allows you to not change the position of the seam points. 24. improvement: mouse wheel manipulation in various tools has been improved 25. improvement: new simple box type has been added to the QPrimitive HDA 26. improvement: Tools Panel now has a more logical structure for faster access to popular tools 27. improvement: the Modeler shelf was fully revisited 28. improvement: the Walk History Up and Walk History Down tools (Up and Down hotkeys) now work more interactively when traveling through nodes with more than one input or output. 29. improvement: the Select By Shells tools was replaced with a new Convert To Shells tool (Ctrl+1) 30. improvement: double-clicking with LMB in the viewport is completely revisited. Now you can jump to objects level by double-clicking LMB in an empty space. Clicking on a geometry allows you to quickly switch between objects. If you are in a certain state, double-clicking activates the selection mode. All these improvements speed up the modeling process. 31. improvement: the deformation tools (Size, Ramp, View) now have the fixed blend feature. The transition between the deformable points and the undeformable part looks more correct. 32. fix: Hose now orients rings copies correctly 33. fix: Slice, Mirror and Cut tools now set correct geometry center on tool activation 34. fix: JumpUp and JumpDown tools does not work when Compass is active 35. fix: QLight now works properly if you run it from the orthographic viewport 36. fix: sometimes camera movement with Alt did not work after a mouse click 37. Lots of tools have changed hotkeys. Look at Tools Panel for more details. 38. Python code has been revisited 39. Documentation has become more detailed 40. Overall speed improvement 41. Other improvements Works only in Houdini 18. Use build >= 18.0.346
  3. 1 point
    if you will select Model > Physical SSS there is Enable Multiple Scattering checkbox where you can find Quality parameter and the same thing under Enable Single Scattering there are Intensity and Quality
  4. 1 point
    Love it, here are some Pollocks made with a slight variation on your technique.
  5. 1 point
    Hi all, As some of you may know I have recently started a youtube channel where I am sharing some techniques, setups and tips. My goal is to first cover some of the fundamental tools/setups and then build more elaborate setups. I wanted to share this with the odforce community too as this community will always have a special place in my heart :). Thank you for watching & have fun learning! The channel: https://www.youtube.com/channel/UCZMPkkgnAFghvffxaTh6CsA My first video:
  6. 1 point
    Also here is a short video tutorial in case you still wonder how it's done:
  7. 1 point
    Hi all! This is the dynamic cloud I created with time-lapse effect in Houdini 17.5. I tried many ways and added several types of Gas Microsolvers, especially during the process of the dissipation and creation of the could. Because this is a difficult problem that must be solved in order to complete simulation, I added more Gas Microsolvers to control the shape of the cloud and adjusted its ambient temperature and buoyancy forces. Eventually the problem is solved. You’re welcome to make comments and discuss the related skills. https://vimeo.com/376645761 My PC specs: Memory: 64GB Processor: AMD Ryzen 1950X Graphics: GeForce GTX 1070Ti Simulation: 20H Space disk: 500G Render:Mantra I recommend using Linux for massive simulation because Linux requires less ram usage than Windows.
  8. 1 point
    I was facing the same problem recently. I just used a sop solver instead. Object merge your v source to the sop solver and add it to vel.
  9. 1 point
    Nope,Blender able to pick any attribute name as you named it in Houdini,"Cd","blabla",etc.
  10. 1 point
    I demand this to be renamed to Curffiti
  11. 1 point
    Hi, there are probably many ways to do this. Here is my approach: making a single prim curve by connecting each curves (reversing u-value manually, if necessary) defining an u-value (start) and an offset-value (width) additionally a speed modification can be used (to make the carves reach the ends at the same time) creating 2 curves with u + speed1*width and u - speed2*width Carve curve on controlled PT_.hipnc
  12. 1 point
    Well, I don’t really understand the need so hard to orient you in the right direction, but maybe with a bunch of switch nodes and timeshift node ? Really depends on what you need to achieve.
  13. 1 point
    Check on your L_system little box for output POint-attributes ( you get something nice). and fallow those tutorials. Maybe it Helps https://www.sidefx.com/forum/topic/56186/ https://www.toadstorm.com/blog/?p=230 https://www.sidefx.com/forum/topic/39214/
  14. 1 point
    test with previs Scene but with Blender realtime Eevee render. 2 million polygons. 10-20 fps on RTX 5000. (live viewport below) the offline rendering took 3 seconds not sure what is causes, probably loading time houdini openGL rendering: the prman 2-minute rendering for comparison : Realtime engines are on the rise! I will keep an eye on this!
  15. 1 point
    I didn't see much implementation of machine learning in Houdini so I wanted to give it a shot. Still just starting this rabbit hole but figured I'd post the progress. Maybe someone else out there is working on this too. First of all I know most of this is super inefficient and there are faster ways to achieve the results, but that's not the point. The goal is to get as many machine learning basics functioning in Houdini as possible without python libraries just glossing over the math. I want to create visual explanations of how this stuff works. It helps me ensure I understand what's going on and maybe it will help someone else who learns visually to understand. So... from the very bottom up the first thing to understand is Gradient Descent because that's the basic underlying function of a neural network. So can we create that in sops without python? Sure we can and it's crazy slow. On the left is just normal Gradient Descent. Once you start to iterate over more than 30 data points this starts to chug. So on the right is a Stochastic Gradient Descent hybrid which, using small random batches, fits the line using over 500 data points. It's a little jittery because my step size is too big but hey it works so.. small victories. Okay so Gradient Descent works, awesome, lets use it for some actual machine learning stuff right? The hello world of machine learning is image recognition of hand written digits using the MNIST dataset. MNIST is a collection of 60 thousand 28 by 28 pixel images of hand written digits. Each one has a label of what they're supposed to be so we can use it to train a network. The data is stored as a binary file so I had to use a bit of python to interpret the files but here it is. Now that I can access the data next is actually getting this thing to a trainable state. Still figuring this stuff out as I go so I'll probably post updates over the holiday weekend. in the mean time. anyone else out there playing with this stuff?
  16. 1 point
    The way Houdini works is that it evaluates nodes from top to bottom of your node-graph (well, in SOPs : not talking about DOP or PDG...). Therefore, each frame, your graph is re-evaluated independently of the previous frame.... until you use a SOP Solver node. The SOP Solver node allows you (when you dive inside him), to access (i) the incoming stream of nodes, evaluated at this particular frame and (ii) the same stream of nodes, evaluated at the previous frame. Therefore, you can perform your code on the incoming stream, make your tests and create geometry, and then merge it to the geometry of the previous frame. It allows you to keep changes you made on the geometry on previous frames (because each frame you can merge what you are doing with the results of previous frames). Here some docs : https://www.sidefx.com/docs/houdini/nodes/sop/solver.html
  17. 1 point
    I've tested RenderMan with spline rendering. it's much faster compared with baked Geometry. the spline primitives are very good in Renderman. I've stopped the test with mantra after 10 minutes, it is super slow even with optimized render settings. the Renderman images rendered for 3:20 on a 6 core Xeon 2.7ghz with pxr pathtracer. 4k resolution geometry: splines primitives: rendering splines directly saves a lot disk space and meshing time. interactive rendering was super responsive. Octane 2019.2 renderings is very fast, I've used the geo to render it. 2 minutes, as except its lot faster the CPU renderings. the spline rendering in octane does features custom width yet. Octane gives physical correct shading out of the box. Renderman the shading is extreme flexible with NPR renderings, which is hard to get in Octane. the IPR responsibility was a little slow with shader tweaks.
  18. 1 point
    rendered with Arnold in Houdini. I've tried the atmosphere volumes the first time. easy to setup. The render time was quite slow on the volumes, typically for volumes, but much faster then render the screen envr with VDB cloud. I've used a mesh light for inner character illumination. it's a shame I could not use Arnold 6 GPU, because of its missing atmosphere and meshlight features. Volumes would boost get a huge speed boost with volume raymarching on a GPU. I had to use a denoiser from Affinity Photo in dark areas. with Arnold 6 GPU it does not drop any errors, you have to wait 1-2 minutes if data is loaded to GPU and starts the rendering or not. even a wrong file pass to an Hdri image makes Arnold GPU drop out, you sitting and wait in front of a black screen and don't know if it will render or not.
  19. 1 point
    Hi Jiri, to get started I just wrote a script that turns a bunch of lines with three points into circles: It's basically calculating the intersection point and radius of rectangular vectors starting from the lines' midpoints. To be run in a primitive wrangle: // 3D INTERSECTION // https://stackoverflow.com/questions/10551555/need-an-algorithm-for-3d-vectors-intersection function vector intersection(vector r1, r2, e1, e2){ float u = dot(e1, e2); float t1 = dot(r2 - r1, e1); float t2 = dot(r2 - r1, e2); float d1 = (t1 - u * t2) / (1 - u * u); float d2 = (t2 - u * t1) / (u * u - 1); vector p1 = r1 + e1 * d1; vector p2 = r2 + e2 * d2; vector pos_center = (p1 + p2) * 0.5; return pos_center; } // INPUT POSITIONS int pt_0 = primpoint(0, i@primnum, 0); int pt_1 = primpoint(0, i@primnum, 1); int pt_2 = primpoint(0, i@primnum, 2); vector pos_A = point(0, 'P', pt_0); vector pos_B = point(0, 'P', pt_1); vector pos_C = point(0, 'P', pt_2); vector mid_AB = (pos_A + pos_B) * 0.5; vector mid_BC = (pos_B + pos_C) * 0.5; // DIRECTIONS vector dir_BA = normalize(pos_B - pos_A); vector dir_BC = normalize(pos_B - pos_C); vector dir_rect = normalize(cross(dir_BA, dir_BC)); vector dir_BA_rect = normalize(cross(dir_BA, dir_rect)); vector dir_BC_rect = normalize(cross(dir_BC, dir_rect)); // ADD CIRCLE vector pos_center = intersection(mid_AB, mid_BC, dir_BA_rect, dir_BC_rect); float radius = distance(pos_center, pos_A); int pt_add = addpoint(0, pos_center); int circle_add = addprim(0, 'circle', pt_add); matrix3 xform_circle = dihedral({0,0,1}, dir_rect); scale(xform_circle, radius); setprimintrinsic(0, 'transform', circle_add, xform_circle); // REMOVE INPUT GEOMETRY removeprim(0, i@primnum, 1); circles_from_points.hipnc
  20. 1 point
    Renderman 23 CPU vs Arnold 6 GPU with 2 minutes time limit. Renderman 23 CPU Arnold 6 GPU the reflection differences come from normals, Arnold calculates it's on normals, Renderman took the normals from the Geometry. i've tried with Karma but i had issues and crashes with it.
  21. 1 point
    Hi Zunder, I think the second video you have posted shows almost the entire process: He is basically deforming a spiraling grid.. flower.hipnc
  22. 1 point
    See attached for an example .hip of a simple method to preserve UV seams in a flip sim: UV_to_FLIP.hipnc
  23. 1 point
    since polypath is just an HDA you can easily modify it to allow to specify such group, if you look inside, it's just an addition of the green groupcombine node polypathgroup_mod.hipnc
  24. 1 point
    Thanks zlyu, You make me realise that I just have to click in "Not following section" in my Network View to not enter in my subnet. It was so obvious, I passed my entire afternoon on It ! ahah
  25. 1 point
    This one already exists - it is called Houdini CORE.
  26. 1 point
    OBJ Wrangle https://vimeo.com/286025778 CPP Wrangle https://vimeo.com/171189268
  27. 1 point
    For a wireframe shader with consistent line widths, first create a primitive attribute that contains all point positions. Then inside a shader choose point pairs for ptlined() to determine the shortest distance to your shading position to check against a custom wire width. // primitive attribute with point positions int pts_prim[] = primpoints(0, @primnum); v[]@pos = {}; foreach(int pt; pts_prim){ vector p = point(0, 'P', pt); append(@pos, p); } // shader snippet feeding point positions into ptlined() // determining shortest distance to check against wire width. int num = len(pos); float dist = 1e6; for(int i = 0; i < num; i++){ vector pos_0 = pos[i]; vector pos_1 = pos[(i + 1) % num]; float dist_curr = ptlined(pos_0, pos_1, P); if(dist_curr < dist){ dist = dist_curr; } } stroke = dist <= stroke; wireframe.hipnc