Stage3Dの勉強をしてみた

f:id:y_d:20111108003249p:image

Stage3Dの勉強中です。
私にとってStage3Dはとても難しいですが、こちらに丁寧に解説をして頂いているページがあり参考にさせて頂いています。

Molehill Stage3D API 入門
http://9ballsyndrome.blog.fc2.com/blog-entry-22.html
Molehill Flash Tutorial
AGAL Basics:http://pixelante.ca/index.php?b=molehill_flash_tutorial_agal_basics
MolehillとPB3Dで遊んでみた
http://level0.kayac.com/#!2011/03/molehillpb3d.php
Stage3Dで霧表現(Perlin noise mist and depth fog)
http://wonderfl.net/c/utOJ


まだまだ勉強がたりませんが、こんなの作って見ました。
http://demouth.net/sketch/072/

VertexShaderはこんな感じ

mov vt2, va0\n
add vt1.x, va2.x, vc4.x\n
add vt1.y, va2.x, vc4.x\n
add vt1.z, va2.x, vc4.x\n
sin vt1.x, vt1.x\n
cos vt1.y, vt1.y\n
cos vt1.z, vt1.z\n
mul vt1.x, vt1.x, va2.y\n
mul vt1.y, vt1.y, va2.y\n
mul vt1.z, vt1.z, va2.y\n
add vt2.z, vt2.z, vt1.y\n
m44 vt0, vt2, vc0\n
mov op, vt0\n
mov v0, va1\n
mov v1, vt0.z\n
mov v2, vc0\n

FragmentShaderは「Stage3Dで霧表現」をそっくりそのまま使わせて頂きました。。

tex ft0, v0, fs0<2d,clamp,linear>\n
mul ft1, fc0, v1\n
add ft0, ft0, ft1\n
sat oc ft0\n
this.context3D.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX,0,matrix,true);
this.context3D.setProgramConstantsFromVector(Context3DProgramType.VERTEX,4,Vector.<Number>([getTimer()*0.008,0,0,0]));