2015年7月29日水曜日

Unity : Shader : Memo : いつか見たShader のVer5対応

playing with Unity 5's deferred shading pipeline


UnityのShader ScreenSpaceで、イロイロやっておられる方のあれです。スバラシ


なかなか理解出来てないですがメモしておきます

雑記

Shaderを含め、いろいろ勉強しないとだめですな :p

2015年7月21日火曜日

Houdini Tutorial

Houdini Tutorial 01 | Plexus from Danil Krivoruchko on Vimeo.

Scene source:
https://dl.dropboxusercontent.com/u/26815/_tutorials/01/houdini_01_plexus.hip

Hey everyone!
After about year and a half after I switched to Houdini from Autodesk Softimage I decided to create series of tutorials with a things I`ve learned so far.

This one is about making Plexus-like effect in Houdini. I hope you`ll find it useful.
And sorry for my English, I`ll try to improve it over time =)

The scene includes more optimized substitute of FOREACH node so now it runs 75 times faster.

SCENE UPDATE:
- new replacement of Plex+Clean pair of nodes is about 2 times faster for big point clouds.
- one more option for splitting polygons added - this one is almost 10 times faster than vex code.

メモ

このかたのチュートリアルは 有償チュートリアルにひけを取らないなぁ


絶賛修羅場中

2015年7月6日月曜日

Substance Designer 5 Tips : Pixel Processor で画像を歪ませる

PixelProcesser001.md—/Users/kawabata_imac/Dropbox/Blog/Allegorithmic

いまだ、3Dの回転が良くわかってない TERAです

前置き 飛ばしてよい

エフェクト用のテクスチャを制作するとき、
思い通りに歪ませる事って難しいですね。

機械的にやろうとするとなおさらです。

ひさびさに Substance Designer 5 を
立ち上げてみました。

Verが 5になって、3回目の立ち上げです。

VectorMapが搭載され、
思うように歪ませる事が出来ると思ったのですが、
思うように制御出来ません

VectorMapって RGで処理するん 違うの?
Rを入れると XY 移動するんだけど orz
Normal使うの? って訳が分かりませんでした。

調べるのもおっくうになって来たので、
同じく Ver 5 で搭載された PixelProcessor を使って
制御出来る物を組んでみました

環境

Substance Designer5

目的

グレースケール画像を利用し
画像を指定方向 x,y に向けて歪ませる

ノード

組み方


最初のノードの組み方はこんな感じです

上部に歪ませるカラーマップ、
下に歪みの元となるグレースケールの HeightMapを用意します

Pixel Processer

ピクセルプロセッサー内の処理です。 あらかじめ二つの変数を用意しておきます。

・ X,Yどちらに移動するかのスイッチ
・ 移動量の調整する値

流れ

  • グレースケール座標の 値を取得

  • その値に、調整量を掛ける

  • 調整量を掛けた物で、カラー画像を再サンプル

以上です :p

イロイロ凝った事が出来そうですね〜。楽しからずや

2015年7月2日木曜日

Houdini Tips : Wrangle 等幅拡張

Houdini Wrangle ケイ拡張.md—/Users/kawabata_imac/Dropbox/Blog/Houdini

ども、大腸がん検診にひっかかって、
尻を掘られたTERAです。

まあ、尻を掘られただけで、
特に問題はなかったのですが、健康大事w

というわけで、
Houdiniネタです。

3D系のツールは何でも
ノードになって来た今日この頃、
便利とは思うのですが、
コードの方が便利なことが多々あります。

というわけで、Houdiniでは、
wrangleノードというのが用意されてます。

なんというか、vop sopが
書いてくれるコードを自分で書けみたいな。

実行速度も、かなり早いようです。

で、調べてみたのですが、
新たな VEX Expressionを覚えないとダメっぽい

チュートリアルを確認すると
c/c++やRenderman Shading Language
と似てるっては書いてありますね。

これは、メンドクサイと思っていたのですが、
どうやらこれ、VertexShaderとほぼ、同じ考え。
入って来たポイント事の処理なようです

Attributeもがんがん加えられるので楽チンチンです
というわけで、平面を太らせる ノードを作ってみました

Point Wrangle

vector vec,vecY = set(0,1,0),v1,v2;

i@fID = (@ptnum - 1) % @Npt;
i@bID = (@ptnum + 1) % @Npt;
v1 = normalize(point(@OpInput1,"P",i@fID) - @P);
v2 = normalize(point(@OpInput1,"P",i@bID) - @P); 

vec = v1 + v2;

if(length(vec) <= 0.001)
{
    vec = cross(v1,vecY);
    @N = vec;
}
else
{
    if(dot(cross(v1,v2),vecY) > 0)
        vec *= -1;

    v1 = normalize(cross(v1,vecY));
    normalize(vec);
    @N = vec / abs(dot(v1,vec)); 
}

@P += @N * ch("width");

Parameter

Point Wrangle ノードに "width" の
floatパラメータを追加してます

思った事

  • 条件がめんどくさかったので
    (@ptnum - 1) % @Npt
    を使ったけど下策だとおもわれ

  • 直線に並んだ時の処理が無かったため、
    慌てて付け加え

  • 頂点IDに依存してるので、あまり使い勝手は良くないですが、
    まあ、手始めの第一歩ということで。

近況

VR勉強会に行って来た オキュ欲しい :p