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


  • General
    • Lounge/General chat
    • Education
    • Jobs
    • Marketplace
  • 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 134 results

  1. Hi, As known Houdini makes hard tasks easy and easy tasks hard. So at first sight really simple task, but I cannot find a way to overcome it. The bridge that connects hole in ngon looks like it is somehow outer edge of a polygon. Maybe there is a way to some how fuse it or ignore such an inner edge during for example resampling? Fuse bridge that connects hole in ngon.hipnc
  2. Hi guys, I have a rigid body sim with constraint network, I want to access the previous frame and current frame data of the constraints (impact, forces etc) inside a sop solver in DOPs. Currently when I call the attribute in a wrangle from the relationship geometry node I don't know if it's current frame data or previous frame. How to get both the current and previous frame data in a wrangle in sop solver in dops?
  3. Hello! I'm following this tutorial: and have been getting similar results up until around 22:10, when my simulation behaves entirely differently. My worm just goes flying. I've messed around with the values in the set_force attribute wrangle inside the sop solver, but can't seem to get anything like what he is. Obviously it's working to some extent, because a force is being created. I'm pretty sure I did everything the same as him... can anybody help me out? Here's my file:Larva2.hipnc
  4. Hey magicians, I'm building a procedural house wich I want some UVs, walls are based on copy to point cubes, I'm having issues to have all the cubes in 1 UV, will post some refs to explain: I tried playing with fuse to merge the boxes, using the autouv on the box before copying, after copying, also tried to make a vdb convert, UVs and transfer back with no luck Any thoughts on how I can get a general UV layout from these boxes? Thanks!
  5. Hi, I'm trying to add noise to this curve falloff animation. Currently it's just going straight to the bottom. I want to add a little bit of noise to it. I have used resample node to generate curveu attribute. Can anyone please help me? I've attached the scene file. curveu_noise.hip
  6. vex return list of prims numbers inside radius

    Hi, I raytrace millions of points on a geometry with vex, I using the fonction intersect() for that and this return me the prim number of the hit surface, but I looking to find a way to find all primitives inside a radius for each point raytraced. their is way to find points inside radius with pcfind() and xyzdist() but I want to limit my search to prim for many reasons. Someone had solved this problem or have an idea ?
  7. An expanded Merge SOP operation. Goes well with H18 "Copy to Points" to boot, but there's a lot of other small things that enables.
  8. Hi everybody! I'm new to Houdini and I'm using my time during the lock down to go deeper into it. I have been trying some different vellum sims and I was feeling ready to try a new one. I just wanted to make a new r&d project where a sphere passes through a torus or a hole. I found this example online. At second 15 you see what I mean. https://www.stashmedia.tv/digital-design-days-trailer-ditroit-directors-cut/ Is it possible in achieving this shot in a single simulation or in your opinion it was made with FEM in two different settings and then edit like a single shot? Please let me know I'm dying trying how to do it
  9. Hello, I have a few questions about vop nodes in mat context. I have no trouble with vops in sop, but things seem to fall apart in /mat (FYI I am working inside a material builder). 1. Is it possible to access @ptnum and @primnum? It doesn't seem to work 2. Some binds just don't seem to work. If I do the same bind in /obj vop context, it works perfectly, but binding it in /mat material builder doesn't. Why would it not work in the /mat context when the nodes are the same? 3. If the vop asks for a file and I use op: to get data from a node in /obj, it does not work and says error finding geometry. But if I do the same thing in /obj in a vop network, it works perfectly fine 4. In /obj in a vopnetwork, you can access the input from the geometry vop global parameter node. If the vop node asks for a file, you can wire it into opinput 1. How do you do that in /mat? What if I want to access the geometry to which the shader is applied? It's asking for a file, but I just want to use the geometry to which that shader is applied. Thanks
  10. Really having trouble with this / understanding the new workflow. If I have a fractured sphere and a static box what is the correct way to create glue constraints between each object and have them work with the new sop level solver? Seems like I am only able to create constraints that work by breaking objects. What if I just want to glue two shapes together? Any help will be hugely appreciated.
  11. hello everyone,i'm learning c++ and I'm new to Houdini HDK. I was reading another topic, someone told that you can use example files and manipulate them. so I have some questions for you: as you can see the header code and it's definition namespace HDK_Sample { /// Run a sin() wave through geometry by deforming points /// @see @ref HOM/SOP_HOMWave.C, SOP_HOMWave, SOP_CPPWave class SOP_PointWave : public SOP_Node { public: SOP_PointWave(OP_Network *net, const char *name, OP_Operator *op); virtual ~SOP_PointWave(); static PRM_Template myTemplateList[]; static OP_Node *myConstructor(OP_Network*, const char *, OP_Operator *); /// This method is created so that it can be called by handles. It only /// cooks the input group of this SOP. The geometry in this group is /// the only geometry manipulated by this SOP. virtual OP_ERROR cookInputGroups(OP_Context &context, int alone = 0); protected: /// Method to cook geometry for the SOP virtual OP_ERROR cookMySop(OP_Context &context); private: void getGroups(UT_String &str){ evalString(str, "group", 0, 0); } fpreal AMP(fpreal t) { return evalFloat("amp", 0, t); } fpreal PHASE(fpreal t) { return evalFloat("phase", 0, t); } fpreal PERIOD(fpreal t) { return evalFloat("period", 0, t); } /// This is the group of geometry to be manipulated by this SOP and cooked /// by the method "cookInputGroups". const GA_PointGroup *myGroup; }; using namespace HDK_Sample; void newSopOperator(OP_OperatorTable *table) { table->addOperator(new OP_Operator( "hdk_pointwave", "Point Wave", SOP_PointWave::myConstructor, SOP_PointWave::myTemplateList, 1, 1, 0)); } static PRM_Name names[] = { PRM_Name("amp", "Amplitude"), PRM_Name("phase", "Phase"), PRM_Name("period", "Period"), }; PRM_Template SOP_PointWave::myTemplateList[] = { PRM_Template(PRM_STRING, 1, &PRMgroupName, 0, &SOP_Node::pointGroupMenu, 0, 0, SOP_Node::getGroupSelectButton( GA_GROUP_POINT)), PRM_Template(PRM_FLT_J, 1, &names[0], PRMoneDefaults, 0, &PRMscaleRange), PRM_Template(PRM_FLT_J, 1, &names[1], PRMzeroDefaults), PRM_Template(PRM_FLT_J, 1, &names[2], PRMoneDefaults), PRM_Template(), }; OP_Node * SOP_PointWave::myConstructor(OP_Network *net, const char *name, OP_Operator *op) { return new SOP_PointWave(net, name, op); } SOP_PointWave::SOP_PointWave(OP_Network *net, const char *name, OP_Operator *op) : SOP_Node(net, name, op), myGroup(NULL) { mySopFlags.setManagesDataIDs(true); } SOP_PointWave::~SOP_PointWave() {} OP_ERROR SOP_PointWave::cookInputGroups(OP_Context &context, int alone) { return cookInputPointGroups( context, // This is needed for cooking the group parameter, and cooking the input if alone. myGroup, // The group (or NULL) is written to myGroup if not alone. alone, // This is true iff called outside of cookMySop to update handles. // true means the group will be for the input geometry. // false means the group will be for gdp (the working/output geometry). true, // (default) true means to set the selection to the group if not alone and the highlight flag is on. 0, // (default) Parameter index of the group field -1, // (default) Parameter index of the group type field (-1 since there isn't one) true, // (default) true means that a pointer to an existing group is okay; false means group is always new. false, // (default) false means new groups should be unordered; true means new groups should be ordered. true, // (default) true means that all new groups should be detached, so not owned by the detail; // false means that new point and primitive groups on gdp will be owned by gdp. 0 // (default) Index of the input whose geometry the group will be made for if alone. ); } OP_ERROR SOP_PointWave::cookMySop(OP_Context &context) { OP_AutoLockInputs inputs(this); if (inputs.lock(context) >= UT_ERROR_ABORT) return error(); duplicatePointSource(0, context); fpreal t = context.getTime(); float phase = PHASE(t); float amp = AMP(t); float period = PERIOD(t); if (error() >= UT_ERROR_ABORT) return error(); if (cookInputGroups(context) >= UT_ERROR_ABORT) return error(); GA_Offset ptoff; GA_FOR_ALL_GROUP_PTOFF(gdp, myGroup, ptoff) { UT_Vector3 p = gdp->getPos3(ptoff); p.y() += SYSsin( (p.x() / period + phase) * M_PI * 2 ) * amp; gdp->setPos3(ptoff, p); } if (!myGroup || !myGroup->isEmpty()) gdp->getP()->bumpDataId(); return error(); } my first question is: we have this int header file : SOP_PointWave(OP_Network *net, const char *name, OP_Operator *op); where is it's definition in *.c file? ----------------------------------------------------------------------------------------------------------------------------------------- my second question is: void newSopOperator(OP_OperatorTable *table) { table->addOperator(new OP_Operator( "hdk_pointwave", "Point Wave", SOP_PointWave::myConstructor, SOP_PointWave::myTemplateList, 1, 1, 0)); } why this function is void? I know because it won't return anything, but why it shouldn't? why newSopOperator's parameter is a class (i know a class is custom data type) but why? and what is table in the parameter? ----------------------------------------------------------------- BEST REGARDS
  12. Random File to Point

    Hey guys, new user here. I have a folder of objects built and exported from Houdini, and a bunch if random points scattered on a surface. I'd like to copy a different file to each point based on an index attr. I've gotten it to work using packed disk prims but not as full geo. The issue with packed disk prims is I loose all the existing attrs and groups in the files. Perhaps I'm going about this all wrong because it seems like there should be a simple solution. Any help you guys can give would be thrilling!
  13. How to remove points from render

    I was following a tutorial from @librarian (a nice dude) but i stepped on the following problem: the points render and at sop level appear. I have everything exactly the same on my proyect as the tutorial and still they appear on sop so they end up rendering It should look like this: My proyect grilla3.hip Model solu2od.hipnc Thanks a lot
  14. Hello; Is there any SOP node, or VEX function that can check if it's connected input object is a Curve or Volume or Polygon or Nurbs ...? Thanks.
  15. Hi! I'm loading an .obj file that contains multiple pieces of geometry(with different names). I want to apply Boolean to every pair of them, to union them into one big object. I'm assuming I'll probably need to use the for loop somehow, but I can't seem to figure it out. Can you help me out?
  16. 皆さん、はじめまして! 私は単純な問題に苦しんでいます。 私がやりたいのは、エリアに入るときにcopyAreaを恒久的に1に修正することです。 現在、ポイントWrangleで属性をコピーしようとしていますが、copyareaはareaと同期して0です。 サンプルシーンをアップロードしたので、ご覧ください。 あなたの意見を聞きたいです。 copyAttribute.hiplc
  17. Hi guys, I wanted to ask how can I achieve the following result: I have points scattered along a surface, on wich I have various noises affecting the color attributes of said points. What I want is for the points that are in the "red" zone to not move at all, and for the points in the "blue" to find the closest RED neighbour, and move towards it, controlled by a slider for me to animate. Seems easy enough, but alas, I am stuck. I wrote a point wrangle that does the job - well, sort of. The points are separated correctly, but I can't find an efficient way to attract them to the closest "red" neighbour. Most of them move, but not in a complete way as to seem as pure attraction. This is what I 've got so far: int nearpt = pcfind(0, "P", @P, chf("neighbourRad"), 2)[1]; i@nearpt = nearpt; string @INstatic = ""; //to separate the points in teams if (@Cd >= ch("color_tolerance")) { @INstatic = "yes"; @Cd = {1,0,0}; } else if (@Cd < ch("color_tolerance")){ @INstatic = "no"; @Cd = {0, 1, 1}; } //find closest points int ptneighbours [] = pcfind(0, "P", @P, 10, 1000); i[]@ptneighbours = ptneighbours; foreach(int j; i[]@ptneighbours) { s@affected = point(geoself(), "INstatic", j); if ( @affected == "yes") { @nearpt = j; v@nearPos = point(0, "P", @nearpt); } else { v@nearPos = point(0, "P", @nearpt); } } //move only blue closest points if( @INstatic == "no") { @P = lerp(@P, @nearPos, chf("percentcomplete")); } Any help would be more than appreciated, G.
  18. DOP not keeping the dent done in SopSolver

    Hello, Alberto here! I've been following many tutorials and checking many examples in Houdini Help but after some days I'm getting a bit lost with this. I'm trying to do modifications to points in a geometry using an extra solver, during a Dop RBD simulation. I've tried to reproduce other working examples that I've found over the web but when I do it by myself, is not working. I want the extra solver to keep the denting based on impacts during the simulation. I read and saw examples about "Unpack - Do The Operations - Reassemble" inside the extra SopSolver and that's what I've tried to do in the attached file. I get the dent only in the frame of impact, not keeping at all any of the deformations during the rest of the simulation. I'm not asking for "fixing the file", I'm more into understand what I'm doing wrong and why. Anyway, Fix the file will help Thanks everybody in advance! Metaballdent_extrasolver.hipnc
  19. Hi guys, I'm trying to learn a bit more about geometry creation and manipulation in vex. I've been attempting to create a simple grid with lines moving along in one direction. Once the line reach the end of the grid, it moves back to the other end. Like a treadmill. I've been able to create some stuff with addvertex and addprim in a for loop, but nothing nice and procedural. Anyone have an elegant solution to this? Thanks
  20. 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); } }
  21. 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
  22. 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
  23. 凸幾何学をどのように埋めますか? 写真は悪い方法です
  24. I want to make Voronoi like the picture. Can I have some help please?
  25. 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