気持ちの整理と情報の整理

マンツーマンでも難しい3DプログラムをYahoo知恵袋で聞くなよ。
まず、これが最初に言いたい。


3DプログラムのハローワールドはOpenGL(オープンジーエル)で
書かれることが多いけれども、その前に建築製図の知識が必要。
DirectX(ダイレクトエックス)を使うには、いろいろと準備が必要。
OpenGLDirectXを使うと、分かっていなくても画面は出る。
それで、ゲームを作ろうとすると、分かっている必要がある。
分かる前に、分かってないなりの努力として、何か手をつける。
何も分からないから、まず写経のようにDirectXをありがたがる。
これも、入り口としてはアリなのかなと、考え直しました。
3Dの数式が理解できるなら、VisualBasicでLine関数を使えば、
ワイヤーフレームモデルが作れるから、それで充分でしょう。


「知ったかぶりが〜」発言が反感を買ったのだろうと思いますが、
何も知らないであろう相手に、基礎技術ではなく、専門用語を語る、
そういうことを、放っておかないのは、同業者としての仕事です。


線による製図と、遠近法を使った立体図の補正。
面の色づけと、手前にある面のせいで見えなくなる部分を隠す処理。
立体模型で再現が難しいものを、絵を立てて、似せてみせる技術。
平らな面の図形で、ぎこちない絵を、ぼかして自然に見せる技法。
そこから、
ワイヤーフレーム、隠面消去、マッピング、シェーディングと続き、
そのための手段としてOpenGLDirectXが出てくるのが筋でしょう。
「どうやったら、作れますか」という漠然とした質問に、
DirectXとVisualC++を使います」というのは筋は合っていても、
大切な過程の説明が全て抜けている。


それで、3Dゲームを作りたいけれど、どうすればいいか。
「魔法のような簡単な方法は無いから、聞いて簡単に片付けるな」
そういうふうにしめくくって、予定していたハローワールドは無し。

スターフォックスの前にゲームボーイのエックスを作らないと・・・
DirectXのカメラって向きが固定されているからFPSが作りにくい。
カメラを一人称で動かそうとすると回転行列の知識が必要になるな。
(SetOrientation関数でZ軸とY軸を設定すればカメラ向き変わった)