Blenderで自作シェーダの実験

最終更新日21 Jun 2017 13:07

シェーダの開発だけに集中したいならば、Blenderでできたらいいなと思った。

やり方

  1. Blender Game EngineのControllerのScript(python)を使う方法
  2. Blender Game EngineのActuatorのFilter 2D のCustumでGLSLを使う方法。。。この場合はポストプロセッシングのみぽい。?
  3. Blender CyclesエンジンでScriptノードを使う方法(OSL Open Shading Language)

2.についてはscript nodeのページで、
このページでは1.の方法について記述します。
やってみた感想としては、pythonだと文字列の中にシェーダを書かないといけないのがしんどくて挫折しました。
2.は使うとBlenderが落ちまくるので挫折しました。。orz

pythonを使う方法

まずBlender内でText Editorってやつを開かないといけないらしい。
このアイコンのやつがText Editorのようだ
textediror.png
頂点にx,y,z以外の特殊なアトリビュートを入れるには??とちょっと心配だが
Text Editorモードになったときのメニュー
textmode.png
ここにシェーダコードを含んだpythonスクリプトを書きます。
そして、ターゲットとなる3Dオブジェクトが選択されている状態でLogic Editorメニューを選びます
logiceditor.png
lmenu.png
次にAdd Sensorと書いてあるところからAlwaysを選びます
Sensorは何かが起こったらアウトプットを出すところだそうです。
たとえばキーボード押したとか、2つの物体が衝突したとか[5]
つまりイベント検知みたいなもののようだ。
上の図の「Cube」と書いてあるところは、現在選択しているオブジェクトの名前。
Alwaysにすると、Cubeさんは一定の間隔でoutputシグナルを出すようになる[5]
always.png
そのあとControllersでPythonを選び、自分がさっきText Editorで作ったScriptを指定します。
ControllerはSensorから何かを受け取って、何か処理をするところです。
そして接続します
connect.png
そのあと3DViewに戻ります(3Dオブジェクトが見える状態)
そして、右側のメニューでstartを押すと、自分の作ったシェーダが反映されます!
start.png
こんな風にText Editorが下の状態で作業するとやりやすそうですね
full.png
このTextEditorは日本語は書けない様子。。。残念

shader


ファイル

サポートサイト Wikidot.com shader