以下の内容はhttp://javaappletgame.blog34.fc2.com/blog-entry-93.htmlより取得しました。


スポンサーサイト

[ --/--/-- --:-- ] | Comment(-)

3Dモデルをディスプレイに表示するまでの手順(レンダリング)の説明

前回はメモ書きでしたが今回はちゃんと解説ということで。。。

とりあえずタイトル通り3Dモデルをディスプレイに表示するまでの手順
をなるべく簡潔に解説します。

3D表示をするためにはまず3Dのモデルが必要になります。
3Dのモデルは頂点と面で構成されています。
今回はこんな三角形にしました。
3D

Z方向は全て0です。

座標系は図のようにYが上方向、Xが横方向、Zが奥行き方向です。
3D


とりあえずモデルは準備できました。
次に、モデルを写すカメラ(視点)を用意しなくてはなりません
そしてモデルの座標をカメラから見た座標に変換します。
3D

そして最後にこのモデルを・・・
Z軸方向でつぶします!
画面は2Dなので奥行き(Z軸でしたよね)は関係ありません。
するとZ方向がなくなって事実上の2Dになりました
後はこれをそのままディスプレイに表示するだけです。


なんとなくどうやっているかわかりましたでしょうか?
今までのことをまとめると、
3D座標上にカメラを置いて写真を撮り、それを表示する
ということです。

しかしこれには膨大な量の計算が必要になります。
それを高速で行うのがGPU(グラフィックスボード)です。
そしてそのGPUに命令を送るのがDirectXやOPENGLといったライブラリなわけです。
GPUにレンダリングをしてもらうことをハードウェアレンダリングといいます。

しかしJavaからはGPUを操作できないので、この処理をCPUにやってもらうわけです。
これはソフトウェアレンダリングといいます。
GPUは描画処理専用に作られていますが、CPUは描画専用ではありません。
なので、かなり重くなるわけです。
最近ではCPUもそれなりの性能になってきたので、大量のポリゴンを表示したりしない限りは特に問題はないでしょう。

________________________________________

現在この3D表示をするプログラムを製作中です。
開発はオープンソースにしたいと思っています。
[ 2010/02/12 11:05 ] Java | Comment(2)



以上の内容はhttp://javaappletgame.blog34.fc2.com/blog-entry-93.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14