描画したperlinNoiseから各ピクセル毎の明るさを取得、
それをy方向の位置情報として使用して最終的に3D的な計算を加えてパースをかけてます。
肝になるのは色取得のここら辺と
var col:uint = _perlin.getPixel( p.bx+W/2, p.bz+H/2); var _y:Number = ( (col >> 16) - 0x80 )/1.3;
z座標を(x,y)に変換する
var _y:Number = by*COS - bz*SIN; var _z:Number = bz*COS + by*SIN; var scale:Number = FL/( FL + _z ); return new Point( bx*scale*SP, _y*scale*SP);
ここら辺でしょうか。
全体のコードはwonderflで。