コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
More10 ◆J1/MCFrfgp6.
2018/11/9 22:15
質問
3Dポリゴン表示の仕組み
基礎から実際に簡単な物を動かすまで教えてくれると助かります。4が出たら3Dに手を出してみたいなーなんて思ったり。

コメント

アバター
こういち 2018/11/10 7:14 ◆ou0jbJnEJ0Kb
基本的な仕組みは
透視投影と言い、
遠くにあるものは小さく描画する
です。
その具体的な式は
点の座標をx,y,zとし、スクリーンのz座標をs、変換後の座標をx',y'とすると、
x'=x*s/z
y'=y*s/z
で表されます。
スクリーンのz座標はカメラで言うところのズームで、大きくなるとズームインします。
アバター
More10 2018/11/10 14:49 ◆J1/MCFrfgp6.
とりあえずは理解したのですが、そこからカメラの角度、位置を動かすにはどうすればいいですか?
アバター
SatoshiMcCloud 2018/11/10 15:08 ◆Z1qfV11i63Jr
表示したいもの全てが一斉に同じ方向に同じだけ移動すれば、あたかもカメラが動いたように見えます。
アバター
HUCU 2018/11/10 16:03 ◆B7lOIJDWuOqi
STSMKRUD兄貴のPLANE2SOLIDは凄かったゾ…
アバター
こういち 2018/11/10 16:28 ◆ou0jbJnEJ0Kb
カメラを回転、移動させるときは、カメラのx,y,z方向の単位ベクトルを用意して、
物体座標とカメラ座標の位置ベクトルとの内積をとるとカメラ座標系に変換されます。
アバター
More10 2018/11/10 16:42 ◆J1/MCFrfgp6.
>>こういちさん

すみません、調べたのですがベクトルと内積の意味がよく分かりませんでした。良ければ簡単に説明してくれませんか?
アバター
くらげ 2018/11/10 17:42 ◆wwGQuv.PrBB8
大きさと向きを持った量なんて言われてもねぇ…
自分には分かりませんヨオオオオオ
アバター
こういち 2018/11/10 19:03 ◆ou0jbJnEJ0Kb
ベクトルは大きさと向きを持つ量。つまり矢印です。
特に位置ベクトルは座標の差と思うと分かりやすいかも。
物体座標とカメラ座標の位置ベクトルって言ったらカメラの座標から物体の座標までの矢印って意味かな。
単位ベクトルは大きさが1のベクトルであります。
内積はベクトル同士の掛け算のうちの1つです。
特に任意のベクトルと単位ベクトルの内積をとるとそのベクトルの単位ベクトル方向の大きさが得られます。
アバター
おちゃめ 2018/11/10 20:44 ◆jH1opV6FnGyx
3Dポリゴン表示は仕組みさえ分かればそれほど難しくはないのですが、初心者にとっては乗り越えなければいけない壁も少なくありません。
だから、ポリゴン表示プログラムよりもハードルが低いワイヤーフレーム表示プログラムにまずは挑戦してみてはいかがでしょうか。

ワイヤーフレームでは線(GLINE)によって立体を表現しますが、ポリゴンではそれが面(GTRI)に変わるだけです。その面の表示をする際にベクトルの内積や外積が必要になるためワイヤーフレームであればベクトルの知識が無くても作ることができます。
したがって、ワイヤーフレームは回転処理を行わなければ初心者でも簡単に作ることができます。(回転を行う場合は行列の知識が必要だけど公式通りに作ればいいのでそれほど難しくはない)

ちなみに私が作ったプチコン3号本「プチコン3号 3Dポリゴン入門」(上記写真参照)では、まず最初にスプライトを使った擬似3D表示プログラムから入り、それをワイヤーフレーム表示プログラムへとつなげてポリゴン表示プログラムへと発展させています。

プチコンmkII用のポリゴン表示プログラムであれば私のサイトにプログラムリストとその解説を記述しています。
http://ochameclub.web.fc2.com/petitcom/polygon.htm

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -