Jump to content

Search the Community

Showing results for tags 'sop'.



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
    • Tools (HDA's etc.)
  • 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 115 results

  1. I'm using about 1000 points in a point wrangle SOP as seeds to generate lines, totalling about 20,000,000 points... performance seems almost single threaded, which I assume is due to the creation of new geo. Is there any way I can speed it up? Here's the code in question if anything obviously jumps out: // trace lines through nested velocity volumes void stepRK4(vector pos; const int prim; const float dt; const vector V0; float dir) { vector V1 = volumesamplev(1, prim, pos + (0.5 * dt) * V0) * dir; vector V2 = volumesamplev(1, prim, pos + (0.5 * dt) * V1) * dir; vector V3 = volumesamplev(1, prim, pos + dt * V2) * dir; pos += (dt / 6) * (V0 + 2 * (V1 + V2) + V3); } void step_forward(vector pos; float dir) { float dist = length(pos); // There are volumes at 5 levels of detail, starting from the origin. This distance metric chooses which to sample from int prim = int(max(log(dist / 8. * 2) / log(4) + 1, 0)); // advection step based on the voxel size float vd = volumevoxeldiameter(1, prim); float dt = vd * 2; vector vel = volumesamplev(1, prim, pos) * dir; stepRK4(pos, prim, dt, vel, dir); } int steps = 10000; int pr1 = addprim(geoself(), "polyline", @ptnum); int pr2 = addprim(geoself(), "polyline", @ptnum); vector pos1 = @P; vector pos2 = @P; for (int i=0; i<steps; i++) { step_forward(pos1, 1); if (length(pos1) >= 1 && length(pos1) < 1000) { int newpt1 = addpoint(0, pos1); addvertex(geoself(), pr1, newpt1); } step_forward(pos2, -1); if (length(pos2) >= 1 && length(pos2) < 1000) { int newpt2 = addpoint(0, pos2); addvertex(geoself(), pr2, newpt2); } }
  2. Hey everyone, just starting out with Houdini and trying to wrap my head around some effects I can produce, but I've hit a big of a snag when it comes to using a solver SOP on my animated model. The idea is that the model will be falling through the sky, and whenever a part of his body passes through some cloud, that part of the body will dissolve into cloud as well. So the the cloud points will trigger the body points whenever they get close enough. I'm using a solver SOP, having the points in the clouds use a PCFind node to trigger an attribute change in the points in the model. However, I have an issue when choosing the Import style for the solver's Prev_Frame. If I use Fetch Geometry from DOP Network, the model's animation freezes (in and outside of the solver) and nothing can proceed. If I use Transform Input Geometry, the animation resumes, but nothing seems to solve from the previous frame. I've attached a version of the file that has the some limited success in making the body dissolve, but the points snap back to the falling body as soon as they exit the cloud, and I have no idea how to proceed. Any clues on how to approach this problem would be greatly appreciated! CloudDive.zip
  3. Hi guys, wonder if anyone could help me. A bit new to Houdini and learning a bit of vex and the solver sop. I followed along with an Entagma tutorial on intersecting lines that build up interesting grid like shapes. Was looking at trying to get all the point movements to move non-linearly instead of in straight lines. I figured instead of of just giving the points a random initial direction vector, could use sin/cos(time) as the directions within the solver, add a point and a poly line on each frame to get the curved lines, but can't seem to get it working at all. Any help would be much appreciated! attached my hip file from the tutorial straight line setup here. thanks Intersecting_Lines.hiplc
  4. 凸幾何学をどのように埋めますか? 写真は悪い方法です
  5. I want to make Voronoi like the picture. Can I have some help please?
  6. SOP Solver and DOP import help

    Hello all! I have a question concerning SOP Solvers in an Auto DOP Network. Im using SOP Solvers and switches to activate fracture geometry at certain times. I am trying to activate a second RBD object in the scene. Inside my SOP solver how do I specify which object the DOP import node fetches from the network? My_Scene.hipnc
  7. Hello. Per this link I can use GU_PrimPacked::build to create a packed primitive inside some detail. But I'm not sure how or where I can add the geometry I want inside the packed primitive. Hopefully that makes sense. Thank you.
  8. How to project a grid onto another model

    I want to stick a grid completely to another complex geometry, just like a uv map. I tried the ray node, but maybe I don't know how to use it, so I didn't see the results I expected. What should I do?
  9. Hi ! I'm pretty newb in Houdini and after a few months of training myself I'm trying now to create my own setup. Here I want to move points from a grid randomly to x or y position. A random value is generated every seconds to change the direction and the axis of the next move of each point. I already understand it must be completed with a solver sop, but I can't understand why amplitude is multiplied when I move points into the solver. I need to scale down a lot the movement. Anyone can tell me why ? Or just take a look to my project file here. Could be nice to have a little help to understand this issue. Thanks Dot_Grid.hiplc
  10. Custom attract

    Hi I am trying to create a custom attraction tool using popvops. Its a method I learnt doing a houdini course I would like to improve on it but I have been stuck on it forever. Instead of using a pop attract we are using a popvop to calculate the distance of the particles to a point in space and making them move to this point, if I am using a single point to attract them to its working fine, but what I would like to do is to attract them to multiple points ie a mesh. I have tried using the importpoints but that just makes them go to origin. I would like them to move to the rubber toy. Any advice would be appreciated. I have attached the file and the particle stream I am using to test. Cheers Particles.72.bgeo.sc attraction test.hiplc
  11. Hi, I just want to do it for experimentation. What's the best way to break up the edges of a pyro sim post sim with or without rest fields, and avoid swimming noise? If I have dual rest fields, do you combine them using a Mix node where the connections are rest, rest2 fields and rest2_ratio as the bias? Because there is also rest_ratio attribute. After this, do you displace the density volume using velocity field, gradient of the density or gradient of the SDF converted from density? Also negate the direction? I read here some people advising to use gradient or velocity to the position of the noise for example. Lastly which noise is more suitable for this task? Thanks a lot
  12. Hello, I'm trying to use voronoifracture node and found that it's different from the previous version(H16.5). So I imported to H17 from my old project made with H16.5 and now I have two different SOP named same. Is there any way to create the old voronifracture node in H17? One on the left side is new voronoifracture node in H17, and the right one is imported from my project made with H16.5. Thanks in advance!
  13. Hi everyone, I'm trying to make each connected points(@class) being deleted overtime when they above XZ plan. I made a bounding sphere for each @class and copy to itself with decreasing @pscale when it's above the plan. And delete the points outside the sphere. It works well when I set it to "single pass" but it works totally wrong when merges all iterations together... I have attached an example file below, it'll be fantastic if someone can help me out with this. sopsolver_in_loop.hip
  14. Hi, I have several meshes and a point and I would like to find primitives/points, the normals of which are directed to that point. To make it so I want to get vectors (and store them as an attribute) from that point to each of the points of these meshes and then compare them to its normals. But the first part doesn't work as I expected, what am I doing wrong? Or should it be done in a different way? facing_to_q.hipnc
  15. Hi folks, I recently saw this great tutorial from Entagma: http://www.entagma.com/houdini-17-quicktip-packing-geometry-using-the-uv-layout-sop/ It uses the UV layout SOP to pack geometry. My question is: How would I modify this technique to pack seperate words, as opposed to individual letters? Any pointers greatly appreciated!
  16. magnet force on two directions

    hello! I am having trouble making gravity work in two directions. Basically the world is a tube and I want objects to magnet/have a gravity like force along the Z and Y axis but not on the X axis. I attached my hip file and a picture. Any help would be great! Thank you! tube_attractor.hip
  17. Good day everyone! I been stuck for a while with a simple task, such as to move all of primitives, which has attribute "class" (cause primitives separated from each other threw "connectivity" node for later use as pseudo group) to World Coordinates XYZ = 0, 0, 0. Does anybody know how to solve that? Especially helpfull will be solution threw SOP nodes or VOP nodes. VEX welcome as usual, but can this problem be solved without scripting by the same time? Thanks
  18. Hi, This is giving me headaches for two hours now.I know it would be much easier in vex,however I dont know how to achieve this effect. If anyone can please point me in the right direction that would be greatly appreciated! There are some arrows shoot into ground in this scene,I want to make some small crushed stones in the first catch point. But the question is how i can get the one primitive source in just one frame? Transfer color is the best way i can think whitin my all power. Let me show you some GIF shot204.hip
  19. Hi. I am trying to figure out the usage of the Basis SOP. The documentation and web searching hasn't given a clear answer. All I understand is that this node is intended to modify NURBS. But parameters tweaking don't give me a distinct effect on a geometry so I am slightly confused. How does it work and what is the usage for the Basis node?
  20. Hi, I am currently creating a simulation with flip fluids that are affected by a vortex force. I need the velocity/lift attributes to be animated independently throughout the simulation, though no matter how I set the settings for either the sop geometry, or vortex force operator, the values will not change throughout the simulation. What is the proper method for animating these attributes for use in dops? Thank you,
  21. Hi, It seems that generally when animating objects in scene/object level, you are only able to animate variables globally. I have a scene with a spinning propeller, and this spinning propeller needs to rotate around its own axis, while being placed in a certain spot in the scene. How is this achieved? All transforms in the scene are global space, so if you need to rotate the object 30 degrees on the X axis, the Y axis will not follow the local transforms and the propeller will spin sideways in circles. Followup question: I briefly had a teacher from Lost Boys school of VFX and he showed me how to properly load animation data into a dopnet. Unfortunately I was just starting out with Houdini as he showed me, so I did not catch the method. I gathered that this should not be done in sop-level ('Use deforming geometry'), and rather with motion / 'RBD keyframe active' operators in the dopnet -- how do I load in my animation data, so the velocities are correct with proper interpolation? Thank you,
  22. I'm making an effect very much like this one from Entagma: https://vimeo.com/194277211 I've adjusted it a little and I noticed that some of the curves that get created collapse onto each other. I think it even happens at the very first frame. You can see that by the white parts of the lines. Those are the last created points. When two white parts meet, it means the curves collapsed and continues as 1 curve. What the setup does is it has a bunch of points as the active searching points. Each of these find target points in front of them and saves those in an array. Then a random point from within the array gets chosen and used to make the polywire. Sometimes, mainly at the very beginning, the searching points are close enough together so that they might find the same target points. This is where I believe the issue lies. What I would like to achieve is that I can check between the arrays on each of the points to see if they have similar target points and if so, remove those from one of the arrays. Or that when points get targeted by one searching point, they instantly get marked so that they can't be found again before the end of the timestep/solve. At this moment, I'm still trying to figure that one out. Any tips for this are much appreciated. Eckhart ObjectMaterialize.v005_00.hip
  23. Hi guys, I made simple lightning effects and I want to make all frame of this effects in a single mesh like screen capture. I try to use solver sop and it looks okay but you know, there will be a few same multiple mesh. also don't want use timeshift sop to freeze each frame and merge them. If you know good method please help me!! Thank you!
  24. I can follow the code written in Tutorial and can be compiled. Parameter can be created. However, there is no way to create an attribute. mycircle.h #include <SOP\SOP_Circle.h> #include <OP/OP_Parameters.h> class SOP_MyCircle : public SOP_Circle { public: SOP_MyCircle(OP_Network *net, const char *, OP_Operator *op); static OP_Node *MyConstructor(OP_Network *net, const char *name, OP_Operator *op); static OP_TemplatePair *buildTemplatePair(); protected: OP_ERROR cookMySop(OP_Context &context); private: fpreal COLORX(fpreal t) { return evalFloat("color", 0, 0); } fpreal COLORY(fpreal t) { return evalFloat("color", 1, 0); } fpreal COLORZ(fpreal t) { return evalFloat("color", 2, 0); } }; mycircle.cpp #include <UT/UT_DSOVersion.h> #include <OP/OP_OperatorTable.h> #include <OP/OP_Operator.h> #include <OP/OP_Context.h> #include <OP/OP_Network.h> #include <SOP/SOP_Node.h> #include "mycircle.h" #include <stdio.h> static PRM_Name colorName("color", "Color"); static PRM_Default colorDefaults[] = { PRM_Default(1), //r PRM_Default(0), //g PRM_Default(2) //b }; static PRM_Template newParmsTemplates[] = { PRM_Template(PRM_RGB, 3, &colorName, colorDefaults), PRM_Template() }; OP_Node *SOP_MyCircle::MyConstructor(OP_Network *net, const char *name, OP_Operator *op) { return new SOP_MyCircle(net, name, op); } SOP_MyCircle::SOP_MyCircle(OP_Network *net, const char *name, OP_Operator *op):SOP_Circle(net, name, op) { } OP_TemplatePair *SOP_MyCircle::buildTemplatePair() { OP_TemplatePair *old, *my; my = new OP_TemplatePair(newParmsTemplates, 0); old = new OP_TemplatePair(SOP_Circle::myTemplateList, my); return old; } OP_ERROR SOP_MyCircle::cookMySop(OP_Context &context) { SOP_Circle::cookMySop(context); fpreal now = context.getTime(); fpreal clr_r = COLORX(now); fpreal clr_g = COLORY(now); fpreal clr_b = COLORZ(now); GA_Attribute *cd_attr = gdp->addFloatTuple(GA_ATTRIB_PRIMITIVE,"Cd",3); GA_RWHandleV3 h(cd_attr); GA_Offset off = 0; h.set(off, UT_Vector3(clr_r, clr_g, clr_b)); return error(); } void newSopOperator(OP_OperatorTable *table) { table->addOperator( new OP_Operator("myCircle", "myCircle", SOP_MyCircle::myConstructor, SOP_MyCircle::buildTemplatePair(), 0, 0) ); } mycircle.cpp
  25. I'm trying to imitate the motion of rocks falling on dirt. Since the RBD Solver seems to give me more accurate and realistic looking results over the Bullet Solver, I decided to go with that method using RBD Fractured Object. When I first had my scene setup with Bullet, I was able to use a little VEX in the SOP Solve to artificially reduce velocities as rocks fell below a certain Y value. It seems like that setup isn't compatible with my RBD setup, so I was wondering what would I need to do to get it working? In addition, how can I write an expression that would tell the solver to reduce the velocities of the objects by half and double their weight each time they impact the ground? Any tips would be greatly appreciated. Thank you! RBDTest_001.hiplc
×