Jump to content

Search the Community

Showing results for tags 'deformer'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Lounge/General chat
    • Education
    • Jobs
  • Houdini
    • General Houdini Questions
    • Effects
    • Modeling
    • Animation & Rigging
    • Lighting & Rendering
    • Compositing
    • Games
  • Coders Corner
    • HDK : Houdini Development Kit
    • Scripting
    • Shaders
  • Art and Challenges
    • Finished Work
    • Work in Progress
    • VFX Challenge
    • Effects Challenge Archive
  • Systems and Other Applications
    • Other 3d Packages
    • Operating Systems
    • Hardware
    • Pipeline
  • od|force
    • Feedback, Suggestions, Bugs

Found 6 results

  1. Hi, Can someone help, and explain why after translating a cube up in sops, on the geometry node to postion a box on top of another box. then making it a RBD object. then simply add a deactivate object from the shelf tools, why my pivot and object change position when I jump into dops. Perhaps Im missing something silly here, anyone help please? thanks in advance.
  2. Creating waves with vertical lines

    Hi, I have a question about the ocean spectrum node. I have created a deformed wave using a grid with ocean spectrum and ocean evaluate node. I can change the ocean spectrum wind direction setting to achieve the kind of look I want, which is to have the vertical lines on the ocean surface, something like the image below. But if I only do that, the waves direction is still wrong, they are moving sideways. Is there a way where I can create this effect with chops moving in the right direction? I thought perhaps I should create another ocean spectrum and put it on top of the first ocean spectrum. This is pretty urgent, does anyone have any suggestions? Thanks!
  3. Blending 2 waves together

    Hi,I have used the attribute VOP to create 2 separates wave deformers. I would like to blend these 2 together to get the shape that I want. I tried using different attribute nodes but I can't achieve the effect of blending the meshes together. How do I go about doing it?I have attach my nodes network and the image here. You can clearly see that the meshes are separate, I want to combine the mesh. I tried joining the 2 attribute VOPs one after the other but that only increases its amplitude and nothing else, I want the 2 mesh to join at different position so I get a v shape effect like the png image I show here. I thought of perhaps multiplying the 2 wave matrix together by using the attribute wrangle node but i'm not sure how to call out the VOP variables individually when both waves' output is the same (position P). Is there a better way to do this? Any help and advice would be appreciated, Thanks!Eunice
  4. Hello! I am making a geometry deformer to simulate large waves for a student film (we don't have the resources or time to sim out a large tidal wave), and I'm having difficulties with the shader. I'm starting with the default ocean shader to get a feel for it, but the displacement and creation of the white caps and foam are being stretched and look wrong due to the deformer. My thought process is, is there some way to include my deformer in the displacement process so it is factored in when white caps/foam are made? If not, is there some other way to effectively use the ocean shader on a deformed grid (without losing the white caps/foam)? I'm really hoping to be able to have the white caps/foam on the crest of the large wave the same way it appears on the small waves created by the ocean displacement. My files are attached, I apologize for the messy VEX in the hda, I've been hopping between VOPs and VEX in its development. Also note: the displacement maps are set to .picnc instead of .pic because I am working in Houdini apprentice currently. Thank you! displacementworkaround_v01.zip
  5. Spline Wrap deformer

    Based on the fabulous class by entagma I decided to quickly put together a splineWrap deformer expanding on the concept they presented. Basically I added Control on Spline begin, Spline End, Offset, and a ramp control to scale along the geometry. I also made it so you can build your geometry anywhere (not the center) and in any orthogonal axis. You can find it here if you want: http://www.orbolt.com/asset/Butachan::splineWrapNH::1.0 [orbolt.com] if you are interested in the Entagma video, I really recommend it: https://vimeo.com/181458408 [vimeo.com] PS: the asset is now unlocked...now play nice and if you guys want me to do any changes or improvement let me know.
  6. RBF morpher

    Hi all, Been away for so long, this is my first post in some years I believe. Anyway I was at a Houdini event the other day and they were talking through all the great new features in Houdini 13 and beyond and I noticed on one of the slides that numpy is now included in Houdini since 12.5 or even earlier. It's been so long since I delved into Houdini that this massively useful fact had totally passed me by. The first thing that lept into my head when I saw this was my old HDK sop RBF morpher which is a totally awesome deformer that has gotten me out of so many tricky deformation scenarios over the years. Finally I realised I could re-write this in a Python sop and not have the issue of people needing to compile it to use it. A few days later and after a couple of hours work here is the result. No error checking yet just the bare bones of the functionality. Of course it's no where near the speed of the HDK one, but hey at least compilers aren't an issue with this one. This is the source code and I've attached a example hip file and otl, non-commercial versions. # This code is called when instances of this SOP cook. import numpy as np import math node = hou.pwd() geo = node.geometry() inputs = node.inputs() kernel = node.parm('kernel').eval() power = node.parm('power').eval() scale = node.parm('scale').eval() def linear(r): return r def smooth(r): return r*r*math.log1p(r*r) def cube(r): return r*r*r def thinPlate(r): return r*r*math.log1p(r) def sqrt(r): return math.sqrt(r) def pow(r): return math.pow(r,power) kernels = {0: linear, 1: smooth, 2: cube, 3: thinPlate, 4: sqrt, 5: pow} def rbfU(r): return kernels[kernel](r) if len(inputs) > 2: featureGeo = inputs[1].geometry() targetGeo = inputs[2].geometry() numFeaturePoints = len(featureGeo.iterPoints()) matrixQ = np.zeros((numFeaturePoints,4)) #setup all the matrices with the feature point positions i = 0; for p in featureGeo.points(): matrixQ[i,0] = p.position()[0] matrixQ[i,1] = p.position()[1] matrixQ[i,2] = p.position()[2] matrixQ[i,3] = 1 i += 1 #print matrixQ matrixQtranspose = matrixQ.transpose() #print matrixQtranspose matrixK = np.zeros((numFeaturePoints, numFeaturePoints)) #scale = 1 for row in range(numFeaturePoints): for col in range(numFeaturePoints): ppt = featureGeo.iterPoints()[row] p1 = ppt.position() ppt = featureGeo.iterPoints()[col] p2 = ppt.position() p = p1-p2 matrixK[row,col] = rbfU(p.length()/scale) #print matrixK #setup the final set of linear equations in one massive matrix matrixA = np.zeros((numFeaturePoints+4, numFeaturePoints+4)) for row in range(numFeaturePoints): for col in range(numFeaturePoints): matrixA[row,col] = matrixK[row,col] for row in range(numFeaturePoints): for col in range(numFeaturePoints, numFeaturePoints+4): matrixA[row,col] = matrixQ[row,col-numFeaturePoints] for row in range(numFeaturePoints, numFeaturePoints+4): for col in range(numFeaturePoints): matrixA[row,col] = matrixQtranspose[row-numFeaturePoints,col] #print matrixA #setup the solutions to all the linear equations, i.e. the target feature positions targetX = np.zeros((numFeaturePoints+4)) targetY = np.zeros((numFeaturePoints+4)) targetZ = np.zeros((numFeaturePoints+4)) i = 0; for p in targetGeo.points(): targetX[i] = p.position()[0]; targetY[i] = p.position()[1]; targetZ[i] = p.position()[2]; i += 1 #solve the linear equations to find the weights that map the features to the targets weightsX = np.linalg.solve(matrixA, targetX) weightsY = np.linalg.solve(matrixA, targetY) weightsZ = np.linalg.solve(matrixA, targetZ) #print weightsX #apply the weights to the actual points on the input geometry to get the final resulting positions relative to the target feature points NfPts = numFeaturePoints for opt in geo.points(): outX = weightsX[NfPts]*opt.position()[0] + weightsX[NfPts+1]*opt.position()[1] + weightsX[NfPts+2]*opt.position()[2] + weightsX[NfPts+3]; outY = weightsY[NfPts]*opt.position()[0] + weightsY[NfPts+1]*opt.position()[1] + weightsY[NfPts+2]*opt.position()[2] + weightsY[NfPts+3]; outZ = weightsZ[NfPts]*opt.position()[0] + weightsZ[NfPts+1]*opt.position()[1] + weightsZ[NfPts+2]*opt.position()[2] + weightsZ[NfPts+3]; p1 = opt.position() i = 0 for p2 in featureGeo.points(): p = p1-p2.position(); rF = rbfU(p.length()/scale); outX += weightsX[i]*rF outY += weightsY[i]*rF outZ += weightsZ[i]*rF i+=1 opt.setPosition((outX,outY,outZ)) [/CODE] ExampleRBF.hipnc RBFmorpher.otl
×