早速失礼させていただきます。
houdini初心者で、ただ今勉強中のものです。
vexの勉強をしていますが、わからない点がありご教授願いたいです。
以下①、②とも自分で作成しましたが、①は思った通り動作しましたが
同じ動作を想定した②が動作しませんでした。
違いを教えていただきたく、お願いいたします。
前提:circleSOP、resampleSOPで円型にポイントを配置済み
想定:ポイントが番号を経るにつれ徐々に+y方向へ移動(heightのパラメータには一律0.05を記載)
①for(int i=0;i<npoints(0);i++){
vector pt = point(0,“P”,i);
vector offset = set(0,ch(“height”)*i,0);
vector pos = pt + offset;
setpointattrib(0,“P”,i,pos,“set”);
}
②for(int i=0;i<npoints(0);i++){
setpointattrib(0,“P.y”,i,ch(“height”)*i,“set”);
}
基本的なことで申し訳ございませんが、お願いいたします。
vexの質問
4364 6 0- popoi
- Member
- 16 posts
- Joined: Dec. 2018
- Offline
- Ponta
- Member
- 92 posts
- Joined: Oct. 2018
- Online
僕も初学者ですが、一緒に勉強させてください。
setpointattribの第2引数で指定するattribute nameは、“P”は有効だけれど“P.y”は無効、と、僕はとりあえず覚えて使っています。VEXの現在の仕様、あるいは制限、と理解しようとしています。
同じ機能を実現するのに「@P.y += ch(“height”) * @ptnum;」と書くと、SIMDで実行されるので、より効率が良い、と覚えて使っています。「@ptnum」は「(float)@ptnum」が正解だけれど「(float)」を省略しても暗黙のキャストが行われるようで、ワーニングも立たずに処理(クック)してくれます。
先達のご指導をいただければと思います。
setpointattribの第2引数で指定するattribute nameは、“P”は有効だけれど“P.y”は無効、と、僕はとりあえず覚えて使っています。VEXの現在の仕様、あるいは制限、と理解しようとしています。
同じ機能を実現するのに「@P.y += ch(“height”) * @ptnum;」と書くと、SIMDで実行されるので、より効率が良い、と覚えて使っています。「@ptnum」は「(float)@ptnum」が正解だけれど「(float)」を省略しても暗黙のキャストが行われるようで、ワーニングも立たずに処理(クック)してくれます。
先達のご指導をいただければと思います。
- popoi
- Member
- 16 posts
- Joined: Dec. 2018
- Offline
- Ken Taki
- Staff
- 337 posts
- Joined: April 2015
- Offline
- popoi
- Member
- 16 posts
- Joined: Dec. 2018
- Offline
Image Not Found
引き続き基本的なvexについての質問をさせてください。
現在以下の動画を見ながらvexの練習を行っております。
https://vimeo.com/304116804 [vimeo.com]
「copy & stamp」を使用している部分を
「pointwrangle」で代用できないかと試行錯誤中です。
シーンファイルを添付させていただいておりますが、
「copy to points」で作成した縦型のBOXをランダムな度数だけ
回転させたいと思っております。
まず分かりやすく45度回転させるために、以下の通りvexを記入しました。
@up = set(0,1,0);
vector4 quat = quaternion(radians(45),@up);
qrotate(quat,@P);
全く回転の兆しが見えず・・・
まずquaternionの概念から再勉強の必要があるかとも思っておりますが、
このシーンではどのようにすれば回転が上手くいくでしょうか。
何卒よろしくお願い致します。
- Ponta
- Member
- 92 posts
- Joined: Oct. 2018
- Online
copytopointの直前にattribwrangleノードをつないで、次のように書いてみてください。
vector up = set( 0.0 , 1.0 , 0.0 );
vector4 quat = quaternion( radians( 45.0 ) , up );
@orient = quat;
詳しくは下記に書いてあります。
http://www.sidefx.com/ja/docs/houdini/copy/instanceattrs.html [www.sidefx.com]
popoiさんの投稿で、radiansという便利な関数があることを知りました。
勉強させていただきました。ありがとうございます。
ぽん太
vector up = set( 0.0 , 1.0 , 0.0 );
vector4 quat = quaternion( radians( 45.0 ) , up );
@orient = quat;
詳しくは下記に書いてあります。
http://www.sidefx.com/ja/docs/houdini/copy/instanceattrs.html [www.sidefx.com]
popoiさんの投稿で、radiansという便利な関数があることを知りました。
勉強させていただきました。ありがとうございます。
ぽん太
- popoi
- Member
- 16 posts
- Joined: Dec. 2018
- Offline
-
- Quick Links