タグ

ブックマーク / yamasv.blog92.fc2.com (5)

  • [ActionScript 3.0] DisplacementMapFilter│miscellaneous

    DisplacementMapFilterとは置き換え画像の色情報に基づいて画像を変形させるという、少しわかりづらいフィルタ。 置き換えマップのRGBとアルファ値をもとにX方向Y方向の変形を指定するが、話を簡単にするために青成分を使ってX方向だけに変形することを考える。 各行はそれぞれ、元画像、置き換えマップの適用後の画像、置き換えマップ画像になっている。 1行目は、上1/3が(青の)輝度0、次の1/3が輝度128、下の1/3が輝度255になっている。適用後の画像は上が右にずれ、中は移動せず、下は左にずれている。 2行目は、下に行くほど輝度が高くなっている。適用後の画像は斜めに直線的にずれている。(「画像を平行四辺形に変形」でも説明したようにこのような線形の変形は行列を使えば簡単にできる。) 3行目はサインカーブに応じて輝度を変えている。適用後の画像は波打ったようになる。 4行目は右側が円

    jelly-belly
    jelly-belly 2009/08/06
    DisplacementMapFilter解説
  • PV3D キューブの影を表示2│miscellaneous

    マウスドラッグでキューブを回転できます。 前回は床の真上に光源があるという都合のいい前提だったので、各頂点のx,z座標がそのまま床の座標に対応していたが、今回は光源の向きが斜めで影が映る面も二つあるので、光源と頂点を結ぶ直線が面と交差する点を求める必要がある。 直線の方程式は P = A + tV (A:直線上の1点、V:方向ベクトル) 面の方程式は N・(P - P0) = 0 (N:法線ベクトル, P0:平面上の1点) この二つの式からまずtを求めて、直線と平面の交点であるPを求める。 (この例ではAは光源の座標、Vは光源と頂点を結ぶベクトル) package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import org.papervisi

    jelly-belly
    jelly-belly 2009/06/04
    PV3DのCubeをドラッグした方向に回転
  • PV3D キューブの影を表示│miscellaneous

    マウスドラッグでキューブを回転できます。 PV3D 2.0で影を表示したい場合、複数のカメラを用意して、一台で下からオブジェクトを映した映像を使って影を表示するというやり方があるようだが、 http://mrdoob.com/blog.php?postid=461 このデモでは影の座標を計算して表示している。 キューブの回転行列はtransformプロバティに格納されているので、その行列を使えばキューブの8頂点の座標を計算する事ができる。 (このデモでは)影を映す面はxz平面に平行(y座標は固定)なので、求めた座標のx,z座標がキューブの頂点に対応する平面上の点であり、その点集合の凸包が影の輪郭になる。 package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.

    jelly-belly
    jelly-belly 2009/05/25
    PV3D キューブの影を表示
  • PaperVision3D 2.0の回転処理│miscellaneous

    PaperVision3D 2.0の各回転処理によってどういう方向に回転するかの確認用 上段左からRotationX, RotationY, RotationZを加算する事による回転、 下段左からroll(), pitch(),yaw()による回転 各軸は赤:X軸、青:Y軸、緑:Z軸 package { import flash.display.*; import flash.events.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.scenes.* ; import org.papervision3d.objects.*; import org.papervis

    jelly-belly
    jelly-belly 2009/05/25
    各回転処理によってどういう方向に回転するかの確認
  • miscellaneous [ActionScript 3.0] [] 2.0 GreatWhite

    PaperVision3D 2.0の最小サンプル package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.Display

  • 1