アーカイブ

2008 年 1 月 のアーカイブ

[AS3D #1] 自作 3D ライブラリを Snippets にコミットしました

Papervision3D や Sandy など優秀な 3D ライブラリがある中、自学のため 3D ライブラリを作っているのですが、ある程度の形が出来たので Snippets にコミットしてみました。Snippets の AS3D からチェックアウトして試していただけるとありがたいです。

デモはこちら

まだまだ上手く動いてないところや未実装な部分も多く、実用的ではありませんが・・・。

コードは下記の通り。

続きを読む…

カテゴリー: Flash (ActionScript) タグ:

[Papervision3D #1] テクスチャとシェーディングの同時適用法

Papervision3D で少し遊んでみました。本来ならテクスチャとシェーディングは同時適用できない(どちらもマテリアルのため)ですが、BlendMode を活用して同時適用してみました。

1/27 追記:
嘘でした、ごめんなさい。ShadedMaterial で実現できるようです。今日も迷子さんで詳しく解説されていますので、そちらをご参照ください。あー、自分嘘ばっか。もう知ったかぶりはしません・・・。

デモはこちら

シェーディングを施すと一気に質感が良くなりますね。Papervision3D のシェーディングは多分擬似だと思うのですが(擬似じゃない?自分の頭じゃ分かんない)、それにしても良く出来てるなぁ。以下はドキュメントクラスのコード。モデルデータとテクスチャは各自ゲットしてください。あと、GreatWhite (3.12.07) でパブリッシュしています。

コードは下記の通り。

続きを読む…

カテゴリー: Flash (ActionScript) タグ:

[ASde3D #10] テクスチャマッピング

なかなか時間が取れずに進んでませんが、自作 3D にテクスチャマッピング機能を付けました。まだまだおかしいところがありますが、一応動いているので載せてみます。

デモはこちら

透視補正が出来ていないので平面の方はゆがみまくりですが、テクスチャ + グーローシェーディングです。Away3D は透視補正を実装してるので中身を覗いてみたんですが、複雑過ぎて何をしてるのかさっぱり・・・。カリングといい、透視補正といい、ピクセル処理が軽くなってくれれば、資料も多いしこんなに苦労しないんだろうなぁ。

カテゴリー: Flash (ActionScript) タグ:

[3D Tips #1] ベクトル

3D の基礎知識として絶対に欠かせない「ベクトル」や「行列」。今回はベクトルについて。

ベクトルは大きさと方向を持った量のこと。

2 次元のベクトルの場合は、<x, y> 2 つの成分を持ち(厳密には、どんな成分を持たせるかは実装者次第で、n 次元のベクトルは n 個の成分を持つというだけ)、 AS でいうところの Point クラスのようなもの。Point クラスでいえば、大きさは length メソッドで求まり、方向は x, y 成分の各数値になる。ただ、3D で扱うベクトルは 3 次元なので <x, y, z> 3 つの成分を持つ独自のクラスを作る必要がある。この時、持たせておくクラスメンバは下記の通り。

続きを読む…

カテゴリー: Other タグ:

[3D Tips #0] 始めに

AS で 3D をする際に必要な知識をエントリーしていきたいと思います。目的としては、自分用の備忘録として、副次効果で他の人の参考になればという感じです。僕自身は高校を中退して高校数学の基礎知識がほぼ皆無なため、数式等の詳しい説明は出来かねますが、参考サイトへのリンクを貼ってごまかすことにします。Math.sin の中でやってる計算なんて殆どの人が分からないのと同じで、必要なのは使えることだと思うので。間違いなどが結構出てくると思うので、詳しい方からの突っ込み大歓迎です。

カテゴリー: Other タグ:

[ASde3D #9] カメラ実装(各種変換行列)

新年明けまして、おめでとうございます。せっかくの連休で時間があるので、自作 3D ライブラリにカメラを実装しました。

デモはこちら

ジオメトリパイプラインっていう、ワールド変換 → ビュー変換 → 射影変換 → ビューポート変換の実装がかなり大変だったのですが、ここの記事がとても分かりやすく参考になりました。ホントに感謝。現在は平行光源しか実装出来てないんで、スポットライトとかも実装したいです。その前にテクスチャも実装しないとなぁ。そこまで出来たら公開してみるのも面白いかも。

そんな感じで、本年もどうぞよろしくお願いいたします。

カテゴリー: Flash (ActionScript) タグ: