FPSを作ってみる@wiki
03)
最終更新:
slice
-
view
(2009/03/30)
またモデリング作業。少しは上手くなってればいいが。
な~んかすぐテクスチャが歪んでしまってUV座標設定がムズイなあと思ったら
チェック模様のテクスチャでUV座標の確認してないからだと云う
至極当然な事に今更気づいた。今まで適当にやってたからなぁ。
な~んかすぐテクスチャが歪んでしまってUV座標設定がムズイなあと思ったら
チェック模様のテクスチャでUV座標の確認してないからだと云う
至極当然な事に今更気づいた。今まで適当にやってたからなぁ。
なんせ「何とか入門」系の本買っても結局読まない人なので独学です。
主な理由は興味のある項目をやりたいから。キーボードの横で本開くのがめんどくさいのもある。
主な理由は興味のある項目をやりたいから。キーボードの横で本開くのがめんどくさいのもある。
ちなみにプログラミングも気合で独学です。まあ今はネット環境がありますからね。
下手な本よりネットの方がわかりやすかったりするし。
一番良いのは近くに図書館がある事だけど。
GameProgrammingGemsシリーズとかは分厚いのでかさばるのが嫌なので
(デカくてそもそも本棚に入らなかったり)
最近はわからない事はネットで済ませてる。
ダウンロード販売みたいに紙よりちょっと安くて全部オンラインで回覧できればいいな。
常時接続が一般化してるから個人的には無断コピー問題含めてオンラインでしか見られなくても構わない。
万が一システムのサービスが終了する時に何かしらサポートしてくれればOK
サーバー運営費?そんなもの知らん。
下手な本よりネットの方がわかりやすかったりするし。
一番良いのは近くに図書館がある事だけど。
GameProgrammingGemsシリーズとかは分厚いのでかさばるのが嫌なので
(デカくてそもそも本棚に入らなかったり)
最近はわからない事はネットで済ませてる。
ダウンロード販売みたいに紙よりちょっと安くて全部オンラインで回覧できればいいな。
常時接続が一般化してるから個人的には無断コピー問題含めてオンラインでしか見られなくても構わない。
万が一システムのサービスが終了する時に何かしらサポートしてくれればOK
サーバー運営費?そんなもの知らん。
(2009/03/28)
ゲーム製作に戻ったと思いきや.....いや戻ったんだけど
作業が煮詰まるとやっぱりSSEやってたりする。
で、ベクトル演算をSSE化して速度比較実験してみたりする。
作業が煮詰まるとやっぱりSSEやってたりする。
で、ベクトル演算をSSE化して速度比較実験してみたりする。
わかった事はSingle Instruct Multi Dataの名の通り沢山のデータを纏めて処理する場面でなければ効果が無いばかりか
逆に遅くなる事がしばしばあるって事かな。当然と言えば当然だけど。
(少なくとも自分が持ってるCPUはAMD64なので、その場合ね。SSE関連はIntelCPUより遅かった気がする。
でも効果が薄いのは変わらないだろう)
掛け算と足し算の塊である行列の積算だったら単発でも効果あるかもしれない。
ベクトルと行列の積算は、ある程度纏めないと厳しそうだ。
SSEの2までは水平演算は滅法弱い。てか弱すぎる。
例としてベクトル内積は余計遅くなるからやめとけっていう結論。
逆に遅くなる事がしばしばあるって事かな。当然と言えば当然だけど。
(少なくとも自分が持ってるCPUはAMD64なので、その場合ね。SSE関連はIntelCPUより遅かった気がする。
でも効果が薄いのは変わらないだろう)
掛け算と足し算の塊である行列の積算だったら単発でも効果あるかもしれない。
ベクトルと行列の積算は、ある程度纏めないと厳しそうだ。
SSEの2までは水平演算は滅法弱い。てか弱すぎる。
例としてベクトル内積は余計遅くなるからやめとけっていう結論。
ぶっちゃけその行列の積でさえAMD64だと
下手にアセンブラ使うよりD3DXMatrixMultiply()でいいと思う。計測したら殆ど時間同じ。
うん、なんだろうね。まあいいや。
ちなみにSSEでどう組んだかっていうと
http://labo.xo-ox.net/article/85592080.html#more
に書いてある組み方とほぼ同じだった。
で、両方1億ループ程させてtimeGetTime()で時間計測&比較した。
下手にアセンブラ使うよりD3DXMatrixMultiply()でいいと思う。計測したら殆ど時間同じ。
うん、なんだろうね。まあいいや。
ちなみにSSEでどう組んだかっていうと
http://labo.xo-ox.net/article/85592080.html#more
に書いてある組み方とほぼ同じだった。
で、両方1億ループ程させてtimeGetTime()で時間計測&比較した。
確かどこぞのCore2Duo E6600対Athlon64X2 5600+のベンチマーク対決うんたらかんたらのページに
SSEベンチのグラフがあって、IntelCPUはAMDより倍くらい早くなかったっけなあ・・
それならSSE使う意味があるかも。
SSEベンチのグラフがあって、IntelCPUはAMDより倍くらい早くなかったっけなあ・・
それならSSE使う意味があるかも。
(2009/03/25)
SSEの続き。
やっぱアセンブリ言語は好かんというか、苦手だな~
まあ行列の積算は出来たけど。
そしたら後にとあるページにコード載ってて殆ど同じだったり。まあ気にしない気にしない。
(アセンブリ言語で組む練習という意味も含めて)
やっぱアセンブリ言語は好かんというか、苦手だな~
まあ行列の積算は出来たけど。
そしたら後にとあるページにコード載ってて殆ど同じだったり。まあ気にしない気にしない。
(アセンブリ言語で組む練習という意味も含めて)
...とまあちょっと寄り道したけど本筋に戻ろうか。
(2009/03/24)
ゲーム製作はちょっと足踏みしてSIMD命令の使い方を調べていた。
まあ今製作中のFPSではSSE2までは使わないけど必須スペックはSSE1が実装されてるCPUになる予定。
要するにPentiumIIIくらいかな?
GPUに関してはオンボードでサクサク動くのが目標
頂点シェーダー2.0まで、ピクセルシェーダーは使わない方向で。
(頂点シェーダーはCPUで処理してもそんなに遅くないみたいだから)
まあ今製作中のFPSではSSE2までは使わないけど必須スペックはSSE1が実装されてるCPUになる予定。
要するにPentiumIIIくらいかな?
GPUに関してはオンボードでサクサク動くのが目標
頂点シェーダー2.0まで、ピクセルシェーダーは使わない方向で。
(頂点シェーダーはCPUで処理してもそんなに遅くないみたいだから)
ただ今時のオンボードってピクセルシェーダー2.0が遅いながらも動くので余裕あれば使うかも。
リアルタイムシャドウやバンプマップとかやりたい。
そんな感じで、まだ絵に描いた餅ならぬスペックの話でした。
リアルタイムシャドウやバンプマップとかやりたい。
そんな感じで、まだ絵に描いた餅ならぬスペックの話でした。
話を戻して、SSEの基本的な命令文はマニュアル見ながら使える様になった
行列の積和なんかはすぐにでも実装できそうなんでやってみようかな
行列の積和なんかはすぐにでも実装できそうなんでやってみようかな
(2009/03/22)
間が空いた。
モデリングの練習続きで、もう一つある物のモデルを作った。
さてぼちぼち動画でも作るべ~と思って使うモデルをエクスポートしたら・・・そのうちの一つが
上手く表示されない。
面が裏返ってるパーツもあったり関節の向きが微妙に違ってたり。
他のモデルはちゃんと表示されてるが一つだけってのがもう。
今までは問題なかったんだから今回の不具合は関節を色々いじってる時に変な変換かましたからで、
多分関節を構成しなおせば直るんだろ~な~なんて思ったが、
そんなことでは根本的な解決にならんので原因解明に半日ほど。
その間ずっとエクスポータのソースとにらめっこ -> 表示テスト -> ああでもないこうでもないの繰り返し。
モデリングの練習続きで、もう一つある物のモデルを作った。
さてぼちぼち動画でも作るべ~と思って使うモデルをエクスポートしたら・・・そのうちの一つが
上手く表示されない。
面が裏返ってるパーツもあったり関節の向きが微妙に違ってたり。
他のモデルはちゃんと表示されてるが一つだけってのがもう。
今までは問題なかったんだから今回の不具合は関節を色々いじってる時に変な変換かましたからで、
多分関節を構成しなおせば直るんだろ~な~なんて思ったが、
そんなことでは根本的な解決にならんので原因解明に半日ほど。
その間ずっとエクスポータのソースとにらめっこ -> 表示テスト -> ああでもないこうでもないの繰り返し。
未だに3ds maxがどういう座標管理してるか、モディファイヤがどうとかよくわからんです。
これで出力できてるから、いいでしょみたいな感じで通してるけど
いつかはポリゴン編集支援プラグインを作ってみたいな。
その前にマトモにモデリングできるようになるのが先だけど。
これで出力できてるから、いいでしょみたいな感じで通してるけど
いつかはポリゴン編集支援プラグインを作ってみたいな。
その前にマトモにモデリングできるようになるのが先だけど。
でまあ、結局直りました。
ノードの行列を取得する関数が一箇所だけ違った。
偶然今まではそれでも問題なかっただけだった。
ノードの行列を取得する関数が一箇所だけ違った。
偶然今まではそれでも問題なかっただけだった。
(2009/03/12)
久々にトップページの画像を変更。またSTGだけど勘弁して。
最近何やってるかって~と、バックグラウンドでマップの計算するとか
モーションのエクスポータに特定の区間のみ出力する機能つけたり
(具体的にはキーフレームがグループ選択されてるとその区間だけ出力するんだけど
その選択されてる区間取得がまたこれが手間取りまして・・)
あとデバッグ文字列出力ウィンドウの実装。
今までVisualStudioの出力ウィンドウに出してたけどゲーム中にオーバーレイ表示すると
フルスクリーン時でも見えて便利だよねという発想。
将来的にはデバッグメッセージの属性設定して特定のメッセージだけ表示、なんて機能も実装するつもり。
最近何やってるかって~と、バックグラウンドでマップの計算するとか
モーションのエクスポータに特定の区間のみ出力する機能つけたり
(具体的にはキーフレームがグループ選択されてるとその区間だけ出力するんだけど
その選択されてる区間取得がまたこれが手間取りまして・・)
あとデバッグ文字列出力ウィンドウの実装。
今までVisualStudioの出力ウィンドウに出してたけどゲーム中にオーバーレイ表示すると
フルスクリーン時でも見えて便利だよねという発想。
将来的にはデバッグメッセージの属性設定して特定のメッセージだけ表示、なんて機能も実装するつもり。
という感じでなんだかんだやってるけど、それだとスクリーンショット的にはネタが無いですよね。
.......そういうことです。
.......そういうことです。
(2009/03/10)
昨日は全然作業がはかどらなかった・・・
今はカメラ視点の滑らかな切り替え処理で詰まってる。
仕様決めはしたことはしたがプログラムが、さっぱり。
今はカメラ視点の滑らかな切り替え処理で詰まってる。
仕様決めはしたことはしたがプログラムが、さっぱり。
(2009/03/04)
ええと、今日から進捗状況のページは新しい記事が上になるように書く予定です。
その方が見やすいから。過去の記事も気が向いたら並べ替えしてくつもり。
まあ見てる人居なそうだから気楽にやろうじゃないか。基本的に自分用の作業記録ページなので。
ちなみに今まで「ですます調」と「だ。である調」が混ざった文章書いてるけど、意図的にそうしてます。
論文でそんな事すると偉い人の顔面パンチが飛んでくるだろうな。うん。
その方が見やすいから。過去の記事も気が向いたら並べ替えしてくつもり。
まあ見てる人居なそうだから気楽にやろうじゃないか。基本的に自分用の作業記録ページなので。
ちなみに今まで「ですます調」と「だ。である調」が混ざった文章書いてるけど、意図的にそうしてます。
論文でそんな事すると偉い人の顔面パンチが飛んでくるだろうな。うん。
訳ありシューティングのページをFPSと別に分けようかと思ったけど分ける程のボリュームがないのでやめた。
ついでにFPSのページなのにトップページの画像がシューティングなのどうなの?って疑問もあるけど
FPSのネタがないので保留。
ということで今月も頑張りますよ、と。
ついでにFPSのページなのにトップページの画像がシューティングなのどうなの?って疑問もあるけど
FPSのネタがないので保留。
ということで今月も頑張りますよ、と。