Forgot your password?   Click here   •   No account yet?   Please Register    •   Or login using  
JA ログイン
SideFX Homepage
  • 製品
    • What's New in 19.5
      • 概要
      • Solaris
      • Karma
      • Character FX
      • Pyro FX
      • FLIP Fluids
    • Houdini
      • 概要
      • FX 機能
      • CORE 機能
      • Solaris
      • Houdini Indie
    • Houdini Engine
      • 概要
      • Engine プラグイン
      • バッチ処理
    • PDG
      • 概要
      • FAQ
    • 比較
    • SideFX Labs
    • Partners
  • 業界
    • Film & TV
    • ゲーム開発
    • モーショングラフィクス
    • Virtual Reality
  • コミュニティ
    • フォーラム
    • ニュース
    • カスタマ ストーリー
    • Gallery
    • Contests & Jams
    • Houdini HIVE Events
    • イベントカレンダー
    • HEX Interview Show
    • Worldwide HUG
  • 学習
    • Getting Started
    • My Learning
    • ラーニングパス
    • チュートリアル
    • Tech Demos
    • Houdini 講演
    • 学校紹介
    • 教育プログラム
      • 概要
      • 学生
      • 講師
      • 管理者
  • サポート
    • Customer Support
    • ヘルプデスク FAQ
    • Houdini システム環境
    • ドキュメント
    • Changelog / Journal
    • Report a Bug/RFE
  • Get
    • 購入
    • Download
    • Content Library
    • お問い合わせ
 
Advanced Search
Forums 検索
Found 802 posts.

Search results Show results as topic list.

Houdini Lounge » How to log bugs and rfe's for Houdini - READ THIS FIRST!

User Avatar
Andr
802 posts
Offline
 2023年1月24日 06:27:45
On this page there's a `submit idea` button.
https://portal.productboard.com/sidefx/1-sidefx-labs-public-roadmap/tabs/1-recently-released [portal.productboard.com]
See full post 

SideFX Labs Tech Art Challenge 2021 » WIP - Fast Remesh - [ need help with betatesting b4 submitting]

User Avatar
Andr
802 posts
Offline
 2023年1月24日 06:15:17
coccosoids
Trying to use Labs Fast Remesh in a solver and it always crashes. Has anyone tried it?


Hi, can you upload a simple hip file?
See full post 

Technical Discussion » HDA "Save As" Changes Multiparm Names?

User Avatar
Andr
802 posts
Offline
 2023年1月4日 13:11:53
It might be a bug, better if you report it to the Support
Edited by Andr - 2023年1月4日 13:12:55
See full post 

Technical Discussion » Access 2nd input in a Python node

User Avatar
Andr
802 posts
Offline
 2023年1月1日 02:15:56
node.inputs()[1].geometry()
See full post 

Technical Discussion » Dynamic UI expose string parameters

User Avatar
Andr
802 posts
Offline
 2022年12月24日 11:02:25
A more efficient way could be to use a Python Sop at the very end of the subnet so that:

- network cooks because of a geometry change upstream
- python sop is also triggered to run, and from inside of the subnet it sets the values for the count of instances in the multiparm block folder.
- the latter has a callbackscript which loops over each instance and set the proper label name
Edited by Andr - 2022年12月24日 11:03:06
See full post 

Technical Discussion » Dynamic UI expose string parameters

User Avatar
Andr
802 posts
Offline
 2022年12月24日 10:32:45
Check the attached file.
The magic happens in the menu parameter, which now uses the following menu-script.
node = kwargs['node'] ## this node
id = kwargs['script_multiparm_index'] ## id of the current multiparm instance
names = node.geometry().attribValue('names') ## get the array of unique names
name = names[id] ## get the name of the curr parm
node.parm('Name'+str(id)).set(name) ## assign name to the label

## build the menu
menu = ['0', 'letters', '1', 'numbers', '2', 'mix']
return menu

Normally you would use a menu script just to build a dynamic menu.
In your case, we still build a static menu, but we exploit the menu script context to do other stuff in python, like dynamically set the label name, thanks to the fact that in the menu script you have access to the kwargs dictionary (so we can ask for the multiparm instance ID)

PERFORMANCE NOTE:
Menu Scripts are very wild parameters: they run and re-run the code many times to update the UI (you can check yourself by inserting a print() statement in the above code and see your console going crazy). I
In fact it's officially recommended to use a very simple code to build a menu-script.

Add that to the fact that we have multiple menu parameters here, and that you are also using a multiparm block folder, which is by a long shot the very least efficient parameter in Houdini, that is going to slow the UI down once you have 10, 20, 30 and more multiparm instances. So expect a not very fluid user experience if you have a complex scene, with many categories and heavy geometry.
See full post 

Technical Discussion » Dynamic UI expose string parameters

User Avatar
Andr
802 posts
Offline
 2022年12月24日 06:50:48
Andr
the first issue I see is that you ask for a detail attribute that doesn't exist.
`name` is a point attribute indeed. So you should use the `points()` function instead, and use as point number the instance number of the multiparm.

