Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Today
  3. Hi there, Couldn't get anything working with Number of copies. Can I feed any integer into Copy node as a number of objects (ncy parameter) ? Is is available at all?
  4. You can also try Extract Transform - it can convert the geometry transforms to point representation.
  5. I'm trying to work a bit on terrain, but there how can we avoid tiling for textures ? In world creator there is an option "eliminate tiling" bit how can we do this in Houdini, event with Triplanar I have tiling ... any suggestion pls ? th
  6. Open Gl Render without Lighting

    Remove the lights from "Candidate Lights" on the OpenGL ROP.
  7. What can I do with SideFX Web API?

    I imagined that, but I was still hoping it could fit my needs. Thank you for explanation @symek.
  8. Could anybody take a look? I don't get it to work. Thanks in advanced. jack
  9. Hi! The open gl render rop seems not to have the option to turn off lighting. Or am I just blind? Is there a way to get it working?
  10. you're right, this is a terrible place and you should probably leave
  11. See what I mean with this forum?
  12. Raining Fuel (No Clustering)

    Interesting, when the particle impacts; how did you do the impact ?
  13. visualize groups

    How can I visualize groups ? And how can I loop over all groups and rename each group; I probably can do the latter in python but wondering about the vex method ?
  14. Raining Fuel (No Clustering)

    Here is a modification where the impact particle is set to slide. A trail sop is used to generate a line length, for the sliding particle, which is turned into a tapered polywire. The sliding polywire becomes the fuel source. ap_raining_fuel_trails_111819.hiplc
  15. UV cubic map procedurally

    I'd like to bookmark posts, is that not possible ?
  16. Hey Pavel, Thanks so much for taking the time. This info will really help me a lot. I've never encountered the Empty Data and Enable Solver nodes before, but I think I understand. It seems like the Enable Solver tells Geometry Wrangles which objects to apply to by entering the names set by the Empty Data node.. And I'm not sure how the names will come into play, but hope to remember that tip when I get into constraints. Thanks a ton!!
  17. Permission issue

    Thank you gui, much appreciated
  18. What can I do with SideFX Web API?

    Hi, unfortunately this is an infrastructure allowing (typically large) studios to download and license Houdini programmatically via https. It has nothing to do with Houdini itself or creating geometry.
  19. Objilla - Advanced obj and mtl importer for Houdini™

    Hi AtomicNixon, Thanks for contacting me. I am happy that you find Objilla useful. When you visit the gumroad page there are two more videos that showcase how to install and how to use the product. https://www.youtube.com/watch?v=1rmiw3vJhWs https://www.youtube.com/watch?v=6tfOsYjPia0 I hope that my pronunciation-grammar in the videos makes sense, I am not too fluent in English, let me know if you encounter any problems or if you have any questions. Perhaps you would like to suggest some of the features that you would find useful in the next update here in the forum? Or, if you prefer to address me privately, you can use my email ippobour@gmail.com. Kind regards, Ippokratis.
  20. UV cubic map procedurally

    Ok, it's been a while, but let's try it one by one: 1. Scaling world coordinates to unit size vector bbox = relbbox(0, @P); vector size = getbbox_size(0); vector ratio = size / max(size); vector scale = bbox * ratio; relbbox() creates linear gradients along each axis of the object from 0.0 to 1.0. Those can be spread out in UV space later. getbbox_size() returns the absolute dimensions of the object. While we don't care about the actual size, we need to factor in how those dimensions relate to one another: size / max(size) Dividing all dimensions by the biggest one effectively scales them to unit size while keeping the proportions. This is the aspect ratio for X, Y and Z. bbox * ratio combines the gradients on all mesh points with the overall aspect ratio. All projections fit proportionally onto the UV grid now, we only need to split them up and lay them out. 2. Splitting up projection sides vector side = sign(v@N); vector nml = abs(v@N); if (nml.x == max(nml)) { ... } else if (nml.y == max(nml)) { ... } else { ... } sign(v@N) decides towards which side the normals point to. Its either left or right, top or bottom, front or back. Later this will compensate for.. abs(v@N) setting all normals to positive values. So we can easily compare which direction they are mainly facing, using: if (nml.x == max(nml)) for X, else if (nml.y == max(nml)) for Y and else for Z. By comparing each absolute component with the normals' maximum, we split the geometry into UV islands. 3. Laying out UV coordinates if (nml.x == max(nml)) { @uv = set(scale.y * side.x, scale.z, 0); } else if (nml.y == max(nml)) { @uv = set(scale.x * side.y, scale.z, 0); @uv.y += 1; } else { @uv = set(scale.x * side.z, scale.y, 0); @uv.y += 2; } @uv *= 0.3333; @uv.x += 0.5; set(scale.x * side.y, scale.z, 0); Depending on which side has won, the UV coordinates are composed of either top or side views (first component) and front or side views (second component). Setting the scale variables negative can be used to sort out direction issues. *side.x, *side.y and *side.z are simply flipping directions in case the normal directions have been negative. Thus getting their own islands on the left side. @uv.y += 1; and @uv.y += 2; are moving the UV islands upwards, so they are not landing on top of each other. @uv *= 0.3333; Currently UV coordinates span across six unit spaces, so we scale them down to fit into one. @uv.x += 0.5; Because of flipping the sides we also have to move all our coordinates to the right by half. Alright, I hope things got less confusing now.
  21. Yesterday
  22. Hi everyone, I was interested in creating a web service that would be capable of creating 3D geometries, and while reading Houdini docs I discovered about SideFX Web API. Unfortunately, it doesn't say much about what you can actually do with it and there's just one basic example, but in the Constructing API Requests section it says I can pass to the request: Does it refer to the HOM API? Meaning I can pass something like hou.node('/obj/geo1').createNode('box') Or I'm completely wrong? If so, what can I do with this Web API? Thanks in advance for any help.
  23. UV cubic map procedurally

    I'm not proud !!! I'm reading your code over and over and still got NFI !!!
  24. Anyone using .sim files?

    The .sim files are written out on the cache tab of the dopnet. Enable Save Checkpoints and specify your checkpoint location with $SF instead of $FF as the incrementer. We use $SF to stand for simulation frame. This will correspond with whatever the first frame of your simulation is, so be aware of that. Then change the checkpoint trail length to the length of the sim, so that the entire sim is accounted for. Next, make sure the checkpoint interval is set to 1, so that you get every frame taken care of. Now, when you play the simulation, you will automatically write out .sim files. Just be aware that if you suspend the simulation on a partial frame, your simulation will break. In that case you need to delete the last incomplete frame, ctrl+click the little brain icon, and your cache will re-set to the last complete frame.
  25. Assuming you're using Alembic to get your primitives out of Maya and back into Houdini, you need to get the "packedfulltransform" intrinsic of each packed Alembic. In VEX you can use the "primintrinsic" function to get this matrix. However, points don't have primitive intrinsics, and so when you delete your primitives you're going to lose all your transform information except for @P. You'll want to keep the primitives loaded, unless you're manually converting the primitive intrinsic transforms to template point attributes. To manually get an orient attribute from a packed Alembic: matrix m = primintrinsic(0, "packedfulltransform", @primnum); matrix3 m3 = matrix3(m); p@orient = quaternion(m3); To get the pivot: vector3 pivot = primintrinsic(0, "pivot", @primnum); v@pivot = pivot; If you want to try the easy route, MOPs has built-in tools to handle this. Use MOPs Extract Attributes on your Alembic primitives, and it'll automatically pull an `orient` and `pivot` attribute out of your primitives (make sure to enable Extract Full Transform). You can then use Transform Pieces, or use MOPs Apply Attributes if your source and destination primitives have either the same sorting order or matching i@id attributes.
  26. error in /physarum-slime-mold

    Salute @flcc Entagma and mxsage
  27. Packed Primitives Intrinsics

    Hey guys, I know I'm really late but whatever. If you want to update the collision geometry you have to set the packedprim point id attribute to -1. This way bullet will think it's a new geometry and so recomputes the collision geo according to it's intrinsic transforms. Props to the Entagma guys for this one. Cheers
  1. Load more activity