Leaderboard
Popular Content
Showing most liked content since 05/26/2020 in all areas

3 points

3 points

2 points

2 pointsI heard oil paintings are a thing right now. Here is a initial setup (still lacking all micro details and sweep strokes): Original procedure developed by Will Macneill: http://www.willmacneil.com/portfolio/oilpaintingthehoudiniway painting_2.hipnc

1 pointOf course, take it, I will be glad. https://mega.nz/file/dU5RGBDL#sVxH1XBcFwdIVEH8A2mcMzHJypLqbliGxMkQZLZy3Qk Using closed meshes  is great news. It would be nice if the node "normal" was automatically connected.

1 pointHooray! I got it! Since the type is already hou.Polygon, I just needed to treat it as such. No casting required. I think I love Python.

1 pointyou can take a look at this video bellow. shader baking starts at ~ 17 min. you can bake multiple objects by merging them into one and baking that.

1 pointA better question is, why are you copy stamping? Just put this attribute on your template points and have the copies inherit it. Copy stamping is a deprecated workflow and shouldn't be used anymore except for backwards compatibility.

1 pointAnother flower field while creating a custom baker for ground tiles: render_planar.hipnc

1 point

1 pointhttp://www.cgchannel.com/2020/05/reviewamdryzenthreadripper3990x/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+cgchannel%2FnHpU+(CG+Channel++Entertainment+Production+Art) Houdini got mentioned about half way down

1 pointPlugin worked only after I copied it to C:\Users\username\Documents\houdini18.0 Insert Mesh to work if click alt + 2 clicks of the left mouse button on the picture I took this free kitbash https://gumroad.com/d/82ff256324d8d4816154051c3f02ce8b And adapted for correct work in the plugin. Maybe someone will come in handy. https://mega.nz/file/dU5RGBDL#sVxH1XBcFwdIVEH8A2mcMzHJypLqbliGxMkQZLZy3Qk Sorry for english (google translate)

1 pointhttp://www.cgchannel.com/2020/03/10experttipsforbetterhoudiniflipfluidsimulations/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+cgchannel%2FnHpU+(CG+Channel++Entertainment+Production+Art)

1 pointInsane! Thanks! Wrote the vop sop to a wrangle: matrix xform = detail(1, "xform"); matrix rot = ident(); float z_bias = chf("z_bias"); float range = chf("range"); float angle = radians(chf("angle")); @P *= invert(xform); vector domain = set(@P.x, @P.y, @P.z * z_bias); float dangle = length(domain) / range; dangle = exp(dangle) * angle; rotate(rot, dangle, 4); @P *= rot; @P *= xform; I'll see how to build on top of that. wavelike_deform.hiplc

1 point

1 point

1 point

1 point

1 point

1 point

1 pointI worked through Mikael Petersen's crowd based thingie setup. I'll post it here. If anyone else has setups from the hive 2020, drop them in this thread. ap_mp_blendshape_crowd_character_052120.hiplc

1 pointHere we go, didn't get a chance to make a clay material (opaque in yellow). The amber material doesn't really work and the random values for some of the the potions liquid and the randomly coloured glass bottles (you can see the randomly coloured glass bottle in red bottom right) I might be able to fix this by multiplying them by normalizing times by 2 and clamping the vector but I also I might just ditch the coloured glass or turn the transparency down for them. The dirt and dust shading became too dominant so I limited it quite a lot and now it's barely visible so i'll have to fix that. The biggest issues are with the horizontal periodic artifacting on some of the glasses as well as some of the glass tops show some greyishness. After I've fixed all of these issues I'll finish the glass chipping and then work on the procedural labels I've started but gave up on before.

1 pointhttps://forums.odforce.net/topic/41203contractaropevellum/?tab=comments#comment202128 https://forums.odforce.net/topic/45986scalevellumstrutslikerigidbody/?tab=comments#comment215369 https://forums.odforce.net/topic/43269paintingrestlengthonvellumclothconstraint/?tab=comments#comment205001

1 pointThat its just attribute transfer and some Play with Spiral and combining with this technique . Just having Fun.

1 pointIn the render above I manually selected points with the lasso to instance the clovers on. In this render I used a noise pattern to determine were the grass should be flatter and at the same time that's where the clovers are instanced. I also did some shader tweaking.

1 pointHave a look in here. All I've changed is the animation along the path, the time start/end in the fetch node in the distance travelled chop and I've had to kludge the constraint on the steering object to work past frame 240 by hard setting the sample rate.... car_rig_bullet_julian_offset.hipnc

