Jump to content


  • Posts

  • Joined

  • Last visited

Personal Information

  • Name

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

GDonkey's Achievements


Newbie (1/14)



  1. Hi there, I have gone through the forum and I could not find a solution to this problem, so please forgive me if it exists. The sad part is I totally figured this out months ago through trial and error and never saved the file somewhere that I could revisit it apparently ( silly me ! ). So I have made some flat tapered grids that represent disco lights ( light cones but flat ) and have coloured and animated them rotating with sin() and added a camera. Because this is for a 2D style project, there is no shading or lights required. The shader is literally just the Cd attribute plugged into emission with random colours per prim. What I would like to do is use COPS to render my scene as it's way faster to do this for something that has no real lighting. I just cannot figure out how to get : 1) the same view as the camera, but in cops 2) the colour information to show up. It's always cops that trips me up. lol. Any help is greatly appreciated.
  2. Thanks for the reply. This all makes sense to me. Yet Arnold still just hangs on render with the tag. as soon as i remove it everything is fine. I think I will put this aside for now and maybe ask support at Arnold because I'm pretty sure I get it now, and something is wrong. I would ask what is the Python route as I'm starting to learn it after a year of vex ( my first language ). But just trying to find tutorials for python 3 in houdini is pretty difficult. But I appreciate your time and effort so won't bug you much further .
  3. Hi there, I'm very new to learning Python and am running the latest version of Houdini with python 3. I was trying to run a simple command from a tutorial ( but it's py2 ) . I figured out that you have to now do print("stuff"). In the tutorial When I run the code with what I thought would be the correct change to syntax: import hou my_obj_context = hou.node('/obj') my_geo = hou.node('/obj/geo1') print (my_geo.children) I get the following result: <bound method Node.children of <hou.ObjNode of type geo at /obj/geo1>> When I try in an older version of Houdini with py2 I get the actual list of nodes ( but with print my_geo.children() ). I can't seem to find any tutorials or guides that can help me get into using python in houdini with version 3 and above. Any advise is welcome.
  4. Thanks so much for taking the time to reply. I had not heard of the tags thing before that's very cool. I just can't get it to render. It hangs like when the path to an image or hdri isn't working. Thanks so much for the vex snippet that worked perfectly and I understand what's happening there. and I can see that my 6 test images have been correctly assigned at random to each prim in the geo spreadsheet. I have all images in the $HIP folder and also brought in a "fail.png" to use as the default for the tag. I think I just don't fully understand the tag and how it works. would it not be "<attr:texpath:" instead of "attr:tex:" since that's the attrib name ? Definitely something I'm not understanding there. but either way I try it doesn't work. Then for the default do I put the file extension to the default image there at the end ? Also do I still include the $HIP/ before the tag and the extension after like $HIP/<attr:tex default:/$HIP/fail.png>.tga or just the tag like <attr:tex default:/$HIP/fail.png> I'm definitely messing something up with the paths because if I tick ignore missing texture errors on the "image" node it renders ( though obviously with no image ).
  5. Hi there, I hope somebody can help me I have read so many threads and tried so many things and I can't seem to get it right. If i have a very simple setup, like a grid on a copy to points, being copied to another grid. so say there's 9 grids with 1 face each. How do I tell the arnold shader to assign a different texture at random from a folder to each prim ? For example say I want to texture the windows of a building. and i have drawn 10 images of people lounging around with different layouts. and I want to randomly assign those image textures to however many primitives I have in the windows group etc. Any help would be much appreciated.
  6. Hi there, Try putting a Sop Solver between the pop solver and bullet solver. Then in there, a primitive sop, turn on transformations. and use a fit expression with @age to scale them over time starting from when each particle is born. Hope that helps.
  7. Hi pepemaracas, Did you figure out a way to visualise this in the viewport ? I am also trying to drive a 2D animation based effect like this, and only being able to see the result in Mantra is not the way forward. There are so many applications for this using Houdini with 2D based effects but months later and I can't seem to get past this one thing.
  8. toadstorm, Thank you so much for the quick and in-depth reply ! I'm only a few months into this amazing Houdini/Vex thing, and I am still a beginner, but I have so much more understanding of these things than I did, thanks in part to the great information you put online. I have made an attribute based on the frameBorn att in my pops network that records the birth frame of each particle and then freezes on that number. I've never messed with stylesheets before, but I am going go through what you said step by step this evening to try it out. Thanks again ! I really appreciate the help. Not knowing this was giving me weird dreams. haha.
  9. That is really cool ! If you don't mind me asking, is it possible to use this on a PNG sequence to start the sequence from an attribute on each point ? Say I have animated a traditional spark and would like that sequence to be copied to points, and to play from it's first frame whenever a point has it's attribute changed or created ? I have been trying to find the answer to this for so long. I have learned several ways to do it with cached geometry, but just to apply it to a material/pngs I have been stumped for months. setprimintrinsic(0, "index", @ptnum, f@some_attribute, "add"); // this would offset the start of each copy by the value of f@some_attribute
  10. Noobini, Haha. Thanks for trying ! Atom, Thanks so much for taking the time to reply ! I had to re-read your reply a few times as this is all quite new to me and I wanted to really try to understand everything. But I think I've made a bit of headway. What I was thinking of doing is having the first and last frames be empty drawings, and then use clamp to decide on what frame after birth the animation should trigger. Then alternatively, having it start on birth frame and play then die after last frame. Both scenarios would be useful to me. In my file I've not put empty drawings yet so that I can see what I'm doing. Ok, 0.5 at 24fps for a 12 frame sequence makes perfect sense. Instancing is new to me in Houdini but I think I figured that part out after looking at the help a bit. So I'm not using a copy to points at all anymore, and rather have 2 geo nodes, one with the grid/particle geo, and another with the pop network. I put a pop instance node and told it to point to the grid geo node. Then I put an instance node at the sop level. This gives me the same result as I was getting with the copy to points but instanced. Thanks ! I learned something new I put a pop wrangle with " i@frame_born = int(@Frame); " . I'm not very good with VEX, but from what I can see in the geo spreadsheet, you are creating an attribute called frame_born that is tied to the frame number on every point. This is the part where I get stuck. I see how it is useful to have this attribute/counter but I don't understand now how to use the attribute to start the sequence for each point at birth. We're in lockdown here now and I only have access to apprentice at home, so I'm uploading the working file here of where I'm at. When you have the time, I would appreciate another poke in the right direction Have a great day ! Sprite Particles Instance.7z
  11. Hi there, A bit of a noob question so I apologise for that. I have a file attached with a basic particle system, connected to a copy to points, and a grid with a png image sequence as the particle geometry ( 12 frames long ). Everything is working well, except I cannot figure out how to start the image sequence on a per particle basis. All the particles start their animation on frame 10 simultaneously and new ones born after that just start with the last hold frame. I have this - " Star Sparkle_`padzero(5, clamp($F-10 ,1 , 12))`.png " in the texture field on my principled shader and this seems to give me a 10 frame offset, and it holds the first and last frame, instead of turning into a white grid, which is great. But how do I get each particles animation to start at it's birth or at an offset from it's birth time/age/frame ? I've included the required png sequence with the file. Thanks to anyone who can help me with this, it's making me feel very silly that I can't figure it out in over a week. Have a great day ! Sprite Particles.7z
  • Create New...