Jump to content

Search the Community

Showing results for tags 'attribute'.



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 70 results

  1. Hey all, I'm super new to Houdini with a background in game development. I was going through tutorials on pluralsight and I'm loving it so far. So I've been expanding on the content and diving into Vex, and I hit a snag trying to run a Solver that changes generated point colours, because I wanted read from and modify persistent data on a separate point outside of the solver network. I simply created details on the point in an Attribute Wrangle in dataHolders and thought it would be easy to read and write to them from an attribute wrangler infectedPoints in the solver. The problem is the vex script in the attribute wrangler can't actually read the details ie: int pointsVaccinatedSoFar = detail("../../../dataHolders/dataHolderPoint","pointsVaccinated",0); int maxPointsToBeVaxxed = detail("../../../dataHolders/dataHolderPoint","maxPointsToBeInitiallyVaccinated",0); printf("points Vaxxed so far: %g\n",pointsVaccinatedSoFar); printf("points Vaxxed so far: %g\n",maxPointsToBeVaxxed); The font node pulls the details properly and prints them. But the printf always yields 0 when maxPointsToBeVaxxed should be 10. I'm guessing I'm breaking some kind of data context/scope protocol in Vex buuut I don't know enough about Houdini yet to really understand what's going on if that's the case. Or I guess I'm not using detail() properly, or both Any help would be appreciated! I'm using Houdini Indie so if you guys can read it I can upload the .hiplc file. Thanks!
  2. Hello All, I have created a model in Houdini which consists of 6 different sections. All those areas have their unique Point attribute, so I merged everything into one object with the help of VDB and transferred all the point attributes. I would like to have a different shader on all those 6 sections of the geometry. My approach was to create one Redshift Shader network and with the help of Blend material and Unique attributes for Blend weight, separate all shaded areas. But for one of the areas I needed to use separate Blend Material and a different displacement. So do I need to create Groups based on those Unique attributes and assign shader within the geometry node with 6 unique Redshift Shader networks? Or there is a way to assign those 6 shaders by the attribute?
  3. Hello Guys. I got stuck here in a middle of an project and i can't find a solution. My problem is : I have a grid of points , and an animated point running over the surface of the grid. My "running" point have an attribute that is transferd ( via attrib transfer SOP inside anSolver) to the grid points by an proximity radius. then I use the transfered attribute to isolate only the grid points that are tuched by the "running"point. But the @ptnum of the remaining points is changing. And i need the @ptnum to grow in the order detection ( @ptnum 1, 2, 3, 4, 5 etc) why is that happening to understand better I've attached the scene file ptnum_chaos.hip
  4. I have some prims that I need to drive through a Clip SOP. Each prim has got its own clipping plane origin and direction, previously computed and stored in prim vector attributes, eg v@clipOrigin and v@clipDirection I would like to connect these attribute values to the inputs of a Clip SOP: Origin & Direction parameters but cannot figure out how to do it. I tried (just showing the Origin.x parameter of the Clip here, but the y/z and the Direction.x/y/z would be analogous: @clipOrigin.x no error, but wrong result (alway zero) v@clipOrigin.x error: unable to evaluate expression - extra tokens detected in expression ch("../nodeJustAboveClip/clipOrigin/x") error (bad parameter reference) hou.ch("../nodeJustAboveClip/clipOrigin/x") error (unknown function in expression) also tried with a spare parameter I realize the clipOrigin is not a parameter on my nodeJustAboveClip SOP, but rather an attribute on its prim output. So 3-5 are likely just plain wrong. Just in case Clip assumes it is running over points rather than prims, I also inserted a Attribute Promote SOP to copy the prim v@clipOrigin to each point. With version 1 above, the result is the same - no error but always zero. If you know how to do this, thank you in advance ! This is in Houdini 16.5 Indie -------- SOLVED: I was using the wrong syntax in the parameter expressions. You can pick up prim or detail attributes in SOP (not just Clip SOP) parameters like this: prim(surface_node, prim_num, attrib_name, attrib_index) detail(surface_node, attrib_name, attrib_index) details(surface_node, attribute) point(surface_node, point_number, attribute, index) Note these are VEX expression functions used in parameter expression one-liners, not regular VEX functions used in wrangles. The signatures of the functions are slightly different.
  5. Hi @ll, Firstly, enchanted to meet you all. I was testing the VEX function “opfullpath” in a simple way : // Getting the intrinsinc detail “numprim” via the function “detailintrinsinc”. Houdini Version : Nodes : one polygon Mesh(@opinput0) + attrWrangler. Detail intrinsinc signature is : detailintrinsic(string geometry, string intrinsic) Thus #1 : string geometry must be the path to Geometry Thus #2 : the command “in theory” could be : int primCount = detailintrinsinc( “op:`opfullpath(“../myInputedGeo”)`”,”primitivecount”); printf(“prim count : %g \n”, primCount); // to display. Saddly it doesn’t work… But : op:`opfullpath(“../myInputedGeo”)` is NOT a string it generes a string Thus #3 : command could be : string fullpath = `opfullpath(“../myInputedGeo”)`; int primCount = detailintrinsinc( fullpath,”primitivecount”); printf(“prim count : %g \n”, primCount); // to display. Saddly it doesn’t work… So it’s really hard to me to spot the worry…..because if you use the “lazzy” signature : detailintrinsinc(int opinput, string intrinsinc); It works but it has really really less power than using a path as the code will just look a the input0 of the wrangler’s entry rather than all over the scene to get its info. Probably a syntax error from me ? So if any body could help, you will be welcome please !!!. Bests, alr + + + pathtogeo-v004.hipnc
  6. Hi there. I have a small issue going on. I have a source emitting boxes as packed rbds. The boxes have different sizes according to the pscale value and that attribute is stored in the packed prims in the assemble sop. When I use a dopimport to read back the points and copy boxes on them, pscale value is gone, it looks like the dopnet didn't store it. Usually this is not an issue because the static geometry is transformed with the transform pieces sop. But here there's this issue with the pscale attribute. I attach a very simple setup that shows the problem in action. Thanks a lot! packedPscale.hipnc
  7. I'm trying to drive a BlendShapes' SOP blend parameter using a point attribute, @fade. The @fade is a point attribute and have it's value animated. But the blend parameter doesn't appear to read this animated values and keep showing 0 instead. The question: the blend parameter doesn't work with point attributes? I tried VEX and Hscript forms (@fade and $FADE). The second crashes.
  8. I need an advice from you, guys! How the local attributes of PolyExpand2D SOP are to be used? I want to make a non-uniform offset with these inside scale attributes. But I do not know the workflow for this.
  9. Hi guys, how do I compare to each other and get max and min values of attribute for different elements. Basically I want to compare these guys and get min and max.
  10. Attribute Delete All But One

    Hello everybody, I was wondering if there is a way for delting attributes but keeping few in faster way. For example after rbd or particle simulation there 15 to 20 different attirbutes and that much data creating big datas for alembic caches. So i wanna keep P, Cd and orient olny but hate deleting all other attributes selecting one by one lol there must be a way to delete all but P, Cd or orient or so u know.. Anybody has an idea???
  11. Hi! Can't figure out how to assign attribute to different group parts that boolean made. I have a cylinder with some cylinders rotated and transformed like a tree branches. They intersect with main cylinder. After subtracting them from main cylinder "trunk", there are abseams edge group created. How to assign attribute for each loop(I mean all loops has one attribute but with different values for each loop - 1, 2, 3...etc)? Or how can i create separate group for each loop? This is for purpose to scale/transform them from center of loop in foreach, to affect them all at the same time.
  12. cloth doubt

    Hi i have a grid cloth and i would like a group of points >prims (those straight in the middle) to be much more stiffer and less propense to bend than all the rest. it doesnt work im doing something wrong anyone can please take a look to my file? bendstiffness_attribute.hipnc
  13. use of Energy Attribute - FEM

    Hey guys, About this energy attribute, I think I could make a good use of it but I don't know how to access it. I mean, I can see it in the dops geometry spreadsheet but it doesn't get out there. I can't see it in sops. My main doubts are: - Can I bring this attributes to sops? (dissipationdensity, kineticdensity, potentialdensity) - Can I use it in dops? (use it as a multiplier for some other parameter, like the fracture threshold for example) Thank you fem.energy.v1a.rar
  14. Hello! Sory for my English I'm trying create geometry with AttribWrangle node in Detail mode. I use addpoint, addvertex and addprim nodes. When I created some points how could I get access to them into the node? For example, I created point pnt0 = {0,0,0,}. And now I want to create point pnt1 which is close to pnt0: int X = 3; int pnt0 = addpoint(0, set(0,0,0)); int pnt1 = addpoint(0, set()); - and here I want to get position of the first point and add X to each coordinates. Is it possible?
  15. Noise Control using Colour

    Hi, I am trying to control the frequency of noise using a colour attribute. I have managed to do this on a grid but I cant figure out how to do the same using a volumevop. My goal is to be able to control the amount of detail/scale in specific areas of the model. Im not sure if this is the right way do to this but the example image shows that effect I'm trying to achieve. Thanks Noise control.hipnc
  16. So I was writing some vex code for a scene Im working on, and while I was debugging the code to correct an issue I placed various printf() functions in the code to check the state of the attributes right after I made some changes to them, and I noticed that if I load an attribute in a variable and print it, modify the attribute, reload it in the same variable and then print the variable out again, it wont show the newer value if the loading&printing process is done in the same wrangle node of where the attribute was modified. Here's an example scene wich exactly recreates my scenario. Am I missing something stupid here? Test_attribute.hipnc
  17. Colozize SDF

    Hi there! I'm looking for a method to colorize SDF (VDB) based on an attribute, which I made, for ie: the distance along the X axis. (The surface created at render) Any help would be appreciated.
  18. C4D-Style Effector

    Just throwing this one out there. I keep seeing people looking for easy ways to control attributes, a lot of whom reference C4D's effectors. So I made one. It's come in handy a few times already so I thought I'd package it up nicely and upload it. Let me know if you find it useful, find some bugs, or have any questions MT_PlainEffector.hdalc
  19. Is it possible to create an arbitrarily-named transformation vector attribute through VEX? Let's say I do this in a point wrangle: v@test = {0.5, 1, -0.2}; From what I understand the resulting attribute is what's called an arbitrary vector (indexed by 0, 1, 2). How can I have this created as a transformation vector (indexed by x, y, z)? It seems all of the automatically-cast attributes are created as transformation vectors (@P, @accel, @center, @dPdx, @dPdy, @dPdz, @Cd, @N, @scale, @force, @rest, @torque, @up, @uv, @v), but I need to name the attribute something else. Interestingly, if I create the same attribute with an Attribute Create SOP, with type set to vector, the resulting attribute is a transformation vector (x, y, z). However, I cannot seem to create an arbitrary vector through Attribute Create. What I'm currently doing is first creating the attribute with an Attribute Create SOP, and then modifying it with the point wrangle. But there must be a way to do it without the wrangle? This seems like such a common question, but I've searched all over and looked through many of the vex functions that I thought may be relevant and I can't seem to find anything. Maybe I'm just using the wrong terms.
  20. FEM Fracture Attribute

    Hello! In this Masterclass, at 41:00, the teacher explains that fracture parts of the object can be localy modified using an attribute. So my question is about this : how do you control what part of the object will fracture? is there a way to connect the FEM solver to a voronoi attribute or anything like that? Thank you for your time!
  21. Hi all I maked a very common break, only a box and some points to fracture and packed. Know i want to find the rotatioin angle through 'w' attribute. No matter what way can be... Thanks!
  22. Hello!, I'm creating an attributte to group only the tips of this extrusions ...I used the front group that polyextrude creates to transfer an attribute to the root.. it's working so far buut the problem is those areas where the attribute of some tips gets to other nearby tips ... I could put a smaller blend value but still for thos tips that are to near I get this problems, of course I understand that the attributte transer is just creating a blend radius without any topology consideration... I was trying to look for some technique to transfer attributte to points that are topological connected, without any luck so far. any ideas?
  23. Hey guys. I'm pretty new to the houdini world, and I've been experimenting a lot of things. Is there a way to get the RGB values of scattered points using attrib wrangle? Im not too familiar with the VEX syntax, so Im having a hard time figuring it out. I have random colours signed to a scatter node and some geometry copied on to the points using a copy node. I want to limit scatter the geometry based on the colour of the scattered point. Thanks!
  24. Hi I need to initialize an attribute in a wrangle wich runs in Detail mode (only once), so I cant simply write " i@status; ", thats why I thought to use a for loop and the setattrib() function, but that code does not create any attribute on the points...why is this happening? Thanks
  25. Temporary variables in VEX Help

    Hi I'm new to this wrangle node programming, I've been busting my head over why this doesn't work for three days, it's so simple therefor i must be missing out on some general vex concepts. If anyone can please point me in the right direction that would be greatly appritiated. I have a bunch of points on a grid and their moving up and down via noise. I am trying to set up a point attribute that has a value of 1 when a point if moving up (positivly in the Y axis) and a value of 0 when a point is moving down (negativly in the Y axis). This attribute is called Direction, I'm computing the logic on temporary VEX variables and then writing them out to the attributes. Here's how it looks like : // 0 is going down, 1 is going up, -1 means the point has no direction // on the first frame they have no direction so the points just take their current heights so they can use them for comparison on the second and every other frame int temporary_Direction; float temporary_Previous_Frame_Height; if(@Frame == 1) { temporary_Direction = -1; temporary_Previous_Frame_Height = @P.y; } else { temporary_Direction = @Direction; // ------------> this is where the problem is (this is here so that the temporary variable get's the value of the currently proccesing point every frame) temporary_Previous_Frame_Height = @P.y; if(temporary_Direction == -1) // If the point has no direction { if(temporary_Previous_Frame_Height < v@P.y) // If it's going up { temporary_Direction = 1; temporary_Previous_Frame_Height = v@P.y; } if(temporary_Previous_Frame_Height > v@P.y) // If it's going down { temporary_Direction = 0; temporary_Previous_Frame_Height = v@P.y; } } } // Out_Values i@Direction = temporary_Direction; f@Previous_Frame_Height = temporary_Previous_Frame_Height; // Out_Values The problem here seems to be when I declare "temporary_Direction = @Direction", for some reason on the second frame when I read @Direction the value wich is given to temporary_Direction is 0 instead of -1 wich was given to every @Direction on the first frame. Temporary_Previous_Frame_Height updates just fine but temporary_Direction doesnt. Also writing "if(temporary_Direction == -1)" doesnt seem to work either. Is my thought process even slightly right here, what am i doing wrong, are temporary variables created in vex something that exist globally and in order to use them per point we need to read each point's values or are temporary variables something that exist for every point. Also why do i have to give values to all attributes every single frame or else they will reset to 0 (hense the Out_Values section). //////////////////////////// Update Thank you everyone for replying. I've tried out the time shift sop and it work's fine now( I dont even need the Previous_Frame_Height attribute anymore). I've updated the main post with the original hip file and the one with the time shift sop. Learning about the time shift sop is great, but i would still like to improve my thought process on writing code. It would be greatly appritiated if someone can take a look at the original hip file and possibly shed some light on the problem. I've added notes inside the original hip file for clarity. Any help would be appritiated Thanks in advance Original.hip Time-Shift SOP.hip
×