Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

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

  1. 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
  2. Hi My understanding is that VEX runs entirely on the CPU. But with the right hardware (ie latest Pascal based GPU) the same functionality in OpenCl could be magnitudes faster. Is anyone aware of any OTL or other project which have converted VEX code to OpenCL?
  3. Hey everyone, I recently set up a website and a stream for Houdini people or everyone else who is interested in Houdini. I am going to start streaming Houdini every day, starting today. After each stream I will upload results and depending on time a timelapse, a tutorial, a .hip(nc) file or documentation of sorts for everybody to view and examine. Where can you find all this? Website: http://shadesoforange.de/ Stream: https://www.twitch.tv/shadesoforange Who am I? I am studying Animation & Game in Darmstadt, Germany and am 23 years old. I recently finished my internship at RISE FX and am crazy about all Houdini, procedural and CG stuff. More about me here. My first stream is going to start at 15:00 CET. So if you want to hang out and have a chat, come by and say hello! See you!
  4. Hi all. I made something a few weeks ago that I thought might be useful, so I somewhat tutorialised it here: http://www.pixelninja.design/manhattan-voronoi-approximation/ Basically it's a method of achieving something close to a Manhattan-distance voronoi diagram. I hope someone out there finds this useful If anyone knows of a better method, or a method of achieving an actual Manhattan voronoi I'd love to hear it! ManhattanApproximation_01.hiplc
  5. 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.
  6. Hey, I was told that, that I have to use VEX to use Houdini efficiently, so as I have no expierence at coding at all and I dont know where to start with it, I want to ask you guys if you have any good resources or learning paths. Thanks Nick
  7. Volume convolution on the GPU using OpenCL. For 27M voxels using 100 iterations, OpenCL is 650 times faster than C++ and 12525 times faster than VEX.
  8. VEX is relativly nu to me, even when I am familiar with mel and some other programming languages. So be Patient with me and dont make it to complicated At the moment I am creating a brickwall with a few for each Loops and I thought, hey those simple transformations can even be done in a wrangle. but all those point creation and create geometry with vex tutorials doesn't take into account when there is an incoming prim or box that should only be transformed - so i am more confused now. can somebody give me a short forloop example to move and duplicate a box, when the box is piped into the wrangle? thx deHeavy
  9. Hi, can i use ch VEX function for accessing strings? If you open the attached file, you will notice that i am trying to move one point to a specific location..marked with another point (Demo scene ). I will get the location via opinputpath and point functions. First i will get the path via opinputpath, and then i use it in point method via ch function. Now, it seems that if i use ch function, i will get invalid location. When i use chs, i will get the correct one. Documentation/help says that there is version of ch function that returns string. What am i missing here? Cheers -kimmo ch_vs_chs.hipnc
  10. This tutorial goes over from start to finish the creation of a rudimentary fence asset that can easily be expanded upon. This is an introductory lecture on procedural modeling in Houdini I gave at Drexel University's SIGGRAPH chapter as a Junior Animation & FX major. Let me know if you have any questions, enjoy! Link To Demo File: drive.google.com/open?id=0B--RBrg9u--oWkNDU2ZUYnFpUjQ Link to Documented File: drive.google.com/open?id=0B--RBrg9u--odEhVYnluaFRGeGs
  11. i am trying to follow this class by ari danesh at around 20:40 mark he uses the noise function in a point wrangle. i can not get it to work... it returns me with errors saying "noise" or the variable "P" is an ambiguous call to function/ undefined variable. i am using houdini 16.0. Anyone knows what i might be doing wrong. thanks in advance, d.
  12. Hello! First time poster (also posted on sidefx forums) ~ I have a wrangle set after an assemble sop and am currently having success with: string shatter_points = chs('Pieces_to_Break'); if(@name != shatter_points) removepoint(0,@ptnum); Where Pieces_to_Break can contain one name. Effectively this deletes all but the named packed primitive. I'd like to amend this so that I can enter an array of pieces to “keep”. Any thoughts? Thanks in advance!!
  13. Hello! First time poster (also posted on sidefx forums) ~ I have a wrangle set after an assemble sop and am currently having success with: string shatter_points = chs('Pieces_to_Break'); if(@name != shatter_points) removepoint(0,@ptnum); Where Pieces_to_Break can contain one name. Effectively this deletes all but the named packed primitive. I'd like to amend this so that I can enter an array of pieces to “keep”. Any thoughts? Thanks in advance!!
  14. Hello there... I was working on something and noticed that , some group options changed in Houdini 16. In houdini 15 i was grouping by clor with $CR<0.1 for picking red color but in Houdini 16 couldnt find a way for making that. And second of all how i can group like that usin VEX , any help??? Thank you!
  15. Im trying to sweep a geometry around a spiral I created in VEX but Im having a problem as the cross section slowly rotates. I tried to set @up and @N attributes and use Transform Using Attributes but it generates other problems. As you can see the rectangle that Im sweeping rotates over time (I think it does a 360 rotation over the whole path) mj_spiral_test.hip
  16. Looking for some help on setting up a Wrangle that would curl a curve by rotating the last point in the curve around a point centered on the previous point, and doing that all the way down the chain so you get nice curls happening. Been trying to work this out but I'm missing some knowledge here when it comes to looping through points per primitive, and also I'm not sure how to rotate a point with the rotation origin starting on another point. Basic idea is that given an @N and an @up vector on the curve, it will rotate each point about the previous point's @P using cross(@N, @up) as a rotation axis, by some user defined degrees/rads number. The code would have to (far as I'm thinking so far) loop through all prims, and then loop through all points in each prim, rotating each one around the previous point.
  17. Hi guys, I've been giving VEX a go recently and I've hit a block in something I'm trying to achieve. I'd like to take a set of points from a scatter node and wobble or wiggle each of them randomly on a given axis (Y) over time. As an expression this is as easy as sin(time * #) in the rotation transform for a desired axis. This doesn't work in VEX as everyone knows. I did find a lot of reference on matrix and quaternion functions in VEX and this seems like the way it should be done. It looks pretty complicated though for something as simple as wobbling a point on an axis. I know VEX works with radians only. Anyway, I'm sort of stuck. Any help would be appreciated. Thank you!
  18. This operator allows you to run an OpenCL kernel as part of your SOP network. Depending on the GPU, some operators can be orders of magnitude faster than even VEX. In this case the OpenCL code is 144 times faster than VEX on GTX 970.
  19. Hello guys. Could anyone help me with syntax. Im relatively new to VEX. I need to get total number of points of geometry that connected to second input of wrangle. I tried something like int maxp = @opinput2_numpt; but it always returns 0. Would appreciate help.
  20. Hi, I am trying to access the position and normals of an object based on UV coordinates with VEX. In the documentation the VEX function "uvunwrap" seems to be a good choice, however .. vector pos; vector nml; float u = chf('u'); float v = chf('v'); float time = @Time; uvunwrap(u, v, time, pos, nml); addpoint(0, pos); .. is asking for a string, which is not mentioned in the documentation. VEX_uv_to_pos.hipnc
  21. Hi guys I'm relatively new to Houdini, and I've been trying to make this little digital asset. Basically what I need is to set the 'Number Of Copies' integer field of a duplicate SOP to the number of RETURN characters in the text field of a Font SOP. Is this even possible? I can do this easily in C++ but I can't get the syntax right in Houdini and I don't know how to assign it to the current field for which I'm writing the expression. I tried using the foreach() loop on the text field, but I can't figure out how to do the string comparison. Please help. Thanks!
  22. I am looking into installing VEX syntax and Exhelp for Sublime text and that is easy and nice, but I realized I don't know of a good way to actually connect Sublime text to Houdini. Copy pasteing the code between Sublime text and Houdini everytime I want to test something seems like a pain. It would be so inconvinient that I wonder whether Sublime Text would be worth the effort. So how do you use it? Is there a way to hook Houdini and Sublime Text up to each other for a direct connection?
  23. Hi, this is my first post here. I've been trying to call a vector array function in VEX, but it either returned "Internal Compiler Error" or "Syntax error, unexpected identifier, expecting ';'". I also checked Array help file and the example as below didn't work at all: To specify a literal array, use curly braces, with the array members separated by commas: vector[] rgb_array() { return { {1, , }, {, 1, }, {, , 1} }; } Here is the simple code I tried to compile, but it returned an error message "Syntax error, unexpected identifier, expecting ';'." vector an_array[] = {{1,1,1}, {2,2,2}}; vector a[]; vector[] testFunction(vector[] a){ return a; } a=testFunction[an_array]; Does anyone know if VEX supports array function? Thank you very much!
  24. Hi there, First time post here. I'm relative new to Houdini and I really love already it but there are some things that (probably) are really simple but I just can't figure out. I must admit that I have very little experience in expressions and python (which I'm already working on) but for something I'm currently working on I'd hope to have some help before I get proficient enough in that. I have a volume source which emits in the Y axis and I wanna use the gas disturb fields but only on the voxels that are being emitted for the first second, after that I want other microsolvers that I have in the scene to take over. What kind of expression should I use for that? Should I first add some kind of life-attribute and then refer to that or is it much simpler? I looked at the local variables in the gas disturb microsolver but as far as I can tell they all refer to the simulation step time which is in the beginning of the whole simulation. Some help ore pointers are really appreciated. Thanks!
  25. So I have a prim wrangle with an input that has all its primitives in a group called "allPrims". I am doing a loop where each time, I need to reset the group and make sure it contains all the primitives as I am removing certain ones within the loop. I thought that I could just make a copy of the initial group ("current") and remove the primitives from that copy then for each prim in the wrangle it would just refresh the the group based on the initial "allPrims" group. The only problem is that I cannot seem to copy the group. I am trying to do so like this: s@group_current = s@group_allPrims; This will create a group called current, but it will not have the primitives from the "allPrims" in it. How do you copy the contents of one group to another in vex? And as an alternative method which might just be easier, How do you assign all primitives from input 0 to a group as this could be done to refresh the group for each loop? Thanks!