no canvas

画面をクリックすると、別のモデルに変更します。

キーボードが使える場合は、

すべてのキー:回転停止、←→:回転、↑↓:前後、Enter:モデル変更、Space:回転開始

「ごく単純なモデル」と、「とても複雑なモデル」が、同じ1つのプログラムで描画されています。

このプログラムは、
・フレームワークや WebGL(グラフィックのハードウェアにアクセスする3DCG技術)を一切使っていません。
・難しい数学も基本的に使っていません。(難しいと言ったら回転の sin, cos くらいです)
できる限り簡単に書いた、手計算による迫力の 3DCG プログラムです。

ドラゴンのモデルを表示しているとき、よく見るとポリゴン同士の前後がチラチラと入れ替わっているのが見えます。
これはそれぞれのポリゴンが視点からどれくらいの距離にあるかを調べる際に、「ポリゴンの面の中心」をもとに
判定しているからです。回転しているモデルにおいてそのような方法で判断すると、
角度によっては視点からポリゴンの中心までの距離がポリゴン同士で長短入れ替わってしまうことがあります。
距離が離れているものは後ろに描き、距離が短いものは手前に描くので、チラチラ入れ替わることになります。
これを解決するには、面の中心ではなく、面の各画素それぞれで判断する必要がありますが、
そのためには3DCGのハードウェア(ICチップ)を利用する必要があります。(WebGLなど)