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
    • 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 144 results

  1. Can't delete output of cop2net in sop

    Is output of cop2net in SOPs different than a regular mesh? Nothing seems to work (deleting by @ptnum, @Cd attributes). I hoped that Houdini could provide some image processing combined with subsequent geometry processing.
  2. Hello, I would like to get rid of these edges and keep the bigger rectangle. How can I do this? Thank you
  3. Distributed SOP cooks?

    I'd watched the video showcasing distributed particle sims, but only recently it occurred to me that this technique only applies to DOPs? Am I correct in saying that there is no general solution to distribute SOP cooks? For example, slicing and aggregating (map-reducing) VDB clouds or any VEX snippets on large meshes?
  4. Hello there, Before in Houdini GamDev has a sop called group by attribute. So if I use name node to group primitives, pack them then just use the group by attribute node Houdini will recreate all the group based on the name attribute I had In Houdini 18.5 it has a node called group from attribute boundary which does similar thing but I can't figure how to set it up so it can auto create group based on name not manually set up each name like in the photo I hope I explained it well. Thank you for reading this
  5. Voronoi interior detail

    Hello Everyone! I would like to add an interior detail for fractured pieces but I cannot seem to find the option in the voronoi fracture sop even though Houdini knowledge base says exactly this: "you can enable the Add Interior Detail checkbox on the Interior Detail tab of the Voronoi Fracture SOP node. This gives you access to parameters to bricker the flat planes and add some noise." (Link: https://www.sidefx.com/docs/houdini/dyno/voronoifracture.html) I also tried using RBD material fracture as an alternative as I can link it to an RBD interior detail but it messes up my geometry and distorts the etched logo so voronoi fracture sop is the cleanest reuslt I was looking for. thank you very much in advance! voronoi.hip logo-galler.ai
  6. Hi, Is this the way to add a SOP Solver in the new RBD Bullet Solver SOP? I noticed that we have access to a lot of nodes inside it. It says "wire pop forces into here" but not sure how to hook up a SOP Solver. I'd like to set up some custom activation inside this RBD Bullet Solver SOP.
  7. Hey guys, This should be fairly simple. I have a ball bouncing on a plane, I am finding the contact points but rather than displaying then one at a time as the ball bounces, I need them all together on a frame hold I am transferring the Cd attribute from the ball to the plane to get the contact points. Then we are removing all ground geometry except the contact points if (@Cd.g >= 0) removepoint(0,@ptnum); the contact points appear frame by frame as the ball is bouncing. Any idea how to get them all to display at once? So I guess I need to store the contact point somehow?
  8. Hi I'm trying to implement meshlabserver script in Houdini to process multiple pointcloud sequences with poisson reconstruction. I got it working with this code, that read a ply file (created upstream with a filecache sop) and output a new ply file temp_out_$F.ply after applying a meshlab script. Obviously the python sop passes to the next node the geo that receives form its input, which is the unprocessed -filecached- one. How can I clear the geometry and load the geo from the processed ply file (temp_out_$F.ply) inside the python sop? thanks for any kind of help! node = hou.pwd() geo = node.geometry() import os os.system('C:/Programmi/VCG/MeshLab/meshlabserver -i C:/temp_in.ply -o C:/temp_out_$F.ply -m vc -s C:/poisson_sa_da_base.mlx -l C:/log.txt' )
  9. Hi everyone, Today I have a bit of a challenge that I think can be solved with some clever vex. One of my favorite modeling nodes for Houdini is 'circle from edges,' because you can pretty much select any curved geometry and get a perfect circle. As you may know from C4D creating circles on curved geometry is quite painful. Here is what the basic node does: Now what if instead we wanted a rectangle with rounded edges: Such as this one which I've modeled many times before, and it always requires taking two circles, expanding edges etc. It would be fantastic if the circle from edges could also support this shape and work just as well on curved geometry such as a sphere. I'm not sure where to start with this one, since I've only been working with vex for some short weeks now. However, any hints/tips or ideas are welcomed. Even a way to expose the code used in circle from edges would give me some ideas. My goal is to use VEX to build a bunch of tools that help model industrial models very quickly in Houdini - usually these sorts of details are very common in industrial modeling. Thank you.
  10. Bulginga spere with Vops

    Hi have been trying to flat bottom or top a sphere with min max bounds in vops with a ramp and a fit. Its not working as want it to. I'm not being able to interpret to Houdini how to interpolate between top bulge and a bottom bulge. I aim to execute this in a procedural way. I need help!
  11. 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
  12. 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?
  13. 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
  14. 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!
  15. 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
  16. 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 ?
  17. 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.
  18. 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
  19. 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
  20. 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.
  21. 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
  22. 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!
  23. 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
  24. 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.
  25. 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?
×