タグ

ブックマーク / blog.r3c7.net (11)

  • Stage3D hardware accelaration available GPU list

    ANGLE (ATI Radeon HD 2600 Pro (Microsoft Corporation WDDM 1.1) )

  • note.x | Stage3D Physics library “Pellet”

    Adobe製Stage3D用フレームワーク Proscenium に付属してくる物理演算ライブラリ「Pellet」を単独で使ってみた。 btConvexHullShape Test(要:FlashPlayer11) Pellet は、C++で書かれたオープンソースの物理演算ライブラリ「Bullet」のAS3移植版。 BulletはBlenderゲームエンジンで使われてたりする。(MMDが採用してるっていうほうが通りがいいのかな)そのAS3ポートといえば、 Away3D 4.0 jiglib vs Bullet « DevJamMemo AwayPhysicsを使って衝突判定をしてみる Flash Player 11 対応の 3D 物理演算ライブラリ「AwayPhysics」 | ClockMaker Blog 等のエントリーですでに紹介されているAway3D4.0用のAwayPhy

  • note.x | 3D engine studies 100726

    自前エンジンにラスタライザ組み込んだ。やっと一息つけるとこまでできたー。 Rasterizer Test01(要:FlashPlayer10.1) 解像度640×480、△9800のトーラスにフラットシェーディングした状態で、自分の環境の場合30fpsくらい。背面カリングしてるので、実質△4000〜△4500くらい描画してる。ポリゴンあたりの描画面積のほうが影響ありそうなので、何枚描画できるかなんて性能評価の基準にならないかもしれないけど、まあ目安として。初代プレステが(たぶんローレゾで)30フレーム動作だと12000微少ポリゴン描画できるってことだから、なんとか近づけたい。目指せ初代プレステ。 Zバッファ持たせたので交差ポリゴンも問題なし。 Rasterizer Test02(要:FlashPlayer10.1) テクスチャにもとりあえず対応。アルファブレンドはまだ。 Rasterize

    syug
    syug 2010/07/26
  • note.x | UI Sound with SiON

    SiON使って、UIにSEを付けたりしてみるテスト。 (要:FlashPlayer10) マウスイベントなんかに連動して音を鳴らす場合、今まではmp3ファイル読み込んで再生してたけど、SiONを使うことで、PSG / FM / WaveTable / PCMなどの多彩な音源で、しかもラクしてサウンド制御ができる。個人的にはOPMが鳴るってだけで抱かれてもいいと思ったけど、トータルに音の制御ができるという側面はコンテンツ制作する上でとっても有用。 例えば、下記のようなコードで音の鳴るボタンが作れる。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 5

  • note.x | [Papervision3D2.0] Quaternion

    前回作った、マウスのクリック位置に応じてオブジェクトが移動するデモを応用して、平面上じゃなく球面上をオブジェクトが移動するものを作ってみた。ヨユーで出来たみたいな物言いだけど、オレには難易度高すぎな課題だった…orz。 InteractiveFacelevelTest3.swf(要:FlashPlayer9) 平面上を移動させたい場合は、変化する座標が2軸だけなので2Dと同じ感覚で処理すれば、まぁ問題無い感じで動く。球面上を移動させたい場合は、この考え方で実装すると始点と終点の角度が大きくなるにつれ、移動するオブジェクトが球体にメリ込んじゃう。 失敗例(要:FlashPlayer9) Tweenerのベジェ補間とかを上手く使えばソレっぽいものが出来そうな気もしたんだけど、いい加減3Dプログラミングにおける数学的知識も蓄えていかないといかんなぁと思って、クォータニオンで座標変換することに挑戦

  • note.x | [PV3D2.0] attitudeControl

    attitude Control(要:FlashPlayer9) haramakotoさんのエントリー「方向ベクトルからMatrix回転への変換」を読んで。 ある方向に形状の任意軸ベクトルを揃えることで、姿勢を制御するというお題。 haramakotoさんはクォータニオンで挑戦されているようなので、オレは行列でやってみた。正直言ってオレもよくわかってないんだけど、なんとなく上手くいったので書いておく。 例えば、ある形状のY軸を適当な方向に向けたい場合の手順は 姿勢をコントロールしたいオブジェクトのY軸ベクトルをゲット — [1]元の姿勢 ゲットしたY軸のベクトルに目標座標のベクトルを加算して新しいベクトルをゲット — [2]変形後の姿勢 [1]と[2]の外積をとって、法線ベクトル(回転軸)をゲット — [3] 二つのベクトルの角度をゲット — [4] [3]のベクトルと、[4]の角度でも

  • note.x | [PV3D2.0] Updated to beta 1

    PV3D2.0がベータ版に昇格だそうな。久々にアーカイブも配布されておりますな。 それにしてもFlashPlayer10の正式リリースまでに間に合うんだろうか…。 とはいえ、これでPV3D2.0の仕様は概ね固まったんじゃなかろうかと勝手に期待。すぐさまAstro向けに仕様変更が始まることがほぼ間違いないだけに、あんまり突っ込んで使ってみる気にならないけど。 08/08/27追記: 2.0Betaのクラスドキュメント出ましたな。 http://www.flashbookmarks.com/PV3D-Beta2-DOC/ 放置してたけど、このblogで晒してるコードも動かなくなってそう。そのうち直します; 08/08/28追記: いきなりバグに遭遇。 新しくなったCamera3D、fovを変化させても一向に見た目変わらんなーとか思ってたら、コンストラクタで fov 渡してないじゃんだ

  • note.x | [Papervision3D2.0] InteractiveScene3DEvent

    ISM(InteractiveSceneManager)が登場して、FaceLevelイベントがサポートされたあたりから訳解んなさ全開だったマウスイベント関連が、かなりスッキリして扱いやすくなった印象。試してみたのが以下のデモ。 InteractiveTest.swf(要:FlashPlayer9) ※各キューブがマウスオーバー、アウト、クリックに反応。 DisplayObject3Dインスタンスでマウスイベントを取得する場合は、 viewport = new Viewport3D(0,0,true,ture); var flmat:FlatShadeMaterial = new FlatShadeMaterial(light, 0x00ccff ); flmat.interactive = true; var objPlane:Plane = new Plane( flmat, 250

  • note.x | [Papervision3D2.0] ピクセル等倍表示にトライ

    「FlashやWebにまつわるいろいろなこと」さんで、 カメラの設定値からオブジェクトが100%で見える位置の算出ってどうやればいいんだろうか Papervision3D 2D上で100%に見える位置は っていうエントリを拝見。 そういややったことねーなと思って、既出かもしれないけどやってみた。 上記エントリによると、camera.focus:100、camera.zoom:11のとき、「ピクセル等倍で表示したい面」と camara の距離が1000離れていればいいと。これを汎用化するために、任意のfocus、zoomの場合にピクセル等倍になる距離を求められればいいのか。 大概こういう処理をする場合複雑に考えすぎて失敗するので、算数的な発想(むしろ勘)で ピクセル等倍になる距離 = camera.focus * camera.zoom - camera.focus という式をあてはめたら

  • note.x | [Papervision3D2.0] Viewport3D

    Papervision3D 2.0 の解析をちょっとずつ始めてみる。 とりあえず Viewport3D から。 これまでのバージョンだと、 var container:Sprite = new Sprite(); addChild(this.container); scene = new Scene3D( container ); てな感じでSpriteをビューポートに見立ててたのが、新たにViewport3Dとして実装されたと。 Viewport3DはSpriteを継承したクラスで、表示範囲のクリッピングと、表示範囲外ポリゴンのカリングを処理してくれる。Papervision3Dメモ#22で取り上げた、RectangleTriangleCullerの機能がここに結実といった感じ。 そんなこんなで、PV3D2.0からは、 var viewport:Viewport3D = new Vi

  • PV3Dの座標系について (note.x | Papervision3Dメモ #26)

    PV3Dの座標系について PV3Dのチートシートにワールド座標系の解説図が載ってて、これによると画面手前側が「+Z」奥側が「-Z」という、いわゆる「右手座標系」ってことになってる。確か公式にも「right-handed coordinate system」みたいな記述がされていたのを見た記憶がある。 これまで作った自分のデモのソースを見ると「camera.z = -500」ってな記述がほとんど。これは、PV3Dのサンプルコードの中でcameraオブジェクトの座標指定を「camera.z = -500」とかやってるものが多かったんで、何の疑いもなく「カメラの位置を画面手前側に移動してる」と思って、それに倣ってきたんだけどPV3Dが右手座標系ならこの解釈はおかしいということになる。今更すぎるけどPV3Dの座標系がどうなってんのか調べてみた。 worldAxis.swf(要:FlashPlaye

  • 1