Yes, that's totally fine - and the intended target for Indie.
You can create .bgeo files with Apprentice - FYI.
Found 454 posts.
Search results Show results as topic list.
Houdini Indie and Apprentice » Licensing question - Indie for freelancers restrictions.
- TwinSnakes007
- 605 posts
- Online
Houdini Lounge » Getting current frame in VEX wrangle
- TwinSnakes007
- 605 posts
- Online
@Time - Float time ($T)
@Frame - Float frame ($FF)
@SimTime - Float simulation time ($ST), only present in DOP contexts.
@SimFrame - Float simulation frame ($SF), only present in DOP contexts.
@TimeInc - Float time step (1/$FPS)
Houdini Indie and Apprentice » How to pass VEX variable type to a function
- TwinSnakes007
- 605 posts
- Online
All data in Houdini is an attribute, that's the whole point of the Network graph, IMO.
Here is the definition for the “@group_*” attribute..
It is a per-element int whose value will always either be 0 or 1.
To access or declare an element group in vex, you have to prefix the groupname with “@group_”, i.e., @group_groupname. This syntax is literal, meaning, groupname cannot be a calculation of any kind or a pattern.
Having said that, I think my point is still valid. If your functions are consuming/producing a group attribute, you dont need to pass those groups to your functions, you can access them directly in your functions and add some safety checks to see if the groups you are expecting to exist, actually exist on the objects your functions are operating on.
Here is the definition for the “@group_*” attribute..
A special virtual attribute of the form @group_groupname lets you get or set group membership for the current element.
It is a per-element int whose value will always either be 0 or 1.
To access or declare an element group in vex, you have to prefix the groupname with “@group_”, i.e., @group_groupname. This syntax is literal, meaning, groupname cannot be a calculation of any kind or a pattern.
Having said that, I think my point is still valid. If your functions are consuming/producing a group attribute, you dont need to pass those groups to your functions, you can access them directly in your functions and add some safety checks to see if the groups you are expecting to exist, actually exist on the objects your functions are operating on.
Houdini Indie and Apprentice » How to pass VEX variable type to a function
- TwinSnakes007
- 605 posts
- Online
Is there a reason you're wanting to pass the attribute to the function instead of simply reading the attribute inside the function definition?
In a Wrangle, Attributes are Global to the Wrangle, so they dont need to be passed, as they will always be in scope.
In a Wrangle, Attributes are Global to the Wrangle, so they dont need to be passed, as they will always be in scope.
Edited by TwinSnakes007 - Aug. 31, 2016 17:05:06
Technical Discussion » Indie - Output Driver
- TwinSnakes007
- 605 posts
- Online
Work in Progress » Volume Convolution: VEX & C++ vs OpenCL
- TwinSnakes007
- 605 posts
- Online
Yeah, it seems like such an obvious natural progression for H to add some kind of GPU acceleration for these large structured data sets.
I dunno how much my voice can add to the topic, since I'm just an Indie user.
I dunno how much my voice can add to the topic, since I'm just an Indie user.
Work in Progress » Volume Convolution: VEX & C++ vs OpenCL
- TwinSnakes007
- 605 posts
- Online
Very nice speedup…I can imagine this is Gold in Production Scenes.
How much of a lift is it from VEX syntax to OpenCL syntax?
I take it you cant generate VEX->OpenCL?
How much of a lift is it from VEX syntax to OpenCL syntax?
I take it you cant generate VEX->OpenCL?
Technical Discussion » Unified Noise study
- TwinSnakes007
- 605 posts
- Online
Um, wow….so that's some serious Noise there.
Would love to know how to bake these down for 3rd party rendering.
Would love to know how to bake these down for 3rd party rendering.
Houdini Indie and Apprentice » VEX - addprim function: Conditions that change returned value
- TwinSnakes007
- 605 posts
- Online
Bonsak is correct.
The id's returned from addprim are what I would describe as volatile: they are not cached and can be changed by other factors.
It may make more sense described this way: Wrangle geometry is only created after all Elements are processed. So, you call addprim, it gives you a volatile prim id for that element iteration, and then once all Elements are processed, the real prim ids are calculated for each prim.
For a particular Element iteration you may add several prims, for the very next Element iteration you could delete 2 prims, so on and so on, all multi-threaded. So, its only after all Elements are processed that Houdini builds the resultant Geometry, resulting in (potentially) new prim id's.
The id's returned from addprim are what I would describe as volatile: they are not cached and can be changed by other factors.
It may make more sense described this way: Wrangle geometry is only created after all Elements are processed. So, you call addprim, it gives you a volatile prim id for that element iteration, and then once all Elements are processed, the real prim ids are calculated for each prim.
For a particular Element iteration you may add several prims, for the very next Element iteration you could delete 2 prims, so on and so on, all multi-threaded. So, its only after all Elements are processed that Houdini builds the resultant Geometry, resulting in (potentially) new prim id's.
Houdini Learning Materials » Tutorial "Houdini First Steps - MO6 - Attributes and Variables" by Ari Danesh
- TwinSnakes007
- 605 posts
- Online
For example, to access the 1st component of a Vector, you can do @Vector.x, @Vector.u or @Vector.r, all 3 statements are resolved the same, as they reference the 1st component.
From the Docs regarding accessing VEX attribute components…
So, for your scenario, you can do @myColor.b to access the 2nd component of the vector.
From the Docs regarding accessing VEX attribute components…
Dot operator
You can use the dot operator (.) to reference individual components of a vector, matrix or struct.
For vectors, the component names are fixed.
.x or .u to reference the first element of vector2.
.x or .r to reference the first element of vector and vector4.
.y or .v to reference the second element of vector2.
.y or .g to reference the second element of vector and vector4.
.z or .b to reference the third element. of vector and vector4
.w or .a to reference the fourth element of a vector4.
The choice of the letters u,v/x,y,z/r,g,b is arbitrary; the same letters apply even if the vector doesn’t hold a point or color.
For matrices, you can use a pair of letters:
.xx to reference the [0][0] element
.zz to reference the [2][2] element
.ax to reference the [3][0] element
So, for your scenario, you can do @myColor.b to access the 2nd component of the vector.
Edited by TwinSnakes007 - Aug. 16, 2016 12:58:57
Houdini Indie and Apprentice » VEX - addprim function: Conditions that change returned value
- TwinSnakes007
- 605 posts
- Online
For simple VEX questions, you can get away with a screenshot of the issue and posting sample VEX code.
For complex VEX questions, you'll be better off with a screenshot and a sample hipnc file.
For complex VEX questions, you'll be better off with a screenshot and a sample hipnc file.
Houdini Lounge » Set font text in VEX
- TwinSnakes007
- 605 posts
- Online
SteN
What about the vector question?
You cant construct a vector from calculated values using brackets {}, you have to use set() instead;
vector a = {1.0, 1.0, 1.0}; //legal
vector a = {myVar, 1.0, 1.0}; //illegal
vector a = set(myVar, 1.0, 1.0); //legal
Edited by TwinSnakes007 - Aug. 5, 2016 20:29:16
Houdini Lounge » Set font text in VEX
- TwinSnakes007
- 605 posts
- Online
There is no wrong answer in Houdini, its a modular framework, so there's always more than one way to get the result your after.
With that in mind, HScript is my preferred method to read downstream attributes.
For example, I ended using the “details” function to read a detail attribute into my Font SOP.
With that in mind, HScript is my preferred method to read downstream attributes.
For example, I ended using the “details” function to read a detail attribute into my Font SOP.
`details("opPath", "detailStringAttribute")`
Houdini Lounge » Set font text in VEX
- TwinSnakes007
- 605 posts
- Online
For debugging, IMO and experience, it's just easier to write the variable to an attribute so that you can check its value in the Geometry spreadsheet.
For me, I dont even look at the viewport when coding VEX. I check that my data is accurate using the Geometry Spreadsheet and only then look at the viewport.
If you still are stuck, post a scene or your VEX code and someone will help you along.
For me, I dont even look at the viewport when coding VEX. I check that my data is accurate using the Geometry Spreadsheet and only then look at the viewport.
If you still are stuck, post a scene or your VEX code and someone will help you along.
Houdini Indie and Apprentice » Self Intersecting Line?
- TwinSnakes007
- 605 posts
- Online
Houdini Indie and Apprentice » Self Intersecting Line?
- TwinSnakes007
- 605 posts
- Online
First, thanks for the screen shots, I was able to achieve the same result.
This technique has great procedural potential beyond polyexpand, especially when your source is created in VEX.
This technique has great procedural potential beyond polyexpand, especially when your source is created in VEX.
Houdini Lounge » 15.5.545 Windows Daily Build missing
- TwinSnakes007
- 605 posts
- Online
Houdini Lounge » 15.5.545 Windows Daily Build missing
- TwinSnakes007
- 605 posts
- Online
Houdini Lounge » 15.5.545 Windows Daily Build missing
- TwinSnakes007
- 605 posts
- Online
Saw the PolyBevel fix in dailes release notes for 15.5.545 and noticed that there is no Windows build for version 15.5.545.
Technical Discussion » Set Font Text from Vex - Render Alphabet
- TwinSnakes007
- 605 posts
- Online
Dude! Thanks so much. Working like a champ over here, Geesh.
…for leaving breadcrumbs sake
…for leaving breadcrumbs sake
`details("opPath", "detailStringAttribute")`
Edited by TwinSnakes007 - July 22, 2016 12:24:32
-
- Quick Links