Search the Community
Showing results for tags 'vex'.
-
In attached hip, I'm trying to understand a second VEX code I've taken from Paul Esteves video vex groupname, I have no idea what's really going on, I thought I would get a result but the group is different than what I expected so I misunderstood the code. Could you please comment code lines, this may help shed some light (trying to learn vex) vex_group_intersection.hiplc
-
Please apply through the following link: http://gr.8job.co/I1hm8HB3 Founded in 2010 by the original creators of the Call of Duty Franchise, Respawn was created with the philosophy that when talented people have creative freedom, they'll make extraordinary games that achieve the unexpected. Our shipped titles include critically acclaimed multi-platform games Apex Legends, Titanfall, Titanfall 2, Star Wars™ Jedi: Fallen Order and Medal of Honor: Above and Beyond. You can learn more about our studio and values at respawn.com/studio. In collaboration with Lucasfilm, the Star Wars FPS Team is developing a new AAA FPS in the Star Wars galaxy. Inspired by classic titles like Dark Forces and Jedi Knight: Dark Forces 2, our story-driven single player game is being developed from the ground up leveraging the power of Unreal Engine 5. We’re combining this inspiration and technology with Respawn’s pedigree for making best-in-class shooters to deliver a brand new experience our players will love. We are looking for an experienced and knowledgeable Senior Technical Artist to join our Star Wars FPS team. This role is for a specialist in procedural content creation and tools. Our ideal candidate has extensive experience building tools and pipelines in Houdini and enjoys the challenge of empowering art teams with flexible tools that adapt to change. If you thrive in procedural node networks and want to help build a galaxy, we’d love to hear from you. What you'll do... Develop new procedural tools and help build new assets, locations, and empower our art teams to do innovative new techniques. Collaborate with Environment Art, Character Art, Level Design, VFX, and other disciplines to automate repetitive processes. R&D and evaluate new procedural tools and adapt them to our project, including new features in Unreal 5.2. Establish and maintain best practices, quality bar, pipelines, and documentation. Work with engineers, artists, and designers to address game performance and memory usage issues. Constantly raise the quality bar, develop new solutions, and streamline processes. Ideally, you will have... 4+ years of games industry experience as a technical artist or other technical discipline. Portfolio that shows relevant technical experience in games (tools, pipelines, etc.) A deep understanding of Houdini and Houdini Engine. Secondary experience with other tool sets like Blender Geometry Nodes is a plus. Strong scripting experience in Python, VEX, HLSL or others is a plus. Experience with Blueprint scripting is a plus. Strong understanding of pipelines and how to design and optimize them. Ability to own a challenging issue and find practical solutions. Strong understanding of game engines and art integration as well as corresponding technical restraints. Experience addressing game performance and optimization, ideally in Unreal. Ability to both receive and deliver constructive criticism. If this opportunity sounds like a great fit for you, please submit your resume and portfolio and we will get back to you once we have reviewed it. In addition to opportunities for creative impact and professional growth which come with being a member of our team, working at Respawn has many other perks and benefits! Learn more at respawn.com/perks. Please apply through the following link: http://gr.8job.co/I1hm8HB3
-
- procedural
- game dev
-
(and 9 more)
Tagged with:
-
After more than 5 months of unimaginable amount of work, I am proud to release my first in-depth Houdini course on VEX More details in the video description and the website. Active Patreon members will receive additional discounts proportional to their lifetime support (25% of their lifetime support). Message me on Patreon for your discount coupon. Enjoy! 01 - Introduction [Point Clouds] 02 - Introduction [pcopen() vs pcfind() vs nearpoints()] 03 - Introduction 04 - Implementation 05 - pcfilter() Implementation for pcfind() 06 - pgfind() 07 - pcfind_radius() 08 - Excluding the Current Point & Ad-Hoc Groups 09 - Finding Min & Max Neighbour Points [Unique Pair Matching] 10 - Concept 11 - Implementation [Camera Based Occlusion with Variable Pscale] 12 - Concept 13 - Implementation [Uniform Point Distribution Over Polygonal Surfaces [Point Relaxation]] 14 - Concept 15 - Implementation 16 - Decoupling Operators [Convolution Kernels] 17 - Introduction 18 - Border Handling [Connectivity & k-Depth Point Neighbours Using Edges] 19 - Introduction 20 - Concept 21 - Implementation [Connectivity & k-Depth Point Neighbours Using Primitives] 22 - Concept 23 - Implementation [Extending k-Depth Point Neighbours Using Edges] 24 - Introduction 25 - Concept 26 - Implementation [Extending k-Depth Point Neighbours Using Primitives] 27 - Concept 28 - Implementation [smoothstep() [Cubic Hermite Interpolation]] 29 - Concept 30 - Implementation [Shaping Functions] 31 - Introduction 32 - Implementation 33 - Blurring Attributes [Sharpening Attributes Using Unsharp Mask] 34 - Concept 35 - Implementation [Generalizing the Kernel Code to Handle All Attribute Types] 36 - Concept 37 - Implementation [Attribute Gradient] 38 - Introduction 39 - Concept 40 - Implementation [Gradient Ascent & Descent] 41 - Planar Geometry - Introduction 42 - Planar Geometry - Concept 43 - Planar Geometry - Implementation 44 - 3D Geometry [Contour Lines] 45 - Introduction 46 - Concept 47 - Implementation 48 - Heightfields [Geometric Advection - Orthogonalization & Flowlines] 49 - Introduction 50 - Concept 51 - Implementation [Clustering & Quadtrees] 52 - Concept 53 - Implementation [Adaptive Subdivision] 54 - Introduction 55 - Implementation 56 - Hashing [Adaptive Subdivision] 57 - Improving OpenSubdiv Catmull-Clark Subdivision Surfaces Algorithm 58 - Half-Edges [Adaptive Subdivision] [Aggressive Performance Optimizations] 59 - Eliminating Groups 60 - Custom Fusing In VEX 61 - Recreating Proximity Structures In VEX 62 - Get Unshared Edges In VEX 63 - Final Optimizations [Limit Surface Sampling] 64 - Introduction 65 - OpenSubdiv Patches 66 - Moving Points to the Subdivision Limit Surface 67 - Scattering Points on the Subdivision Limit Surface 68 - Generating a Point Cloud on the Subdivision Limit Surface 69 - Pre-Generating a Point Cloud on the Subdivision Limit Surface 70 - Creating Isolines on the Subdivision Limit Surface [Adaptive Subdivision] 71 - Computing Surface Normals from the Subdivision Limit Surface [Custom Subdivision Surfaces] [Splitting Edges [Edge Divide]] 72 - Concept 73 - Converting Edges to Primitives 74 - Creating New Edge Points [Rebuilding Polygons] 75 - Concept 76 - Implementation 77 - Preserving & Interpolating Attributes 78 - Multithreading by Connectivity 79 - C++ vs VEX 80 - Preserving Groups 81 - Final Optimizations [Implementing Bilinear Subdivision] 82 - Introduction 83 - Concept 84 - Modeling Test Geometry 85 - Starting from Edge Divide 86 - Creating New Face Points 87 - Creating New Edge Points [Creating New Closed Polygons] 88 - Concept 89 - Implementation [Creating New Open Polygons] 90 - Concept 91 - Implementation 92 - Preserving Primitive Groups & Interpolating Primitive Attributes [Preserving Vertex Groups & Interpolating Vertex Attributes for Closed Polygons] 93 - Concept 94 - Implementation 95 - Preserving Vertex Groups & Interpolating Vertex Attributes for Open Polygons 96 - Implementing Iterations 97 - Preserving Literal Groups 98 - Creating Neighbour Primitives 99 - Final Changes 100 - Testing On Complex Geometry [Implementing Catmull-Clark Subdivision] 101 - Introduction [Closed Surfaces] 102 - Rules [Gathering Edge & Face Points] 103 - Concept 104 - Implementation [Computing Weights for New Edge Points] 105 - Concept 106 - Implementation [Computing Weights for Original Points] 107 - Concept 108 - Implementation [Attribute Interpolation] 109 - Concept 110 - Implementation [Boundary Interpolation Rules for New Edge Points] 111 - Concept 112 - Implementation [Boundary Interpolation Rules for Original Points] 113 - Concept 114 - Implementation 115 - Open Surfaces - Handling Corner Points 116 - Handling Non-Manifold Topology [Open Polygons] [Computing Weights for Original Points] 117 - Reverse Engineering OpenSubdiv 118 - Implementation [Computing Weights for New Edge Points] 119 - Reverse Engineering OpenSubdiv 120 - Implementation 121 - Handling Open Polygonal Curves [Handling Mixed Topology] 122 - Full Geometry 123 - Sub-Geometry 124 - Testing On Complex Geometry [Performance] 125 - Profiling [Grouping Boundary Edges from Primitive Group] 126 - Concept 127 - Implementation 128 - VEX vs C++ [Caustics] 129 - Introduction 130 - Sea Caustics 131 - Pool Caustics [Enhancing Gradient Ascent, Descent & Contour Lines] 132 - Introduction 133 - Implementation 134 - Tracing Both Directions [Updating Distances Properly] 135 - Concept 136 - Implementation 137 - Looping Streamlines Problem 138 - Adding Trace Parameter [Evenly Spaced Gradient Ascent, Descent & Contour Lines] 139 - Introduction 140 - White Paper 141 - Concept 142 - Constructing the For Loop Network 143 - Improving Seed Points Selection for Tighter Packing 144 - Implementing Separation [Enforcing Separation Using Self Proximity] 145 - Concept 146 - Implementation 147 - Optimization 148 - Final Tweak 149 - Applying to 3D Geometry [Custom Subdivision Surfaces] [Extreme Performance Optimizations] 150 - Introduction 151 - Establishing Baseline for Performance 152 - Updating Attribute Interpolate Nodes 153 - Interpolation vs Copying 154 - Optimizing Input Group 155 - Caching Geometry Data 156 - pointedge vs pointhedge 157 - Getting Primitives from Half Edges 158 - Eliminating Edge Groups 159 - Parallelizing Geometry Creation for New Primitives [Unrolling Loops] 160 - Parallelizing Geometry Creation for New Edge Primitives [Unrolling Loops] 161 - Finalizing the Network 162 - Performance Profiling the Latest Version 163 - Conclusion
- 47 replies
-
- 14
-
-
-
https://alexeyvanzhula.gumroad.com/l/modeler2023/black_friday
-
(VEX) Connecting disordered points with lines
RUXERMAGNO posted a topic in General Houdini Questions
Hello, I need help to connect points with a single line without crossing it, the points are out of order so it does not work to use the Add node. I am trying to use For Each and arrays in VEX but nothing works for me. I have a "start" and "end" group with the correct points, I need to iterate from point 0 looking for the nearest point and add a polygon, I have tried everything but nothing works. I attached a test scene. Any help will be welcome Thanks!! PtsToLine.hiplc -
I've tried: if(find(s@name,"rock")==1) @group_rock=1; but the number of primitives in the groups is 0, while there are a lot. Basically there are a lot of primitives, some have the word "rock" in the @name attribute, others don't I just need to isolate the ones with "rock" in the name. Should I be using a different function?
-
How do i write function that can override it variables like the &prim and &uv in xyzdist. float xyzdist(<geometry>geometry, vector origin, int &prim, vector &uv) float myProcess(float &space; float sideBar ) { float space=1; space = 15 * sideBar; }
-
I'm trying to recreate this cool effect I came across. It looks like an infection system that's getting traced so I started to go down that path. With a basic infection step-up, I got the leading edge of the infection so I could trace it. I actually don't think that's going to work having had a look at the set up now and wondered if anyone else had any ideas of how to achieve something like this? grow_lines.mp4 infection.mov Infection_Lines_02.hip
-
Hello, I'm trying to grow multiple lines at different times, with attribute values triggering this growth. If I create an infection system as demonstrated in the video below, it triggers the growth if set to do so from the first frame and works fine. However, if I create an attribute that triggers the infection to commence at frame 26 for example, the infection does not spread. I am baffled as to what's going on here. Is it possible to grow multiple lines based attribute values changing over time? Hip and explanatory image attached. Any ideas on how to achieve lines being grown on changing attribute values would be greatly appreciated. TriggerLineGrowth.hiplc
-
Hey all, this is probably a simple question but cant really figure it out. I have a grid, and a sphere that i am animating over the grid. This transfers a mask attribute with the mask from geometry node. I would like to take this mask attribute and use it as a trigger for playing alembics. Using the solver node for comparing and storing the mask attribute so it stays on 1 if the sphere has moved over a point. I create a attribute named trigger. Say if mask is > 0.5 the trigger attribute is 1. When trigger attribute is 1 i need to start incrementing another attribute named animation from 0 and upwards over time. How would i write this in vex so i can plug it into the primintrinsics of alembics that i copy on the grid? Thx!
- 6 replies
-
- vex
- incrementing
-
(and 1 more)
Tagged with:
-
Hey there! I'm trying to assign a 'MatID' prim attribute value based on incoming data. I'm currently importing data from a JSON file which has an array called 'primMatID'. There are 10 entries in this array and they are being read into Houdini as separate attributes; primMatID[0], primMatID[1]..... primMatID[9]. Using an attribute wrangle, I'm assigning the value of each of those 'primMatID' entries to the 'MatID' attribute on a specific prim/face of a simple model (eg pentagon). I've only been able to achieve the first four, inappropriately treating the 'primMatID' entries as vectors *blushes* in a vex wrangle, but obviously vector4 is the biggest there is, so the fifth through tenth entries of the JSON array cannot be captured with this approach. For the attached image, is it possible to transfer the primMatID[4] value of 8 to prim 6? Any help would be greatly appreciated! Thanks in advance.
- 3 replies
-
- assign attribute value
- wrangle
-
(and 1 more)
Tagged with:
-
Hi, Learning VEX and this is simply out of curiosity since I'm trying to build an intuition for how houdini works under the hood. I know I can read a vector from say point 5, like so: vector test = point(0, "P", 5); printf("%f", test); {0.091506,0.482963,-0.091506} Is there a way I can directly access only a component, like P.x with the point function? To my surprise, substituting "P" with "P.x" doesn't work, i.e: float test = point(0, "P.x", 5); printf("%f", test); 0.000000 I know I can access it via variable indices in the first example like vector test = point(0, "P", 5); printf("%f", test[0]); 0.091506 but it doesn't seem to work within the function. Neither "P.x" nor "P[0]" works. Is there a good reason for this? Grateful for any input you may have! GG
-
Houdini was getting bored doing hours of simulation, so I gave him something to play with. - Done in Houdini, script in VEX, rendered using Karma.
-
"Loops" is my latest Houdini.School class covering process loops like for, for-each, while and do/while loops. I'll illustrate numerous examples that will focus on SOPs, VOPs, VEX, COPs, and LOPs. Learn more about the class and enroll here: https://www.houdini.school/courses/hs-231-loops
-
Hello to everyone! I'm creating this topic just to see if someone is able to break down the remesh node in VEX. The point is to achieve a faster result using a wrangler or more as a substitution for the remesh or polyreduce. So here you have some questions: 1. Is it better to use the original mesh (deleting and modifying the mesh) or creating a new one (generating points)? 2. Is the source code used in the remesh node faster than any script that could be written in VEX? If you find a way or you have an idea about how to do it, don't hesitate to share it with the community!
-
I hope to get the nearest position on a surface or line that is somewhere along the inverse normal, searching in a range of angles (a cone if you will). If this can be done in vex that'd be ideal (I've messed around sop loops and group stuff but that as expected gets very slow). Too aid with the question there is an expertly drawn diagram.
-
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.
- 16 replies
-
- 3
-
-
- procedural
- fx
- (and 9 more)
-
Hi all, I have a single poly prim with 1+polys ontop/inside, I would like to remove the smaller ones from the larger one (think bool) ideally not using a bool operation (but may be unavoidable) and using VEX, my current approach would be to extract to points and knowing the small prims figure out a way to rebuild a prim from these . (easy right ?) and suggestion welcome. Curt
-
Hello guys, I try to implement the thin sheet feature (from this paper : http://www.cs.kent.edu/~zwang/schedule/zy11.pdf) but I'm stuck on this : How can I implement this, or translate this into vex ? I'm not sure if it's working with the grids and I should try to code it in a volume wrangle but I really don't know how I have to implement it. I tried this in a point wrangle (in a sop solver) : int pts[]; float kernel_result[]; pts = pcfind(0, "P", @P, ch("search_radius"), chi("search_count")); for(int i = 1; i < len(pts); i++){ vector pos1 = point(0, "P", pts[0]); vector pos2 = point(0, "P", pts[i]); float radius_mult = ch("radius_multiplier"); float radius = @pscale * radius_mult; float sum = (1 - pow(length(pos2 - pos1), 2) / pow(radius, 2)); if(0 <= length(sum) <= radius){ float result = sum; } else{ float result = 0; } append(kernel_result, result); } I'm sure it's not good and it's why I'm asking help ! If anyone here can help it would be much appreciated !! Cheers,
-
Hi All, Quick question, Objective: I have two points (could be any orientation), If the distance is greater than "x" meters ( in world units, 0.5m in this example) I would like to add an additional point 0.25 Meters along the vector (eg.from first point two second point direction) is there a VEX function for this? cheers
-
How does one deal with multiple paths in POP Steer Path I would like to be able to assign a list of possible paths to each agent particle instead of all the particles following all the paths. Currently I set up multiple sops and multiple agent groups but that's not very scalable. Cheers
-
3@transform = set( {-0.146396,-0.0727609,0.0550026},{0.0605058,0.000363445,0.161525},{0.0682531,-0.156387,-0.0252152} ) ; -- Instance with @transform p@orient = quaternion(3@transform); DELETE @transform attribute -- Instance with p@orient Different Results of orientation! If I instance the point with p@Orient converted from 3@transform using quaternion() , the orientation is flipped . It seems that I get the same p@Orient value with ident() and ident() * -1 . Is it the problem? How can I obtain the correct p@orient ? Thank you for reading my question
-
Hey guys. I want to display info of each LOD on parameter editor panel and I got it work in Houdini, but when I use this hda in UE, all detail scripts turn to be strings rather than values, and horizontal layout of labels messed up, too. Is that because UE don't support runtime vex in label parameter?