Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

11 Good

1 Follower

About kiryha

  • Rank
  • Birthday 05/06/1977

Contact Methods

  • Website URL

Personal Information

  • Name
    Kiryha Krysko
  • Location
  • Interests
    Houdini, Photography, Cookery

Recent Profile Visitors

760 profile views
  1. multiple inputs in foreach

    You need to cut a plane with several curves. So, you need to do a split for each curve, hence loop through curves, but not through the plane. polysplit_by_mulitple_curves_3.hipnc
  2. How is this effect made?

  3. Polywire shape adjustments

    Thanks, Thomas! The file is working fine, I just wish to clearly understand how it's working in-depth and replicate it by myself. I examine the point animation along curve part (skipping orientations) and have some questions and probably I will have even more questions later, so yes, when you will have time you can check that topic.
  4. Polywire shape adjustments

    Correct, my bad. I still examining how you rebuild my setup to move objects along the curve, as I understood, the high-level idea is to use primitive wrangle instead of Foor Loop. That gives me a hint that it could be applied in this case as well, cos wrangle muuuuuuch more fast than Foor Loop.
  5. Polywire shape adjustments

    Yes, that's works! Thanks, Thomas! i[]@primPts = primpoints(0, @primnum); foreach (int i; int currentPoint; @primPts){ float ramp_index = fit(i, 0, len(@primPts)-1, 0,1); f@widthPrim = chramp("shape", ramp_index)/20; setpointattrib(0, "width", currentPoint, @widthPrim, "set"); } scalePolywire_loop.hipnc
  6. Hello, I realize how vast this topic is but never the less, I wish to understand how all stages of full SG project creation should be organized in Houdini at a very high level first. Also, we may skip compositing setup and color management and focus on 3D production only. We assume that we do everything in Houdini, no other software required. I have a more or less clear understanding of how a project could be done in Maya: - Each asset (character or environment) has a separate modeling scene. - Each animated asset has a separate rigging scene. - Each shot has a separate animation scene with referenced: 1) rigs of animated assets, 2) geometry of non-animated assets. - Each shot has a separate rendering scene with a referenced geometry of all assets. - You create an animation in animation scene and export assets animation as caches. - You render shots from rendering scenes, where you import and apply pre-built materials, import animation, create lights. It is extremely simplified workflow, but it works nicely on a real animation film project, especially within very limited resources. For Houdini, I aim to build the same system. I know it might be a wrong way trying to replicate Maya workflow in Houdini, but I am not trying to do so, I just wish to replicate the logic of data storage and exchange withing common VFX workflow (Modelling > Rigging > Lighting, Shading and Rendering > Compositing) and data structure I use to (assets, shots etc). My assumption about Houdini workflow: 1) Project setup: define Houdini environment with variables (and/or 123.py etc) individually for each project with a wrapper. There are some good tutorials and topics around this stage, so currently I am fine with this part. 2) Asset creation (modeling): let's skip for now. 3) Rigging and Animation. 4) Shading, Lighting and Rendering. Questions. 3) Rigging and Animation. Since Houdini does not have referencing mechanism I suppose the Digital Assets and versioning of them (along with geometry and volume cashes) is a way to exchange data between stages (departments). How should I create (and modify) rigged character asset and use it in animation (and rendering) scene? Say I have a model of my character in Alembic format (exported/cashed after modeling stage). I assume: - Create a scene for rigging process, bring alembic inside, rig, export OTL from this scene. - Create a scene for the shot animation, create character asset from OTL there, animate, export geometry (or animation data?) - When changes to rig have been made, export OTL with next version, update character asset in animation scene with a new version, re-export data if necessary. 4) Shading, Lighting and Rendering. In Maya, while dealing with rendering scene, my goal was to avoid any unnecessary data (like characters with rigs and animation curves etc) so I assemble scenes from pure clean geometry and apply animation by importing alembic caches. How should I assemble rendering scenes in Houdini? How should I bring assets, animation and materials there? How to update data when changes to models, rigs or animation have been made? With Maya, I develop a common material library (metal, wood, glass etc) and import this library in rendering scene so plenty of miscellaneous assets could share the same shader. It dramatically reduces the number of materials in rendering scene and makes material tweaking more simple. Let's skip dealing with lookdev and materials in depth for now, but I wonder if its a common way to encapsulate materials with assets before rendering stage so each asset has its own shader or there are some other techniques to deal with materials on numerous assets. Any suggestions and links are welcome.
  7. Polywire shape adjustments

    Trying to substitute Foor Loop with a primitive wrangle in @Atom setup. It works only for the first primitive. I thought wrangle is a loop, e.g. the code inside VEX expression window should be executed for each primitive (at the same time, in parallel) but probably I miss something. There should be printf() instead of sprintf() ap_curve on object.hipnc
  8. Reverse curve direction not working

    @acey195 Thanks, Twan, nice hint! @ThomasPara Wow, that's really fast setup! Despite I just start to examine this setup and do not understand how it works, I have several questions already: 1) I am trying to copy random alembic models on points instead of proxy cubes (with set_time_and_variation node) but it does not work. The path to alembic file is correct and different for each point (check @DISP attribute). Have no clue what is wrong! Here is a scene GEO_CITY_008_reverse_003_fix.hipnc (and alembics: CAR_B_01.abc and CAR_A_01.abc) The only way I was able to handle it - with one more nested for loop, as you could saw in initial setup (i delete other models to keep the scene clean there). 2) What the purpose of the carve1 node? Turning it off seems does not change anything, but the setup works much faster with it. 3) What happens with point numbers if I would not divide a time by perimeter (u += @Time/@perimeter;)? The points still move along the path but numeration of points jumps if I use only time (u += @Time;).
  9. Reverse curve direction not working

    Great! I can create a group and add primitives (curves) manually to this group for selective reverse. Works, fixed! But I wonder... how can I control it procedurally if I will have a LOT of curves? How to determine a curve orientation, if its clockwise or opposite?
  10. I use curves as paths to animate objects along this curves — cars on the roads. Some curves give me the right count clockwise direction of object movements and some of them not. At some point, if I change the curve orientation ("reverse" checkbox on curve_# object in LAND container) I got it fixed. But now reversing each curve do not necessarily change motion direction and I am not able to find the reason of issue or the way how else I can change individual orientations. Animation flipbook Scene file: GEO_CITY_008_reverse_001.hipnc PS. This is next stage of the topic I started earlier.
  11. Detail wrangler to primitive ?

    Probably with setdetailattrib. Here is an example of setting point attribute in detail mode.
  12. Primitive selection pattern

    That's fantastic! You can write the group name in Output Selection Group field of Bindings tab to highlight the group in wrangle.
  13. Primitive selection pattern

    Exactly what I was looking for! Long way of learning nodes in Houdini through the attempts to solve everything with VEX. Thanks again
  14. Primitive selection pattern

    Have a sophisticated solution which is working but not elegant at all... Still thinking how it could be done with pure expression. primSelectionPattern_002.hipnc