Jump to content

Search the Community

Showing results for tags 'vex'.



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

  1. Hi, I'd like to create some attributes inside a loop (for/foreach) and I need them to have the loop number as the part of their name. Can I do that?
  2. setPointGroup behavior

    Hey, I have 2 scatter node with 30 points on each of them. I wired the two in a pointwrangle. I used this code and I am wondering why the setpointgroup is running only once and not as the doc suggest : "This node runs the snippet on the detail or every point/primitive/vertex (depending on the Class parameter) in the input geometry." This is probably something I missunderstood but I would be grateful if someone can explain me how it's really behave. Here is my code : @group_basePoints = 1; vector npos = point(1, "P", @ptnum); int newpt = addpoint(0, npos); setpointgroup(0, "basePoints", @ptnum+@numpt, 1);
  3. hey all, inside a sop solver on a switch node I'm trying to get the length of a string array and multiply it with another channel right now the solver is overcopying objects: I was able to get this to work comparing the values of two float channels but I can't get it to work with a string array since len() doesn't show up in that context? I tried reading the manual on vex contexts and cvex but it's a bit confusing. which context is the switch node parameter in? is it in sop context because the node was created in a sop solver or is it somewhere else entirely because I'm typing in a parameter textbox?
  4. VEX and normals from @ptnum

    Hi all, I'm new to VEX and am facing an odd issue. With an Attribute Wrangle iterating over points, connected with any polygonal mesh (in this case a Sphere). // Why does this not work.. vector broken_normal = point(0, "N", @ptnum); // Why this does? vector working_normal = @N; // And this as well? vector working_position = point(0, "P", @ptnum); if (@ptnum == 0) { printf("%s\n", broken_normal); printf("%s\n", working_normal); } // {0,0,0} // {-6.31725e-09,7.5807e-08,-1} As you can see, the "broken_normal" yields a value of { 0, 0, 0 } when I would have expected a value identical to the "working_normal". I'm running this on Houdini 18. vex_and_normals.hipnc
  5. Create a center line

    Hi all, I’m trying to create a center line (not just a center point) based on other lines in VEX. Attached is a photo of the code I used to create the lines. Will anyone share how to derive a center line from existing lines in VEX?
  6. List of fastest vex functions

    Heyo, As the title suggests, I was wondering if there is such a thing as a list of vex functions detailing which ones are the fastest to execute. Looking to writing more efficient vex to hopefully lower cook times of heavier wrangles (heavier in this case meaning having to go over more elements(prims, points etc)). I've had a look at my performance monitor and can see that in my tree the nodes taking up most time are the wrangles. They aren't "that" slow, around 0.2s pr.wrangle, but since there are quiet a few it adds up at the bottom of the node tree. Thanks for the read!
  7. Help with porcedural building

    Hello I'm working on a procedural building and actually i'm stuck with something. I've tried many thing but it doesn't work. I'm trying to add or remove the number of the window when I change the size of the building. I've wrote this and i've tried to add an offset to keep a space between 2 windows but I didn't find how. vector mypt = getbbox_size("../box1")/getbbox_size("../box2"); //box2(window), box1(building) float dist = distance(@P, mypt); if(dist > ch("distance")){ removepoint(0, @ptnum); } if(dist < ch("distance")){ addpoint(0, @ptnum); } Is someone can help me with that Thank you https://youtu.be/iwNiS0YTCms
  8. Hi, is there a faster way to check 10000+ objects for some attributes? Im making a tool that uses intersect_all() I want to make a tool that looks at the objects and see if it is visible by the camera position. And if it isnt, it can be delete the object ( not only the prims or points). So what I did now is to give it a color promoteToDetail in a for each to MAX and promote it back down to have the object the max value. But is there a better and quicker way if there are so much objects? thnx
  9. Hi, I´m just have a deeper look at the nice folding objects example on the Houdini cgwiki: http://www.tokeru.com/cgwiki/index.php?title=Houdini#Folding_objects_.28the_transformers_cube_effect.29 The wrangle node which handles the animation makes me some headache. It´s a wrangle node running over Primitives: This part I understand so far... here a new point position is set with the primuv function, as i understand... a new point is generated at the new position and theattribute name is set , newP from above... but what the hell means this? The prim is removed with his points? When the prims are removed there are no prims left to run the code again over the prims, because there all deleted... what do i missunderstand? Generates this code every frame new points on the prim and delete them afterwards? But why points are remain and travel over the prim, in this case a line? Can somebody give me some light on this? tia
  10. Hi there, this is probably way simple and a dumb question but.... I'm trying to make a tool that will use a string from a spare parameter and use it to reference geometry on a drive. The point() function works if I type in the value - check . I can make a new attribute and reference the spare parameter- check. But when I use the string attribute or directly reference using ch('myparameter') from within the point() function I draw a blank. I suspect its changing the string to float or something in the point() function. Any help much appreciated Thanks John //mycode s@mystring = chs(“geo”); v@Cd = point("mystring",“Cd”,@ptnum); v@P = point(“mystring”,“P”,@ptnum);
  11. Hi everybody, I have already posted this question on the SideFX Technical Discussion forum but had no luck so far. Maybe someone here could help me? I am trying to get raw color values from an RGBA .png file with the vex function rawcolormap() but it appears that I can only get pre-multiplied values. When using .tif, color values appear to be correct. I am loading the the image as linear even though it is in gamma 2.2 to prevent gamma conversion. Here is my vex code: vector4 rgba = rawcolormap(chs("texture_map"), U, V, "srccolorspace", "linear"); v@Cd.x = rgba.r; v@Cd.y = rgba.g; v@Cd.z = rgba.b; @Alpha = rgba.a; For testing I have created a simple test image where all color channels have a value of 1.0 and the alpha channel has a gradient from 0 to 1. Please see attached image. Opening the image in Photoshop and Gimp shows unpremultiplied color channels. When using above VEX code, color channels are premultiplied against the alpha channel. And opening the image in Mplay, results are even more confusing. Pixel inspection here shows values that I can only recreate by opening the image (which is in gamma 2.2) defined as linear and then applying a second gamma conversion from linear to sRGB. Does anybody know why this is and how to work around this problem? Thanks to anyone taking an interest. Cheers
  12. Hi guys, I am trying to automate my alembic imports by using a string replace on my File path. For example: on my alembic File Name parameter I've written the expression - `strreplace($HIP, "home/fx", "fx/waterfountain_v001")`.abc I would like to be able to replace the version number with a wildcard so that it picks up the file regardless of what the version number is, but an (*)asterisk doesn't work. How should that be scripted? Thank you in advance!
  13. Hey guys (and gals), I've been wondering recently if there is a way of reading only part of a bgeo file from the disk at a time. Ideally looking for some kind of vex command or similar. Houdini can already do something like this with FBX models (and apparently alembics although I have'nt tested this myself yet) in a file node by adding "#objectname" at the end of your filepath example: path/to/your/file.fbx#sphere The use case I was thinking of was if I wanted to create fractured pieces I could instance onto points and instead of writing out 100 bgeo files with the extra overhead in each, it would be neat if I could write them all out to one bgeo file and just call the piece I needed from the one bgeo file when I needed it. I've tried doing this straight up with a bgeo and a bgeo.sc file (in case the .sc compression was hindering something) and have had no luck so far. Is there a way of doing this you think? Thanks for the read
  14. Hey guys I would like to ask how to know how many primitives in one node? I mean automatically, because I don't want to count them one by one. For example, I have this node which contains 8 primitives, How to get the 8 out of it, since it shows that the max prim num is 7. I want to use prim num “8” as a variable in Wrangle. Thank you very much.
  15. CG Master Academy is searching for active industry professionals using Houdini to develop and teach the following online courses: Fluid FX Using Houdini Cloth Simulation in Houdini Crowd Simulation in Houdini Additionally, we are looking for a substitute instructor for: VEX in Houdini Flexible scheduling with a 3-5 hour per week schedule footprint depending on class size. Minimum Requirements: must have 4-7 years of professional experience in feature film/animation and/or game projects and a current demo reel showcasing work specifically in relevant discipline. Preferable: Some experience teaching or training artists would be helpful in this role. Please send resume/work history, as well as a link to your website and/or demo reel, to jobs@cgmasteracademy.com.
  16. AI Volume Effect

    Hello guys. I'm kind of a newb. I'm just looking with awe what you guys make and I try and practice and learn with Houdini everyday. I've been using it since version 15, but I still consider myself a beginner, especially in the VEX part of town. I was trying to make a personal daily project because I saw this painting and I can't get it out of my head. I also remember seeing Serjan Burlak's project which is linked below... I know that Serjan's project is very very advance, VEX heavy, and it took a lot of time and knowledge to make, but i'm really really curious. Just to scratch the surface of what the effect is doing with the points and how it's connecting wires, I tried: scattering points, use connect adjacent, find shortest path, wireframe, polywire, VDBs and cloud with variable density, then scatter points and connect them, a combination of these nodes with some wrangle modifications, but honestly nothing looks closer to that painting. Maybe you guys have some ideas on how to dive into something like this. If you have any useful links, books or videos, it would be appreciated. Thank you. P.S. The painting is made by Zdzislaw Beksinski in 1983
  17. Is learning Processing a good idea and easily translatable to VEX? There are some excellent resources like Daniel Shiffman, who does a great job of explaining the foundations of programming.
  18. Modeler 1.0

    Modeler 1.0 for Houdini released! Free for all the DM 2.* users. $70 for the DM 1.* users. https://gum.co/xKBKM What's new: 1. DM now renamed to Modeler 1.0 2. new feature: the DM menu (Z hotkey) has been replaced with a new alignment menu where you can use tools for fast and accurate transformation. The menu includes the whole set of tools for working with a compass, geometry centring, quick flattening with gestures and many other transformation tools. Use the hotkeys for the tools of the old DM menu. 3. new feature: Deform Menu (N hotkey) with lots of interactive deformation tools including a new Lattice tool 4. new feature: MODELER_PICK_STYLE environment variable allows to override Modeler startup selection pick style. Add it to the houdini.env file. Use "Box", "Lasso", "Brush" or "Laser" values, then restart Houdini. 5. new feature: the hard and soft boolean tools are now combined in a new menu called Boolean (J hotkey) 6. new feature: a Fix Curves tool helps get rid of broken lines in open polygons. This helps when beveling corners of open polygons. 7. new feature: a Select Curves tool helps to select open polygons (curves) in the model 8. improvement: now some tools can create curves and process them. For example, the Extrude tool can produce lines from selected points. The Collapse tool can flatten open polygons (curves). The Connect tool can be used to cut a segment between two selected points or connect two open faces. The Push tool now properly moves points in open faces. 9. improvement: the RMB menu of the Push tool has a new item Toggle Connectivity, which allows you to move points, capturing the points of other closed pieces 10. improvement: the Push tool now works slightly faster 11. improvement: the Push tool can now slide point with Ctrl+MMB 12. improvement: the mouse and keyboard shortcuts of the Push tool have been completely redone 13. improvement: if nothing is selected, the Hose tool searches for all the curves in the current geometry 14. improvement: a Group parm added to the Hose Tool. Can be used in conjunction with a result of the Duplicate tool 15. improvement: Hose now creates straight edges tube if the Resample Curve set to zero value 16. improvement: Geometry Library renamed to KitBash and works only as the python panel 17. improvement: KitBash replace feature now doesn't update the item icon 18. improvement: Tools Panel now has a new category KitBash with tools for working with the library items. Now you can create, save, overwrite and update icons faster, without actually working in the KitBash panel 19. improvement: volatile edge sliding now does not require explicit movement of the mouse pointer to the edges 20. improvement: volatile edge sliding now can be used to slide points and faces 21. improvement: Fix Overlaps can now use face groups 22. improvement: Duplicate applied to edges now creates a curve in the current geometry object 23. improvement: the Resymmetry tool now works slightly better. The Tollerance parameter is no longer saved between nodes (). This allows you to not change the position of the seam points. 24. improvement: mouse wheel manipulation in various tools has been improved 25. improvement: new simple box type has been added to the QPrimitive HDA 26. improvement: Tools Panel now has a more logical structure for faster access to popular tools 27. improvement: the Modeler shelf was fully revisited 28. improvement: the Walk History Up and Walk History Down tools (Up and Down hotkeys) now work more interactively when traveling through nodes with more than one input or output. 29. improvement: the Select By Shells tools was replaced with a new Convert To Shells tool (Ctrl+1) 30. improvement: double-clicking with LMB in the viewport is completely revisited. Now you can jump to objects level by double-clicking LMB in an empty space. Clicking on a geometry allows you to quickly switch between objects. If you are in a certain state, double-clicking activates the selection mode. All these improvements speed up the modeling process. 31. improvement: the deformation tools (Size, Ramp, View) now have the fixed blend feature. The transition between the deformable points and the undeformable part looks more correct. 32. fix: Hose now orients rings copies correctly 33. fix: Slice, Mirror and Cut tools now set correct geometry center on tool activation 34. fix: JumpUp and JumpDown tools does not work when Compass is active 35. fix: QLight now works properly if you run it from the orthographic viewport 36. fix: sometimes camera movement with Alt did not work after a mouse click 37. Lots of tools have changed hotkeys. Look at Tools Panel for more details. 38. Python code has been revisited 39. Documentation has become more detailed 40. Overall speed improvement 41. Other improvements Works only in Houdini 18. Use build >= 18.0.346
  19. Greetings, I am trying to use addpoint() every 24 frame and i wanted it to stay in the geometry. The problem is that the newly added point is only available in that specific frame. I want to add a point every 24 frame. and make it permanent. is there a way to add permanent point ever 24 frame? any help would be appreciated. Thanks, P.S: the code is like this: if (@Frame%24==0) { int index = addpoint(0,@P); int setPtAttrib = setpointattrib(0, "move", index, 1, "set"); }
  20. Trying to find some info on applying quaternion rotations without using the copytopoints @orient point attribute. I build my quaternion, and then I'm stuck on doing two things: -Applying the rotation to an unpacked object and a packed object I've tried the rotate by quaternion VOP with unpacked geo and the makeinstancexform for packed geo and nothing seems to work this way... I've done some research but didn't find anything usefull (outside of copytopoints @orient). Can some one point me in the right direction?
  21. Vex course

    So I have been scouring around the internet looking for some good courses to follow and i come across to very promising courses, one is the "Nature of Vex" and the other is "Vex foundations 2" but i don't know which of them i shoud choose. I want something that can help explain some stuff like theory and how to do stuff but also how to have an idea and make that a thing. The nature of vex course is like 4 times longer than vex foundations 2 but i feel like the latter has some good stuff. Has anyone tried them both or just one of them and can maybe help me out here to find the right one for me?
  22. Hello good people of the interwebs! I have a VEX (beginner) question. I want to group points of a poligonal mesh based on their acuteness (i.e. how "pointy" they are). Very similar to what the group node allows to do with edges, where one can simply define the minimal edge angle of the two adjacent primitives to decide if an edge is included in the group. I need a similar thing, but with points and a point group and taking into consideration the angles between the three (or more) adjacent edges. (I imagine a loop and the neighbor and neighbor count functions and some angle comparison wizardry but I can't figure out how to tie all that together in any meaningful way Houdini can understand.) Your help is very much appreciated. Beautiful holidays to you and sweet learning by your handsome examples to me! Felix
  23. Welcome, in this tutorial you will learn procedural level generation with powerful procedural tools in Houdini for Unreal Engine 4. Obviously the main objective is to give you the techniques you can apply to other procedural level. From start to finish we create a procedural level generation tool in Houdini 17.5 and deploy the finished asset into Unreal Engine 4 using the powerful Houdini Engine! The Tutorial covers a range of intermediate techniques including an in depth look at For-Each Loops, control of the direction of the Normals, VOP and many others. Possibility to speed up your level creation using Procedural Techniques in Houdini Engine. Offers the possibility to automatically generate multiple variations of the level. Helps you find the perfect design. Develop a consistent visual language. Full version: https://gum.co/LVLDesign1 Free Demo version: https://gum.co/DemoLVLDesign1 Video Presentation Part 1 Procedural Generation of Level Part 2 Exploring The Procedural Level Full version: https://gum.co/LVLDesign1 Free Demo version: https://gum.co/DemoLVLDesign1 Full version: https://gum.co/LVLDesign1 Free Demo version: https://gum.co/DemoLVLDesign1
  24. Hi everyone, I'm trying to select the color from a point cloud (in the geo context). Separate them to apply a different pscale attribute depending of the color value. With VEX , it's easy to select separte RGB and CMY values with addition and subtraction : Red = @Cd.r - @Cd.b - @Cd.g Green = @Cd.g - @Cd.r - @Cd.b Blue = @Cd.b - @Cd.r - @Cd.g Cyan = @Cd.b*@Cd.g-@Cd.r Yellow = @Cd.r*@Cd.g-@Cd.b Magenta = @Cd.r*@Cd.b-@Cd.g My problem is that i lack a precise value to separate intermediate values, pastel colors, colors between two primary colors, etc ... How can i pick a special color to applied precisely my pscale value. Is it a good way ? Is there an other way to have a color picker ? a Keying function ? Hope this is clear, Regards,
×