Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

7 Neutral

About localstarlight

  • Rank

Personal Information

  • Name
    Steve Watts Kennedy
  • Location
  1. Writing attributes to image file

    Figured it out. I thought I could put the (IX+YRES*IY) straight into the 'Point or Primitive' attribute on the Get Attribute node inside the VOP COP filter, but as it turns out that was always resolving to zero. I just needed to build the sum using nodes inside the VOP COP. Got it working now.
  2. Writing attributes to image file

    Hey, I'm resurrecting this thread because while I must have got this working before (in August last year) I no longer seem to have the project file, and I can't figure it out. I've attached a sample project file. I've scattered 128x128 points inside a sphere in 0->1 space and want to output the positions of these points as RGB values in a 128x128 texture. The Get Attribute node doesn't seem to be pulling anything into the VOPCOP Filter, but I can't see why... Side question: I want to export this data as a 16bit PNG file, but I can't see how/where I need to set that. Also, do the 0->1 values need to be scaled to something for a 16-bit output, or will 0->1 be stretched across all possible 16-bit values? Any help massively appreciated! PointsToPixels.hiplc
  3. Any way to take non-planar volume slice?

    This is awesome, thanks so much for the hip file!
  4. Dark Matter Filaments - Suggestions for form like this?

    Hey, thanks for the response. I'm now on my fifth iteration of trying out different techniques. Have something pretty similar to what you're describing. Think I'm getting there, slowly! Will share something when I'm done. Thanks!
  5. I've been using the Volume Slice SOP to take planar slices of volumes to extract textures. I'm wondering whether there is any way to extract a volume slice using a distorted plane? For example, with a toroid volume (shown here as a mesh not a volume): So using a distorted plane, I want at each point in the plane to be recorded the volume's density at that point. Is there any way to achieve this?
  6. I am trying to create some organic form in Houdini, which is meant to look like the dark matter filaments in cosmological simulations like Illustris. Here is an example image: I am trying to create the look on the left, with this tangle of filaments, and clusters of particles which are denser in certain regions than others. Here is a video reference: http://www.illustris-project.org/movies/illustris_movie_full_cube.mp4 Again, I am looking to recreate something similar to the left side of the video. I'm sure Houdini must be ideal for something like this, but I'm having trouble figuring it out. I've been playing with volumes and cellular noise, then converting to polygons and scattering points, but it's not working out very well, and seems like there must be a better approach. Any recommendations for tutorials for something like this would be most helpful! Thanks!
  7. Detect surface using VEX

    Hey symek, that did the trick. I had the input listed wrong. Thanks so much for your help! It works without initialising those variables, but good to know that's something to look out for. No apology necessary, I understand it's a bit frustrating when people treat forums as Google For some reason my searching only turned up trace(), which doesn't return the position of intersection, so I wasn't sure it was something VEX actually had. Thanks again for your help.
  8. Detect surface using VEX

    I'm trying to use the first example you gave (SOPs: intersect) but can't get it to work for some reason. Here's the VEX I'm using: vector direction = @N * -100; vector new_position; float u,v; i@intersected_prim = intersect(0, v@P, direction, new_position, u, v); @P = new_position; I'm trying to shoot a trace in the opposite direction to the point normal. Essentially I have a tube mesh surrounding a more complicated shape, and I'm trying to project the points of the mesh inwards onto the more complicated geometry. The attribute @intersected_prim is returning a prim number (which I assume must be the id of a prim on the more complicated inner geo), but new_position doesn't seem to be getting the location of the intersection, and so @P remains unchanged. This is my first time using a VEX function that requires passing a variable by reference, so perhaps I'm doing something wrong with that?
  9. Detect surface using VEX

    Great, thanks! I actually did various searches trying to find the answer, but clearly I was not phrasing my question right to turn it up. I only ever post on forums as a last resort, but thanks for the reminder nonetheless
  10. Detect surface using VEX

    Suppose I have a position (e.g. [100,200,300]) and directional vector (e.g. [1,0,0]), is there a way in VEX to fire a line trace/ray from that point along that vector and get the position of the first surface primitive that's hit?
  11. Writing attributes to image file

    Works perfectly, thanks so much!
  12. I feel like Houdini must be able to do this, but I can't figure it out... I want to take a vector point attribute and write it out to a 16-bit image file. So for example, for point 0, my attribute @out_P has a value of {561.0, 981.0 ,1174.0 }. I want to create an image sized 256x256 pixels and write the first pixel value to be this value of @out_P. Second pixel is the @out_P value of point 1, and so on... How would I go about doing this?
  13. Not cooking when using filename expressions

    Ah, figured it out. I'm using the image sequence in a ColorMap in VOPs, which apparently can't use time-based expressions inside VOPs itself, so I just needed to promote the parameter. Answer was found here: https://www.sidefx.com/forum/topic/30026/?page=1#post-138004 LS
  14. I'm using Houdini to render point clouds from depth images, and have everything working for a single frame, but can't get it to evaluate each frame in a sequence. I'm using an expression in the parameter that reads in my image files, so the file path looks like this: D:/UNREAL_WORKING/Brush_VR/Video_Captures/Character_Front/Point_Cloud_Map_01SceneDepthWorldUnits.$F4.exr The $F4 is correctly becoming '0001' on the first frame, but when I slide the timeline around, nothing changes. When I click Expression->Expand String Value, I can see that at each frame it is producing a string that should be reading in the correct file - if I write that same string manually, it pulls in the right file - but it's not actually evaluating the data from the image. What do I need to do to make sure the network is cooked each frame?
  15. I'm not sure if Houdini has a quick and easy way to do this...? Here's an article with a lot of detail about the process in a more general sense: https://www.scratchapixel.com/lessons/3d-basic-rendering/computing-pixel-coordinates-of-3d-point/mathematics-computing-2d-coordinates-of-3d-points Don't know if that helps at all though.