-
Posts
1,725 -
Joined
-
Last visited
-
Days Won
149
Everything posted by Librarian
-
-
You are Welcome @simonfarussell.. Now You can Start Some New Topic with Name lets See..." Tricks with Chops" and share some knowledge when you have Time. ...Here you have some codes from Asia . that i use more in combination with Chops and Points.. int idx = floor(7*rand(@ptnum)+1); // diff_colorTextureとopacity_colorTexture // @material_override s@material_override = "{'diff_colorTexture':\"$HFS/houdini/pic/butterfly"+ itoa(idx)+".pic\",'opacity_colorTexture': \"$HFS/houdini/pic/butterfly"+ itoa(idx)+".pic\",}"; //classicshader s@shop_materialpath = "/mat/classicshader1"; i@butterfly = @ptnum; 4@mat = maketransform(@N,@up,@P); and rotation v@P -= v@cen; int id = @ptnum % 6; float off = 2*PI*rand(i@butterfly); float freq = 10+5*rand(i@butterfly); if(id == 0 || id == 3){ float ang = 30*sin(freq*@Time+off); vector4 quat = quaternion(radians(ang),@N); @P = qrotate(quat,@P); }else if(id == 2 || id == 5){ float ang = -60*sin(freq*@Time+off); vector4 quat = quaternion(radians(ang),@N); @P = qrotate(quat,@P); } @P += v@cen;
-
SpriteTest.hiplc
-
-
-
thanx for Info! @ftaswin
-
vellum grains, change amount of clusters over time
Librarian replied to sachacarletti's topic in Effects
@sachacarletti Interesting .HM , how to make groups of that secondar cluster and where to assign those groups inside sop solver or before on sop level?? totalititus Blockout if I have this code_ int pts [] = primpoints(0,@primnum); int n1 = point(0,'__cluster',pts[0]); int n2 = point(0,'__cluster',pts[1]); if(n1 != n2){ f@breaktreshhold = 10.2 ; } int pts [] = primpoints(0,@primnum); int c1 = point(0,'__piece',pts[0]); int c2 = point(0,'__piece',pts[1]); if(c1 != c2){ f@breaktreshhold = .04 ; } funny effects ..Thanx for a file Sacha VellGrOdforce.hiplc -
@bastian Prim wrangle (tangent) int vtc[]; vtc = primvertices(0, @primnum); int n = len(vtc); int jm1, j, jp1; int pm1, p, pp1; vector A,B; for (int i = 0; i < n; i++) { jm1 = i - 1; j = i; jp1 = i + 1; if (chi('mode') == 0) { jm1 %= (n-1); jp1 %= (n-1); } else { jm1 = max(0, jm1); jp1 = min(n-1, jp1); } pm1 = vertexpoint(0, vtc[jm1]); p = vertexpoint(0, vtc[j]); pp1 = vertexpoint(0, vtc[jp1]); A = point(0, 'P', p) - point(0, 'P', pm1); B = point(0, 'P', pp1) - point(0, 'P', p); setpointattrib(0, 'tangentu', p, normalize(lerp(A, B, 0.5))); } Point wrang-set normal by tangent vector up = chv('up'); v@N = normalize(cross(v@tangentu, up)); if (chi('reverse')) { v@N *= -1; }
-
//save nodes import hou # set directory to save cpio dirPath = "DIRECTORY" def SaveTemplate(name): sel = hou.selectedNodes() path = sel[0].path() nodeCategoryName = sel[0].type().category().name() pathSplit = path.split("/") pathSplit.pop(-1) getRootPath = "/".join(pathSplit) rootName = getRootPath[1:].replace("/","_") contextnode = hou.node(getRootPath) filename = "{}/{}_{}".format(dirPath, nodeCategoryName, name + ".cpio") contextnode.saveItemsToFile(sel, filename, save_hda_fallbacks = False) hou.ui.displayMessage("Success!\n" + "Save File: "+filename) print("Save File: "+filename) Dialog = hou.ui.readInput(message ="Save Select Nodes?\n",title = "Save Template",severity=hou.severityType.Message,buttons=["Save","Cancel"]) //import nodes import hou import os # directory to open cpio dirPath = "DIRECTORY" files = os.listdir(dirPath) fileList = [f for f in files if os.path.isfile(os.path.join(dirPath, f))] def ImportTemplate(filename): desktop = hou.ui.curDesktop() pane = desktop.paneTabOfType(hou.paneTabType.NetworkEditor) current_context = pane.pwd().path() hou.clearAllSelected() contextnode = hou.node(current_context) nodes = contextnode.loadItemsFromFile(filename, ignore_load_warnings=False) sel = hou.selectedNodes() firstNodePos = sel[0].position() for node in sel: node.setPosition( node.position() + hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor).visibleBounds().center() - firstNodePos ) Dialog = hou.ui.selectFromList(fileList, message='Select Import File') if len(Dialog)!=0: for i in Dialog: ImportTemplate("{}/{}".format(dirPath, fileList[i])) For Speed.Save Nodes-Open Nodes , endless possibility for making a Diff Setups . Have Fun.
-
polybridge between 2 primitives/edges
Librarian replied to anicg's topic in General Houdini Questions
polyspline polybridgefix.hiplc -
I am curious about making a spider web without simulation.
Librarian replied to eunchae's topic in General Houdini Questions
@eunchae You have wonderful ex in qLib https://github.com/qLab/qLib/blob/master/examples/workflow/polywirecurves_webs.hip -
maybe this stuff can Help . SchrodingersSmokeCode.zip
-
Use procedural map in bump Principled Shader
Librarian replied to gangland's topic in General Houdini Questions
-
-
@DonRomano just use default Theme Option on the Bottom ...Its all white
-
-
Long Time Ago (Houdini- GeoMagic - Materialise - Zcorp Printer Monochrome). Which Program you use for Printing . You have Free Version of Materialise with some Script's that make those Problems very easy to solve..
-
I need a simple way to fix geometries intersections.
Librarian replied to Masoud's topic in General Houdini Questions
-
@Marc it's Perfect right now . Thank you
-
Missing modules on the right side (reply Topic's and New Topic's). I need those for better Way on Helping other user's and navigation.
-
@IKyassine search Vdb Advect v3. on Gumroad (its a free File)(with chops and 3 Rest Dual ,Cd Advect with endless different control ex) and I think you can find on YouTube the same File. Its a new File in last 2 month. Someone posted really nice ex..
- 1 reply
-
- 1
-
-
- vdb
- vdb advection
-
(and 1 more)
Tagged with:
-
I need a simple way to fix geometries intersections.
Librarian replied to Masoud's topic in General Houdini Questions
Have Some points and pscale att on those use this after //get neighbour pts finding a arrary int nPts[] = nearpoints(geoself(), @P, chf("maxdist"), chi("maxpts")); pop(nPts, 0); i[]@nPts = nPts; i@id = @ptnum; matrix mArray[]; float targetD[]; foreach(int pt; nPts){ float nRadius = point(geoself(), "pscale", pt); vector nPos = point(geoself(), "P", pt); float myRadius = @pscale; vector myPos = @P; float distance = distance(nPos,myPos); float collideLength = nRadius + myRadius; if ( distance < collideLength){ //intersectNums += 1; //set localMatrix[] by nearPoints vector z = normalize(nPos - myPos); vector x = normalize( cross(set(0,1,0), z)); vector y = cross(z, x); matrix m = set(x,y,z, myPos); m.xw = 0.0; m.yw = 0.0; m.zw = 0.0; append(mArray, m); //calculate intersect distance float intersectD = (pow(myRadius, 2) - pow(nRadius, 2) + pow(distance, 2)) / (2.0 * distance); append(targetD, intersectD); } } 4[]@mArray = mArray; f[]@targetD = targetD; then copy to points and than use this //foreach neighbour pts and check if the point sphere intersect with another guy int nPts[] = i[]@nPts; float targetD[] = point(1, "targetD", i@id); matrix mArray[] = point(1, "mArray", i@id); //set deform weight float weight = 0; foreach(int i; int pt; nPts){ //calculate intersect distance float intersectD = targetD[i]; //check if the Pt Pos > myRadius matrix m = mArray[i]; vector newPos = @P * invert(m); if( newPos.z > intersectD){ vector pos = newPos; pos = set(pos.x, pos.y, intersectD); @P = pos * m; weight = 1; } //weight = fit(newPos.z, -f@pscale, intersectD + chf("weight_offset"), 0, 1); } //f@weight = weight; f@weight = chramp("weight_ramp", weight); then blur weight Play with Code and Setup...