投稿
イーブン rein-2000
ポリゴンを目指す人は 必ず行列でつまずくって言いますよね 言いませんか?そうですか… つまずきました……… まったくわからないです。 とりあえずデータから 回転できないから実質平面の ワイヤーフレームは 描けたのですが……… 回転がどうもわからなくて 誰か詳しい人教えてくれませんか?
2そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
詳しくはないのですが、一応やったことはあるので入り口のお手伝いくらいなら出来るかも知れません……… 具体的にどんな感じでやろうとしてますでしょうか?私は確かクォータニオンとか言うヤツを使って作ったのですが、なんにせよ使い方の意味だけ理解して、具体的な計算の公式とかは丸ごとブラックボックスにして利用するのが、進め方として多分一番やり易いと思います。
0そうだね
プレイ済み
返信[2]
親投稿
イーブン rein-2000
えーとですね、 今やろうとしてるのは、 ワイヤーフレームですね。 まぁ、最初なんで立方体なんですけど ZバッファとかZソートとかの 描画方式は決めてないです。 単純にワイヤーフレームなので、 カメラから見えないであろう部分を 隠す必要は無いので…
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
ワイヤーフレームということは、頂点だけ回転させればいい感じですね。 そもそもどやったら回転ができるのかが分からないというような状態でしょうか?
0そうだね
プレイ済み
返信[4]
親投稿
イーブン rein-2000
画面写真です。 回転ができないので もはや平面…
0そうだね
プレイ済み
返信[5]
親投稿
けい kei0baisoku
うん………ゼルダとかに出てくる通れないブロックに似てますね………(・ω・) 座標は三次元で待ってますでしょうか? これだけなら本格的な事するより単純な回転だけ加えた方が良さそうですね。 とは言え文章での説明はちょっと厳しそう……… 三角関数で平面を回転させるのは分かりますでしょうか?もし分かるなら応用でこいつの各頂点を水平にぐるぐる回すとかは行けそうな気がします。
0そうだね
プレイ済み
返信[6]
親投稿
ゆうたん yu-tan-sama
かつて、睡眠学習で覚えたおぼろげな記憶にアフィン変換という単語が… もう単語しか記憶に残ってないや
0そうだね
プレイ済み
返信[7]
親投稿
イーブン rein-2000
ちゃんと座標は三次元ですよ。 座標だけは(笑) スクリーン座標への変換式は SX=TX/TZ*40 SY=TY/TZ*40 を使っています。 これでいいのか、悪いのか。 悪いから回転しないんですけどね…
0そうだね
プレイ済み
返信[8]
親投稿
イーブン rein-2000
三角関数で少し グルグルしてきます。 (実験的要素多数。)
0そうだね
プレイ済み
返信[9]
親投稿
けい kei0baisoku
OK!(^O^) とりあえず試して見るのは大事です。 もし二次元の回転も怪しそうならまずそっちをマスターした方が断然良いです。理屈がわかったら、今の三次元の表示への応用の仕方を考える。 あ、スクリーンへの変換は基本的にそれで構わないと思います。回転で、元の{X,Y,Z}の座標を動かします。 そして睡眠学習でアフィン変換覚えるとは恐るべしw アフィン変換は回転の計算とはまた少し違うぽいですね。
0そうだね
プレイ済み
返信[10]
親投稿
イーブン rein-2000
回転こそしたものの ポリゴンデータがおかしくなった(笑) これは今、平面の四角形を 回転させてる画像なんですけど ねじれて八の字になってます。 なんでこうなったんだろう?
0そうだね
プレイ済み
返信[11]
親投稿
ヒロブミ hirobumi-mmo
Zの変換がうまくいってないのが原因ですね アフィン変換は回転拡大縮小平行移動が可能なので回転も行けます。 Zの取り扱いについてはZバッファを扱うには処理速度が不足(解像度100x100ですら画面の3分の1に重なりがあるだけで1ループ中に3000回の条件分岐が発生)しているのでZソートなどの方が無難です。
0そうだね
プレイ済み
返信[12]
親投稿
けい kei0baisoku
具体的に何処が原因かピンと来なかったら、計算過程と結果をPRINTやDIALOGで確認するのがオススメです。 あらかじめ自分でシミュレートして正しい結果を把握しておき、どこから間違っているかを絞りこみます。
0そうだね
プレイ済み
返信[13]
親投稿
自分は詳しいとは口が裂けても言えないレベルではありますが。 「三次元空間でアフィン変換→透視投影」 などと複数のことに初手から挑もうとすると難易度が跳ね上がるので、課題をブレイクダウンすることをお薦めします。 ・平面上での回転 ・3次元空間上での回転&平行投影 ・3次元空間上での回転&透視投影 といった感じでステップを踏むと宜しいかと。
1そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
私はプチコンmkIIでワイヤーフレームやポリゴン表示を行うプログラムを作りました。原理が分からなくても公式をそのまま当てはめてやればいいし詳しく知りたければ「プチコン ポリゴン」などで検索すればよいと思います。
0そうだね
プレイ済み
返信[15]
親投稿
べー mmmggg
行列でつまずいたというのは 数学としての行列の積が分からないということですか? 三次元座標に行列をどう使えばいいか分からないということですか?
0そうだね
プレイ済み
返信[16]
親投稿
イーブン rein-2000
行列自体がよくわからん(笑) パソコンで調べたりしたけど ページによっていろんな解釈や 説明がしてあって……… 読めば読むほどわからなくなって しまう矛盾した状態になってきたので 質問させていただきました。
0そうだね
プレイ済み
返信[17]
親投稿
けい kei0baisoku
行列そのものを勉強するなら、まず分かりやすいどこか一つに絞って読んでみた方が良いかも知れませんね。 あと、行列はあくまで計算の「手段」であって、三次元表示そのものとは別なのを意識して勉強した方が良いです。感覚を掴むために一度は自分で計算もしてみると良いですが、暗記したり、なぜそのような計算をするのかなどは気にしない方が良いです。 色マジックで絵を描くときに「どうしてマジックは鼻にツンと来る成分でできてるのだろう」というのを気にする必要が無いのと一緒です。 計算のための道具だと割りきって理解、利用しましょう。
0そうだね
プレイ済み
返信[18]
親投稿
べー mmmggg
行列の掛け算はイメージで覚えると簡単です、画像を見てください(伝わるといいな) あと注意する点は A*B=B*A は成り立ちません なのでその変換行列はどっちからくっ付ける用なのか意識する必要があります。また (A*B)*C=A*(B*C)は成り立つので複数の変換行列をまとめておいてから最後に座標と掛け合わせることができます
0そうだね
プレイ済み