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


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

  1. 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
  2. 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!
  3. 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
  4. 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.
  5. 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.
  6. 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
  7. 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.
  8. 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
  9. 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"); }
  10. 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?
  11. 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?
  12. 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
  13. 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
  14. 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,
  15. how to add point attributes in string ?

    Hey all, I was trying to create instance path in vex and trying to use few bgeo sequences, I have different wedges for my main geometry and I want to use instance path in such way that. It will change directory path based on point attribute. it looks something like this, "$HIP/houdini/geo/test/wedge_`chs("parm")`/test.wedge_`chs("parm")`_`chs("../Version/vers")`.`chs("frame")`.bgeo.sc" but when I try to use point attribute in string, it doesnt work, or maybe I dont know the right way to write the syntax. I have to create parameters and call it. but it doesnt work accurate. can you guys please help me with it ?
  16. vector on detail (VEX)

    Hi everybody I want to use the "detail" function as an expression in a node parameter to read a vector component. detail("../sourceData","color.r",0) but it does not work. I tried "color.0", same result when I use just "color", it reads something, an average could be, anyway I just want to read one component of a vector value. how can I do that? thanks you.
  17. Hello, So I'm working on the good old 'flight paths around the globe' project that the entagma guys made a while back, to add a bit of context. On each of the polylines I've store the start and destination codes, what I'd like to do in remove polyline that have the same route: So for example one poly line has: startCode (LDN) destCode (JFK) Another polyline has startCode (JFK) destCode (LDN) How would I go about running over all of the points/prims so I can remove one of each, so I don't have the same lines (just reversed). One thought of mine was to store them all in an array and go from there, but anyone has any suggestions they would be greatly appreciated. Thanks in advance! Danny
  18. [Edit Oct. 10 2020] Hey, it's been a while. Version 2.1 free here: https://gum.co/tuftMaker So, I think I got totally carried away adding parameters and functionality. Good exercise, but I'm lost in it and probably you will be, too. Anyway, feel free to dissect the HDA and I hope there are bits and pieces that could be useful. That's not to say it doesn't work or anything, it does but it takes a moment to understand how, haha! Cheers! PAST BETA UPDATES: - Fixed: wrong falloff values with geo coming in through input #2 - Fixed: Global seed for scattering not working when input #4 is connected. - New: outputting 'type' primitive int attribute based on the iteration attribute if such is coming in through input #4 - The following documentation video demos available via F1: LATEST WIP UPDATE: Debugging - Fixed scaling for anything outside the unit circle. - Fixed curve framing with extreme angles by using dihedral to minimize rotation (thanks to Entagma for the theoretical insight on this one) - Addressing tiny falloff value differences with a statistical variance check and a threshold parameter. (e.g. when the sample points are in a circle). - Floating-point precision fix. - Post carve 'curveu' recalculation takes care of the vertex colors ramp now. Features - Added point sampling mode switch (cone cap or cone volume) - Added twist control - (Obsolete since H18) Added per connected mesh UVs using Toraku's "Get correct uvs with a sweep sop" fix - http://www.tokeru.com/cgwiki/index.php?title=Houdini#Get_correct_uvs_with_a_sweep_sop - "Listening" for N and iteration attributes. - Using the new sweep sop now. ---------------------------------------------------------------------------------------------------------------------------------------------------- THE BEGINNING OF THIS THREAD BELOW ---------------------------------------------------------------------------------------------------------------------------------------------------- Hi folks, How would you go about adding points in a propagating manner in VEX. Here's what I mean: - Start with several incoming base points, each with an up vector. - For each one, add a new point somewhere along its up vector. - Calculate a new up vector by subtracting base positions from new point positions and setting the new point up vector to the result - Add the next new point somewhere along the previous point's up vector So, I called it propagating, because every next point in part defines the following. I think I'm on the right track here, but my gut's telling me I'm missing something. I'm stuck. Here's what I got: vector up = point(0, "up", @ptnum); vector currentPos = point(0, "P", @ptnum); vector newPos = {0,0,0}; int pts[]; for(int i=0; i<@numelem; i++) { append(pts,i); } int iteration = chi("iteration"); for(int j=0; j<=iteration-1; j++){ newPos = currentPos+up; int newPoint = addpoint(0, newPos); setpointattrib(0, "up", len(pts)+j, normalize(newPos), "set"); currentPos = point(0, "P", len(pts)+j); up = normalize(newPos-currentPos); currentPos = newPos; } Where do you think I'm wrong here. What would you do? Cheers!
  19. Hi all, I've been practicing and experimenting with VEX in Houdini and I challenged myself to see how far I can go with only VEX and VOP. I did successfully manage to create this simple effect without any use of dynamic simulation (DOP). https://vimeo.com/375250070 Basic Summary: A particle system that computes at frame-basis. I can jump from frame 1 to 700 without waiting for simulation. Instead of the traditional age/life computation, this system uses travel speed to compute. Trajectory generated with polar coordinate + Flow Noise on sphere section. The graph mainly consist of VEXs. There's still room to be improved definitely, if anyone is building more upon this, please share it, would love to see it. I think at the end of the day, this kind of system is probably not entirely practical tbh, but it's a great practice and study on coding with VEX. (SHOUTOUT to a best friend of mine who's studying mechanical engineering, helped me to find a way to calculate the spiral length.) HIP file here: FX_Rasengan_v01.hipnc Happy Coding!
  20. Happy rendering with VEX

    source (maybe 30-vex shader ) http://houdini.co.kr/index.php/blog/categories/happy-rendering-with-vex create new asset vex type surface shader operator (copy-paste code save )
  21. With 5 scattered points in group A, and 5 scattered points in group B, what is the furthest point in group B from group A, not as an average, but the individually furthest point? Sounded like an easy problem but I'm spinning wheels here. I would really appreciate some help/teachings.
  22. Hi. How could I convert primitive group name to a string attribute? I have few groups - group _01/02/03/.... and I just want to get numbers to use them as integers in vex, just to apply random color. int group_number = opdigits(@name); @Cd = set(rand(group_number), rand(group_number*1502), rand(group_number/1560)); Doing it with the name SOP, but what is the way of doing that in vex? Thank you Cheers Janis
  23. Hi all I'm currently using VEX to do some scripting, I was just wondering what the difference between these two functions 'npoints()' & 'point()' were?
  24. Poly Carve SOP

    http://www.patreon.com/posts/31506335 Carves out polygons using a point attribute with the ability to define the carve values per primitive using primitive attributes. Pure VEX implementation, 10x faster than the default Carve SOP (compiled). It preserves all available attributes. It supports both open and closed polygons.
  25. Hi, I am specialized in Houdini FX, Simulations (flip, pyro, RBD Bullet), VEX and Python scripting also a good experience in lighting and compositing. Currently based in Shenzhen, China (willing to relocate worldwide). you can checkout my vimeo for my work and contact me on LinkedIn. Available for freelance/full-time Houdini FX work and Houdini pipeline development. Thanks, Mahesh MS. vimeo: https://vimeo.com/maxcolor/ LinkedIn: https://www.linkedin.com/in/maxcolor/ email: msmahesh@live.com