Ah, I was wrong and I see now what you do inside the subnet.
But still, there is an issue here, as you promote the `name` point attrib to detail, then you end up with only the attribute value of the last iteration.

In this scenario, I usually want one single point for each piece or group of points.
And for your specific case, I would also use create a detail attribute array of the unique names.
The graph in the image is not very efficient, just use it for start.
Edited by Andr - 2022年12月24日 06:54:18
See full post 

Technical Discussion » Dynamic UI expose string parameters

User Avatar
Andr
802 posts
Offline
 2022年12月24日 06:13:08
the first issue I see is that you ask for a detail attribute that doesn't exist.
`name` is a point attribute indeed. So you should use the `points()` function instead, and use as point number the instance number of the multiparm.

To get the instance number of each multiparm you use
kwargs["script_multiparm_index"]
, as documented here. **
https://www.sidefx.com/docs/houdini/hom/locations.html#parameter_callback_scripts [www.sidefx.com]
However this is only available for callbackscripts.

In the past I resorted with python by looping over each multiparm, and set the label with python.






** remember that by default Multiparm block folders start with 1 as first instance. You should manually set it to 0 in the edit parameter options so that you won't get any index errors when trying to access your points
Edited by Andr - 2022年12月24日 06:23:04
See full post 

Technical Discussion » UV Relax

User Avatar
Andr
802 posts
Offline
 2022年12月24日 02:48:41
szmatefy
Is there any procedural way to do UV relaxing?

Thanks and Merry Christmas!

In the yet to be released new version of this tool, there is also an experimental auto-fix UVs intersections mode, that is going to need some real-world validation. It's working fine and it's very able to fix the overlaps generated by Labs AutoUVs, but it's not an actual relaxation algo: so it may introduce stretching and reduce too much the size of the affected UVs.
https://www.sidefx.com/forum/topic/82432/ [www.sidefx.com]
See full post 

Technical Discussion » Python nodeEventType Output Change?

User Avatar
Andr
802 posts
Offline
 2022年12月23日 07:49:58
I too needed this few times in the past, but never came up with a solution.
I wonder if there's a RFE for it.

What kind of hscript hack are you using?
See full post 

Technical Discussion » delete point within a threshhold

User Avatar
Andr
802 posts
Offline
 2022年12月23日 07:37:42
See if something like this helps: we proceed to the threshold operations only if @ptnum is lower than nearpt , so that we can act only on one point of the pairs.

int nearpts [] = nearpoints(0, @P, ch('dist'), 2);
removeindex(nearpts, 0); // remove self
float lenX, lenZ;
vector nearpos;
int nearpt = nearpts[0];
if ( @ptnum < nearpt )
    nearpos = point(0, 'P', nearpt);
    lenX = length(@P.x - nearpos.x);
    lenZ = length(@P.z - nearpos.z);
    if (lenX < ch('delX') && lenZ < ch('delZ'))
        i@group_deleEndPnts = 1;
Edited by Andr - 2022年12月23日 07:38:47
See full post 

Technical Discussion » delete point within a threshhold

User Avatar
Andr
802 posts
Offline
 2022年12月23日 05:46:33
what if you try to be specific about the array data type also here ?

 foreach(int pnt;int p; i[]@npts)
Edited by Andr - 2022年12月23日 05:57:18
See full post 

Technical Discussion » delete point within a threshhold

User Avatar
Andr
802 posts
Offline
 2022年12月23日 05:11:21
nearpoints() function needs an array, you are just declaring a single int attribute with i@npts

Use
i[]@npts
Edited by Andr - 2022年12月23日 05:12:00
See full post 

Technical Discussion » is there possible to grab elements attrib to array?

User Avatar
Andr
802 posts
Offline
 2022年12月17日 10:11:02
Andr
Note: these functions can be very cpu intensive.

Instead you could use Sort Sop in "by attribute" mode. Which it seems to lead to significant speed boost over vex-only methods (like 10x faster with 100k points).

I attach an example .hip file with the various options I came up.
Image Not Found
Edited by Andr - 2022年12月17日 10:11:38
See full post 

Technical Discussion » is there possible to grab elements attrib to array?

User Avatar
Andr
802 posts
Offline
 2022年12月17日 09:05:30
Since houdini 19, Attribute Promote Sop has implemented a useful "array of all" method. Which is faster than using setdetailattrib() vex function. Since you want to store @P.y, you should first create a dummy attribute 'Py' as typing directly @P.y in Attrib Promote won't work.
This will just get the values into an array, sorted by point order.


To sort them by value, you could use the sort() function.
Check also the argsort(), which returns the list of indices sorted by the their values.

Note: these functions can be very cpu intensive.
See full post 

Technical Discussion » VEX help: Array with neighbor point position that updates!

User Avatar
Andr
802 posts
Offline
 2022年12月12日 17:58:57
