Jump to content
[[Template core/front/profile/profileHeader is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Everything posted by konstantin magnus

  1. signed distance outline curves

    Here's a way to draw a 2D SDF-curve. sdf_curve.hipnc
  2. Blend positions between uneven topology meshes

    How would you blend positions between meshes with different topology and uneven point count? My idea was to use the 'underlying' primitive's intrinsic UV coordinates for matching. But when transfering to world position I run into this typical "fix boundary seams"-issue known from the UV texture-node. blend_pos.hip
  3. Hi @Krion, the spline()-function can do this: https://www.sidefx.com/docs/houdini/vex/functions/spline.html
  4. Hi Masoud, there are probably some particle operators doing the same thing faster, but you could pull and push a voronoi-network according to the point scales until all spheres are deintersected. deintersect_spheres.hip
  5. Geometry Object conforming to another Geometry surface

    Hi @virgile, you could blend positions based on their distance towards the surface: In a point wrangle with first input mesh, second input sphere: float d_min = chf('min_distance'); float d_max = chf('max_distance'); int prim; vector uvw; float d = xyzdist(1, v@P, prim, uvw); vector pos = primuv(1, 'P', prim, uvw); float mask = smooth(d_min, d_max, d); v@P = lerp(pos, v@P, mask); conform_to_surface.hipnc
  6. Preferred scripting language for Renderman

    What would be the current preferred language to script patterns for Renderman inside Solaris? Eg. turning UV coordinates into dots and stripes as color vectors or float masks: vector uv = v@uv; float d = distance( frac(uv*8), {0.5, 0.5, 0.0} ); float c = 1.0 - smooth(0.2, 0.5, d); v@Cd = c;
  7. How to set normals to look up

    You would need another vector called "up" that points upwards, eg. v@up = {0,1,0};
  8. Keep primitive attributes when I save as obj

    Hi Mani, before exporting you can promote primitive attributes to vertex UVs and/or vertex normals and promote them back after importing the OBJ. Wikipedia describes the OBJ-format: The OBJ file format is a simple data-format that represents 3D geometry alone — namely, the position of each vertex, the UV position of each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices. obj_attrib.hip
  9. Questions about edgeequalize node and topology. thanks

    Try the circle from edges-node in case the holes are supposed to be circular.
  10. coplaner polys inside another wanting to remove

    Hi Curt, did you look into the hole SOP?
  11. I need some advice on the ripples of the ship.

    There is a Kelvin Wakes deformer in SideFX Lab's now: https://www.sidefx.com/docs/houdini/nodes/sop/labs--kelvin_wakes_deformer-1.0.html
  12. How to vertically align a uv texture?

    Polyextrude does UVs. Just assign UVs on the grid in advance and ignore the viewport issue that comes later. extrude_uv.hip
  13. Threshold function

    VEX version: float t = chf('threshold'); v@P.y = -abs(v@P.x - t) + t;
  14. Threshold function

    Hi! I am looking for a (more compact) function that switches downwards after a certain value is reached. thank you! threshold.hiplc
  15. skin node from cross sections with UV's

    Hi Dana, I'd recommend to look into the sweep node again. It accepts pscale and scale attributes for varying widths, creates UVs and has lots of other useful features such as creating primrow and primcol attributes eg. for lanes.
  16. middle line on an object

    The Labs Straight Skeleton 3D node creates curves through the middle: https://www.sidefx.com/docs/houdini/nodes/sop/labs--straight_skeleton_3d.html
  17. Rotating each item on its own individual axis?

    Handling per object-rotations gets easier after packing and instancing the copies. Eg. the primitive node can do random rotations afterwards. copies_rotate.hipnc
  18. Create point group which are not connected

    Hi Apurba, presumably by setting the cluster node to 6?
  19. Rotating each item on its own individual axis?

    You would usually define the point orientation before copying objects to them. The normal vector "N" pointing to the front and the up vector "up" pointing upwards, eg. perpendicular to the surface. Next you can rotate the up vector around the normals using a point wrangle. float amount = chf('amount'); matrix3 m = ident(); rotate(m, amount * M_PI, v@N); v@up *= m; There are many other ways and as per usual Matt's CG wiki has a good read on this: https://www.tokeru.com/cgwiki/index.php?title=JoyOfVex17 rotate_up.hipnc
  20. Loop Shape Creation

    The sweep node has a rolling function. loop_shape.hipnc
  21. Sharp spikes growth effect

    Hi Guan, exactly, the polyextrude node can take all sorts of masks and measurements for individually orienting and scaling its extrusions. extrude_feather.hipnc
  22. Hi Ahmed, there are specific volume noise nodes now which even support masks. erode_volume.hipnc
  23. Extrude points along Curve

    Hi Ronald, the sweep SOP surface can be set to rows. It accepts pscale, up and N attributes as well as cross section curves for the second input. sweep_rows.hipnc
  24. Custom Raytracer in COPs

    I wrote an article explaining the code for the COPs raytracer a little: https://procegen.konstantinmagnus.de/custom-raytracer
  25. Custom Raytracer in COPs

    I wrote a custom render engine in COPs today. While 'engine' is probably a bit far fetched, it's a little ray tracer experimentally supporting: Meshes with UV coordinates Shading on diffuse textures Multiple point lights (including color, intensity, size) Area shadows and light attenuation Ambient occlusion Specular highlights Reflections with varying roughness The snippet basically transforms the pixel canvas to the camera position and shoots rays around using VEX functions like intersect() and primuv(). The rendering process only takes a few seconds. I still have to figure the licensing fees, though COP_render.hipnc