Jump to content

konstantin magnus

Members
  • Content count

    833
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    62

konstantin magnus last won the day on September 25

konstantin magnus had the most liked content!

Community Reputation

650 Excellent

About konstantin magnus

  • Rank
    Houdini Master

Contact Methods

  • Website URL
    youtube.com/konstantinmagnus

Personal Information

  • Name
    Konstantin Magnus
  • Location
    Stuttgart, Germany

Recent Profile Visitors

8,143 profile views
  1. Rotating uv tile

    I think @acey195 had a solution for this:
  2. Hi Bill, you can blend colors from surrounding objects into texture maps by filtering point clouds. tex_sample_surface_colors.hipnc
  3. Rotating uv tile

    A basic proof of concept for texture bombing on 3D surfaces. texture_bombing.hipnc
  4. Denoting an attribute as "Tex"

    Hi P Sis, there is a way to apply metadata to attributes (ie. "texturecoord") with the VEX function setattribtypeinfo(). https://www.sidefx.com/docs/houdini/vex/attribtypeinfo_suite
  5. Weathering texture tool

    A texture generator for image based direct lighting. This example is just using a tonemapped JPG. Though by appending ToneMap Ql the same procedure works with HDRIs, too. // INPUT vector pos_tex = set(X, Y, 0.0); vector pos_mesh = uvsample(geo_mesh, 'P', 'uv', pos_tex); vector nml_mesh = uvsample(geo_mesh, 'N', 'uv', pos_tex); float a = radians(angle); // IMAGE BASED DIRECT LIGHTING vector clr_sum = 0.0; for(int i = 0; i < samples; i++){ vector2 u = rand(pos_tex * i); vector dir = sample_direction_cone(nml_mesh, a, u); vector pos_ray = pos_mesh + nml_mesh * 1e-3; vector dir_ray = dir * range; vector pos_hit; vector uvw_hit; int prim_hit = intersect(geo_sky, pos_ray, dir_ray, pos_hit, uvw_hit); vector clr_hit = primuv(geo_sky, 'Cd', prim_hit, uvw_hit); clr_sum += clr_hit; } vector clr = clr_sum / float(samples); // OUTPUT vector color = vector(clr); assign(R, G, B, color); texture_hdri.hipnc
  6. Weathering texture tool

    A minimalist generator for creating occlusion textures right in COPs. // INPUT vector pos_tex = set(X, Y, 0.0); vector pos_mesh = uvsample(geo_mesh, 'P', 'uv', pos_tex); vector nml_mesh = uvsample(geo_mesh, 'N', 'uv', pos_tex); float a = radians(angle); // OCCLUSION float occ_sum = 0.0; for(int i = 0; i < samples; i++){ vector2 u = rand(pos_tex * i); vector dir = sample_direction_cone(nml_mesh, a, u); vector pos_ray = pos_mesh + nml_mesh * 1e-3; vector dir_ray = dir * range; vector pos_hit; vector uvw_hit; int prim_hit = intersect(geo_mesh, pos_ray, dir_ray, pos_hit, uvw_hit); occ_sum += prim_hit == -1; } float occ = occ_sum / float(samples); // OUTPUT vector color = vector(occ); assign(R, G, B, color); texture_occlusion.hipnc
  7. Weathering texture tool

    Currently working on a from-scratch texturing procedure that simulates water running down surfaces. Models shamelessly taken from @animatrix course files. Starting with projected points, the curves run along a volume until they drop onto the next underlying surfaces using nested while loops. The watery effect is achieved in COPs where the texture is drawn based on measuring distance from texture positions to these curves. Alright, enough art, here comes the proof of dripping :
  8. Issues with curves

    Hey @m___clifford, it's for the attribute wrangle running over points.
  9. Issues with curves

    Hi Max, you can measure the overall point density with pcfind() within a certain radius: int samples = chi('samples'); float radius = chf('radius'); int pts[] = pcfind(0, 'P', v@P, radius, samples); float dens = len(pts) / float(samples); f@dens = dens;
  10. Cut geometry based on light

    Hi Morten, here is a simplification. The ray node alone can do the shadow calculation in this case. ray_shadow.hipnc
  11. Boolean outside camera area?

    Alternatively transform a box into camera space and boolean intersect it with your geometry. frustum_cut_boole.hipnc
  12. Boolean outside camera area?

    Hi Kim, the volume node can create the camera's frustum, which can be transferred to point attributes for poly-cutting. frustum_cut.hipnc
  13. Gradient group transfer

    I heard it was called 'falloff' before. Alternatively you could also look into a VEX function called pcfind(): https://www.sidefx.com/docs/houdini/vex/functions/pcfind.html
  14. Tenet Mask

    Great shading and lighting, Tim!
  15. Braiding Splines

    Hi MD, I have attached an example. There are also lots vellum hair tutorials on YouTube. braid.hipnc
×