Not sure I get what you are trying to do, but see if this works:
(note, it must run inside a point wrangle)
int neighs[] = neighbours(0, @ptnum);
f[]@nearpos;
foreach(int pt; neighs) {
    vector pos = point(0, "P", pt);
    append(f[]@nearpos, pos.z); }


The code you provided seems to have few issues:
  1. You are running it in detail wrangle? You could do it inside a point wrangle and be more efficient (as point wrangle is multithreaded)
  2. You reset the array on each iteration, by declaring it inside the for-loop.
    Try do it outside and before the for loop.
  3. When using the setpointattrib() function to update attribute arrays it's better to specify the `mode` argument with "append", usually. Otherwise on each iteration it would just set a new array and overwrite the previous. If not specified, the `mode` argument is defaulted to `set`, I believe.
  4. Also, consider moving outside and after the for-loop that setpointattrib() function.
  5. Also, consider taking care of 0 and last point, since you are trying to access the previous and following point of each point.

Edited by Andr - 2022年12月12日 18:00:57
See full post 

PDG/TOPs » Get list of houdini installations & spawn them for each w?

User Avatar
Andr
802 posts
Offline
 2022年12月10日 12:57:44
I'm building a custom performance profiler tool and I want to add the following feature:
measure the performance of a graph through different Houdini versions installed and record the timings.

For doing that I need to:
  1. know all the houdini versions installed in the machine and their path.
  2. a way to tell the workitem to use a specific houdini version.

Do you have any advice for this?


Regarding 1), I understand that I can do it by looking at the `Side Effects Software/` directory, but maybe there's a built-in way in houdini.
See full post 

Technical Discussion » Intrinsics for primintrinsic() function

User Avatar
Andr
802 posts
Offline
 2022年12月10日 05:04:43
try to treat it as an array, so:

float bounds[] = primintrinsic(0, "bounds", @primnum);
See full post 

Technical Discussion » What does @P when run over Primitives mean?

User Avatar
Andr
802 posts
Offline
 2022年12月3日 10:07:48
it would be very practical in some cases if you could also set it from a primitive wrangle, instead of writing your own routine with primpoints().. that would save time and space in the wrangle code.
See full post 

SideFX Labs Tech Art Challenge 2022 » Best Houdini Utility Entries

User Avatar
Andr
802 posts
Offline
 2022年11月30日 22:57:05
FAST SCATTER Sop is an efficient random point generator with improved workflows for art-directiing the generation and distribution of random points.

Some key differences from the traditional Scatter node:
  • Promiscuous Relaxation: points from different objects can interact and influence each other during the relaxation
  • Clumping: instead of relaxing, points can clump together
  • Organic effects: with the alternation of clumping and relaxation in the feedback
  • Accepts new input attributes for new results during the relaxation. Example: points with high "weightScale" attribute value will push away the neighbors with a low weightScale value.
  • Optional Free Roaming: during the relaxation points are no more restricted by the source geometry boundaries.
  • Points Pass-through mode: accepts already existing point clouds to be sent to the relaxation feedback
  • Can scatter from pieces and the generated points keep the id of the source geometry

    Custom specialized HDAs created for Fast Scatter:
  • Scatter Class Setup Sop: external tool (available to the user), helper node configurator for the geometry pieces to use for scattering
  • Attribute Step Sop: internal tool, quantize the attribute values and assigns a step id to points
  • Gonzo Random Point Sort Sop: internal tool, a cheap point order randomizer, with different levels for the quality of the randomization
  • Fast Random Sort Sop: internal tool, broken/under-development, failed attempt at using basic cards-shuffling techniques to make a fast point order randomizer.
  • Randomness Visualization Sop: internal tool, visualize the quality of the randomness of the values of an attribute.
  • Relax-Clump iterator: internal, (not a hda yet), a basic relaxation algo.
  • Fast Copy-All-Attribs-from-ID: internal, (not a hda yet), a dynamic vex code generator that writes the point() function calls on the fly for a Vex Wrangle to execute. Made as an alternative to Attrib Copy Sop. Still not sure if it's faster.


Edited by Andr - 2022年12月1日 23:57:43
See full post 
  • 最初
  • 1
  • 2
  • 3
  • 4
  • 最後
  • / 41
  • Quick Links
Search links
Show recent posts
Show unanswered posts
製品
  • Houdini
  • Houdini Engine
  • PDG
学習
  • ラーニングパス
  • チュートリアル
  • Houdini 講演
  • 学校紹介
  • 教育プログラム
サポート
  • Customer Support
  • ヘルプデスク FAQ
  • ドキュメント
  • Report a Bug/RFE
  • Sales Inquiry
LEGAL
  • Terms of Use (英語)
  • Privacy Policy (英語)
  • License Agreement (英語)
  • Accessibility (英語)
  • Responsible Disclosure Program
COMPANY
  • SideFX社について
  • Press
  • T-Shirt Store
  • Careers
  • Internships
  • お問い合わせ
Copyright © SideFX 2023. All Rights Reserved.

使用言語