1 point

1 pointHey all, Thanks to @Alain2131 for the incredible exporter asset! This totally fixed my issue. I've suped it up a bit to let it also fix subobject pivots, such that every sub object's pivot in the FBX parent is at the center of its bounding box. Here's the updated asset: FBX_export_v1_1.hda

1 point

1 pointMore fun 13.lesson. projectione.h /*! \fn vector2 one_sphere(vector2 z; float r) \brief Project \f$z \in C\f$ to \f$S^1\f$. Project \f$z \in C\f$ to \f$S^1\f$ with radius \f$r\f$. \param z the direction in \f$C\f$ to project to \f$S^1\f$ \param r the radius of \f$S^1\f$ \return the point \f$z \frac{r}{\mid z \mid}\f$ */ vector2 one_sphere(vector2 z; float r) { return z / length(z) * r; } /*! \fn vector two_sphere(vector z; float r) \brief Project \f$z \in R^3\f$ to \f$S^2\f$. Project \f$z \in R^3\f$ to \f$S^2\f$ with radius \f$r\f$. \param z the direction in \f$R^3\f$ to project to \f$S^2\f$ \param r the radius of \f$S^2\f$ \return the point \f$z \frac{r}{\mid z \mid}\f$ */ vector two_sphere(vector z; float r) { return z / length(z) * r; } /*! \fn vector2 stereo2(vector c) \brief Stereographic projection from \f$S^2\f$. Stereographic projection from \f$S^2\f$ into \f$C\f$. \param c the vector in \f$S^2\f$ to project into \f$C\f$, , must not be \f$(0, 0, 1)\top\f$ \return the stereographic projection to \f$C\f$ */ vector2 stereo2(vector c) { float x = c.x; float y = c.y; float z = c.z; return set(x, y) / (1z); } /*! \fn vector stereo3(vector4 c) \brief Stereographic projection from \f$S^3\f$. Stereographic projection from \f$S^3\f$ into \f$R^3\f$. \param c the vector in \f$S^3\f$ to project into \f$R^3\f$, must not be \f$(0, 0, 0, 1)\top\f$ \return the stereographic projection to \f$R^3\f$ */ vector stereo3(vector4 c) { float x = c.x; float y = c.y; float z = c.z; float w = c.w; return set(x, y, z) / (1w); } /*! \fn vector4 stereo3_inv(vector c) \brief Inverse of the stereographic projection from \f$S^3\f$. Inverse from \f$R^3\f$ into \f$S^3\f$ of the stereographic projection. \param c the vector in \f$R^3\f$ to reproject into \f$S^3\f$. \return the projection into \f$S^3\f$ */ vector4 stereo3_inv(vector c) { float x = c.x; float y = c.y; float z = c.z; return set(2*x, 2*y, 2*z, length2(c)1) / (length2(c)+1); } vector stereo3_e4(vector4 c) { return set(c.x, c.y, c.z) / (1.c.w); } vector stereo3_e4_inv(vector c) { return set(2*c.x, 2*c.y, 2*c.z, length2(c)1) / (length2(c)+1.); } /*! \fn vector sphere_inversion(vector z; vector center; float scale) \brief Sphere inversion Perform a Möbius tranformation to project every point inside the the unit sphere in \f$R^3\f$ to outside and vice versa. \param z the original vector in \f$R^3\f$ \param center the center of the sphere \param scale the radius of the sphere \return the inverted vector */ vector sphere_inversion(vector z; vector center; float scale) { // Compute translation, then transform in the origin and retranslate vector translation = set(center.x, center.y, center.z); vector transformed = z  translation; return transformed / length2(transformed) * pow(scale, 2) + translation; } complex.h *! \fn vector2 cmul(vector2 z; vector2 w) \brief Multiply two complex numbers Multiply two arbitrary complex numbers. \param z first factor \param w second factor \return \f$z \cdot w\f$ */ vector2 cmul(vector2 z; vector2 w) { float x = z.x; float y = z.y; float u = w.u; float v = w.v; float real = x*u  y*v; float imaginary = x*v + y*u; return set(real, imaginary); } /*! \fn vector2 cdiv(vector2 w; vector2 z) \brief Divide one complex number by another complex number Divide one arbitrary complex number by another nonzero complex number. \param w divident \param z divison \return \f$\frac{w}{z}\f$ */ vector2 cdiv(vector2 w; vector2 z) { float x = z.x; float y = z.y; float u = w.u; float v = w.v; float divisor = pow(x, 2) + pow(y, 2); float real = (u*x + v*y) / divisor; float imaginary = (v*x  u*y) / divisor; return set(real, imaginary); } /*! \fn vector2 cpow(vector2 z; int n) \brief Compute the \f$n\f$th power of a complex number Compute the \f$n\f$th power of a complex number, for \f$n \in N\f$. \param z the complex number \param n the exponent \return \f$z^n\f$ */ vector2 cpow(vector2 z; int n) { float x = z.x; float y = z.y; float r = length(z); float phi = atan2(y, x); return pow(r, n) * set(cos(n*phi), sin(n*phi)); } /*! \fn float real(vector2 z) \brief Give the real part of a complex number Give the real part of a complex number represented by the first component of a two element vector. \param z the complex number \return the real part \f$a\f$ of \f$z = a + ib\f$ */ float real(vector2 z) { return z.x; } /*! \fn float img(vector2 z) \brief Give the imaginary part of a complex number Give the imaginary part of a complex number represented by the second component of a two element vector. \param z the complex number \return the imaginary part \f$b\f$ of \f$z = a + ib\f$ */ float img(vector2 z) { return z.y; } /*! \fn vector2 e_to_the_is(float s) \brief Give a point on the onesphere. Give a point on the onesphere parameterized by \f$s\f$ in the parametric form. \param s the real parameter \return the point \f$(\cos s, \sin s) \subset C\f$ */ vector2 e_to_the_is(float s) { return set(cos(s), sin(s)); } vector4 f; p@f; float n = chi("n"); float k = chi("k"); int j = @ptnum; float cosine = cos(($PI*j) / (2.*n)); float sine = sin(($PI*j) / (2.*n)); vector2 cosine_exp = cosine * e_to_the_is($PI  $PI/(k+1)); vector2 exp_neg = e_to_the_is( $PI/4); vector2 exp_pos = e_to_the_is($PI/4); vector2 sine_exp_neg = sine * exp_neg; vector2 sine_exp_pos = sine * exp_pos; float j_mod_4n = j % (4*n); if( j_mod_4n < n ) { f.x = cosine; f.y = 0; f.z = real(sine_exp_neg); f.w = img(sine_exp_neg); } else { if( j_mod_4n < 2 * n ) { f.x = real(cosine_exp); f.y = img(cosine_exp); f.z = real(sine_exp_neg); f.w = img(sine_exp_neg); } else { if( j_mod_4n < 3 * n ) { f.x = real(cosine_exp); f.y = img(cosine_exp); f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } else { if( j_mod_4n < 4 * n ) { f.x = real(cosine); f.y = 0; f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } else { f.x = cosine; f.y = 0; f.z = real(sine_exp_pos); f.w = img(sine_exp_pos); } } } } p@f = f;

1 pointyou can also duplicate your DOPnet and disable everything related to vel since you copy it from the loweres sim eg: forces/buoyancy/vel advection/projection then just copy "compute turb","ramp turbscale","primary noise" from the gasUpres solver and you get a sparse upres. https://vimeo.com/388758247

1 point

1 pointI just wish we can select/edit multiple points at a time in Curve Node. It's been so many years, the Curve Tool in Houdini still sucks.

1 point

1 pointHere is another method resulting in a more organic look: The spheres grow until they touch, using a peak node within a custom solver. organic_sphere_growth.hipnc

1 pointimport time import hou # Save a backup of the current Houdini session def saveArchive(): # Get the file path of the current Houdini session # (Equivalent to $HIP/$HIPNAME) ogFile = hou.hipFile.path() # What do we want to save the archive file as? fileStr = hou.getenv("HIP")+"/backup/BKUP_"+time.strftime("%Y%m%d%H%M%S")+"_"+hou.hipFile.basename() # Make sure this is a string (I was getting errors if I didn't do this) fileStr = str(fileStr) # Save the archive file hou.hipFile.save(file_name=fileStr, save_to_recent_files=False) # Revert the name of the Houdini session to what it was prior to executing this function hou.hipFile.setName(ogFile) # Return the path of the newly saved file return fileStr

1 pointI had a look at your scene  lowering the cloth constraint thickness to 0.001 and raising some of the dampening settings got most of the jittering out.

1 pointVolume SOP creates vel.x, vel.y, vel.z field which is different to what VDB from Particles would create. VDB from particles would only create one field (ex: vel). In H documentation for VOLUME SOP, there are a couple of things I can quote. You can use VDB Vector Merge to merge the .x, .y, .z fields into one single VDB field. Volume SOP (as far as I know), is an old way of creating volumes, now that OpenVDB workflow is around, it's more efficient in terms of resolution and speed. There is an indepth explanation if you Google "Volume Houdini".

1 pointI also moved all the tumblr example files I've been sharing onto my new website that you can find here. https://www.richlord.com/tools

1 pointIn this Houdini tutorial I'm showing how you can create strange attractors based on several equations.

1 pointI have modified your scene to allow both uv and shop_materialpath to flow through the fluid simulation. The higher the resolution, the better the quality of the attribute transfer. I generally discard FBX materials that are generated by Houdini and use a wrangle to rewrite the @shop_materialpath to point to the material context I am using. Sometimes /shop, sometimes /mat. I have added a wrangle near the end of the Genesis3_Male node inside the FBX import node. This wrangle uses a simple IF statement to detect the old material name and reassign a new one that points to /mat context. Inside the /mat context I have dropped down a Principled shader and renamed it to "Face". Go ahead an extend this code by writing the material path code for the other 16 materials on this object. Then you can populate your /mat context with shaders and plug in your maps to those materials. if(s@shop_materialpath =="/obj/gen3_fbx/materials/Face") { s@shop_materialpath = "/shop/Face"; // Or use the /mat context. s@shop_materialpath = "/mat/Face"; } ap_119_FLIP.hiplc

1 point

1 pointNot as polished as the pros...but I share what I can...there's probably a lot that can be automated but I'm not too proficient with coding yet. https://1drv.ms/u/s!AvgNse7E8aaygmHW_PWAPrMBYqWv

1 pointIn that case, try closing the "Scene View" tab and create a new one, that usually helps if it keeps rendering objects that it should not render (because of hide settings for instance)

1 pointjust point the cam_path parameter to your object level camera and adjust your wanted scaling.

1 pointHere's one way, there's no doubt many ways to achieve this effect. As you say, if you set @v in sops and enable 'inherit from points' in rbd, it only works on the first frame. if you enable 'overwrite attributes from sops' and specify v, then it clashes with the rbd solver which is also trying to set @v, and your pieces fly away. One way around this is to detect the first frame a piece is made active, and only add @v for that frame. Here I use a timeshift to move the geometry back by 1 frame, and I copy active from the shifted geo to the normal geo with a new attib name @active_prev. In dops, I added a wrangle that just tests if @active != @active_prev. The only time they won't be different is on the first frame the piece is made active. As such, I add @v by pulling it directly from sops. The rest of the time, rbd will set @v by itself. chkbox_fix.hipnc

1 pointLast update for today. Overall look is quite o.k., though the surface tension still affects the frozen particles and probably causes jitter in the melted particles. Apply particle separation is enabled this time. iceCream_melting_001_a_0144.hiplc

1 pointFor best rendering efficiency (avoid using caustics for illuminating your scene) you can combine two main light types for car headlights, tail lights and whatever lights. It's a common approach btw. I'd probably save the glows for comp but you "could" put a low res volume container around each light to pick up some glow. The other light effects are lens effects (flares) and you can save these for comp. If you want to use depth of field, you can use bokeh to get that type of lens effect in the render. First light types embedded in the light fixture only used to light the fixture and the components around it. Second set of lights using ies illumination profiles for illuminating all surrounding objects and not the light fixture. The above lights come in pairs of course. If your headlight has 4 illumination sources, you'd have 4 pairs of lights for 8 in total. Embedded Lens Spherical Area Lights One light embedded in the light fixture itself. Use a spherical area light and turn on rendering of light geometry. Lens is to be modelled as a two sided surface and interior chrome parts properly modelled. A displacement shader is applied to the inside face of the lens to get a realistic look. IES Lights for illuminating surroundings Pick a decent ies profile from the thousands available on line by companies that provide these (phillips, ge, rudd, etc). I just threw any ies light profile in there that is kinda ok but not really. Go find a profile that works for you. Or just use a cone on top of the disk area light as is. simple_headlight_v004.zip

1 pointattached is the modified file that should do what you need. depending on the number of polygons you may want to go the hdkroute. hth. petz edges1.hipnc

1 pointhave a look at the pointneighbour and primneighbour expression. maybe you could adapt the file in the link below to do what you need. the principle is quite similar. hth. petz