DirectX総合スレ (Part2)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/22 23:30:32ID:anobjZYP基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
テンプレは >>2以降で
0360名前は開発中のものです。
04/11/11 16:58:00ID:015ext2CQ1
裏表ポリゴンがあるモデルをXファイルで出力してカリングを設定して描画しているのですが
裏表のポリゴンが多ければ多いほどやはりカリングに掛かる時間は上がるのでしょうか?
カリングが計算して行なわれているということは知っているのですが具体的にどういった
計算が行なわれているのかご存知の方おりましたらよろしければご教授下さい。
Q2
先に述べた通りレースゲームを作っておりまして車とタイヤでXファイルを分けて描画
しているのですが左右のキーでタイヤだけが動くようにしています。
A(アクセル)を押せばタイヤの向きに合わせてその方向へ進めたいのですが方法を探して
いるところです。何か方法御座いましたらこちらもご教授よろしくお願い致します。
では失礼致します。
0361名前は開発中のものです。
04/11/11 17:03:08ID:PH+HlW+qA1 カリングは頂点計算の最後の結果を見て右回りか左回りかを調べるだけでは?
両面のポリゴンは逆にカリングされないか、されてもその後に裏側の表示であってもピクセル処理を省略できないから重いと思う
A2 タイヤの向きに力を加えてやればいい
ベクトルをかじる程度でも勉強してください
そのあと力学も少しかじれば悩むことなくすぐ実装できる
0362名前は開発中のものです。
04/11/11 17:05:28ID:q/wwQqLHならさぁ、XYZ座標のX,Y,Zって何だ?
0363名前は開発中のものです。
04/11/11 17:09:59ID:kxgknVhf仕事の依頼がある場合に利用するメッセージ。
0364名前は開発中のものです。
04/11/11 17:11:36ID:kxgknVhf分からなかったらここをよく読め。
http://www.shiseido.co.jp/uv-info/html/quiz_a.htm
0365名前は開発中のものです。
04/11/11 18:02:21ID:1kd+ooqA0366名前は開発中のものです。
04/11/11 18:56:31ID:ZfACieGEアルファベットの順番が U V W X Y Z であることに起因していると思う。
あと古い話で申し訳ないがN88BASICの頃、
キャラクタの座標をXYで記述するとき、移動慣性方向をUVで記述していた。
0367名前は開発中のものです。
04/11/11 19:18:24ID:1kd+ooqA別に意味は無いわけか。なるほど納得できそう。
0368名前は開発中のものです。
04/11/11 19:51:36ID:015ext2C0369名前は開発中のものです。
04/11/11 20:20:42ID:To5gX/4d0370名前は開発中のものです。
04/11/11 21:21:20ID:dO2W80Awおまえが言うなと
0371名前は開発中のものです。
04/11/11 23:26:23ID:iAi3pf6h360 名前:名前は開発中のものです。[] 投稿日:04/11/11(木) 16:58:00 ID:015ext2C
現在わたくしはレースゲームを作っております。
Q1
裏表ポリゴンがあるモデルをXファイルで出力してカリングを設定して描画しているのですが
裏表のポリゴンが多ければ多いほどやはりカリングに掛かる時間は上がるのでしょうか?
カリングが計算して行なわれているということは知っているのですが具体的にどういった
計算が行なわれているのかご存知の方おりましたらよろしければご教授下さい。
Q2
先に述べた通りレースゲームを作っておりまして車とタイヤでXファイルを分けて描画
しているのですが左右のキーでタイヤだけが動くようにしています。
A(アクセル)を押せばタイヤの向きに合わせてその方向へ進めたいのですが方法を探して
いるところです。何か方法御座いましたらこちらもご教授よろしくお願い致します。
では失礼致します。
368 名前:名前は開発中のものです。[sage] 投稿日:04/11/11(木) 19:51:36 ID:015ext2C
つうか中学程度の学力があれば普通想像つかないか?
0372名前は開発中のものです。
04/11/12 09:47:27ID:z3Qw9Dcg今、Direct3Dを使用しているゲームを動かしているのですが、そのゲームはフルスクリーンでしか起動できません。
どうしてもWindowモードで起動したいので、外部からHookしてWindowモードで起動させました。
すると何故かとても早くなってしまいます。
画面のリフレッシュレートを変えてみたりしたのですが、どうもうまくいきません。
ビデオドライバはNVIDIA GeForce FX 5200を使用しています。
Windowモードで起動した時とフルスクリーンで起動した時では何かが違うのでしょうか。。
すいません私全然知識がないので本当によく分かりません。
どうかご教授お願いいたします。
0373名前は開発中のものです。
04/11/12 10:01:31ID:/3BmI4D1こういうのってアレだな
テレビを勝手に分解しておいて
「テレビが映らなくなりました」って電気やに持っていくのと同じだよな
ぶっちゃけ作る側からすれば、そうことするなって感じだな
マジレスすると…いや、やめとく
そもそも板違いだし
0374名前は開発中のものです。
04/11/12 10:18:37ID:z3Qw9Dcgご解答ありがとうございます。
屁理屈というか言い訳になってしまうのですが、私のモニタは仕様でズーミングができません。
そのゲームの解像度は640*360で、私のモニタは1280*1024なのでフルスクリーンのままだと
縦長な状態でプレイする事になってしまいます。
その趣旨を伝えたメールをサポートに何回も送っているのですが一向に返事も来ません。
利用規約にゲームプログラムの改ざんについて何も書かれてないのもあり、やむを得ず
外部プログラムを使用してHookしてWin化したんです。ですから分解したのとは少し違うと思います。
チート・解析等をした訳ではありません。Win化したらとても早くなりました。
そこで、何故Windowモードとフルスクリーンではこのような違いが起こるのだろうと疑問を抱きました。
ゲームを普通にプレイしたいというよりは寧ろ、こっちの方に興味がそそられたのでゲ製板のDirectXスレ
に書き込ませていただきました。
自分が言ってる事は矛盾だらけだとは重々承知していますが、本当に何故こうなるのかがどうしても
知りたいのです。もしよろしければご解答よろしくお願いいたします。
0375名前は開発中のものです。
04/11/12 10:56:54ID:NYD9y17rパソコン初心者板総合質問スレッドvol.863
http://pc6.2ch.net/test/read.cgi/pcqa/1100164258/l50
0376名前は開発中のものです。
04/11/12 11:04:12ID:z3Qw9Dcgわかりました。移動します。
ありがとうございました^^
0377名前は開発中のものです。
04/11/12 12:32:21ID:uDQeIr6KそのゲームはVSync待ちだけでFPS調節をしてるんだろう。ただの手抜き。
もっとよく知りたきゃ『VSync ゲームループ』とかでぐぐれ。
0378名前は開発中のものです。
04/11/12 13:17:24ID:aTp/5UUj0379名前は開発中のものです。
04/11/12 17:51:57ID:TFHXxj58思ったらそういうことだったという経験がありました。
結局2種類のメインループを書きました。
0380名前は開発中のものです。
04/11/12 20:07:29ID:PUq/P71L>>その趣旨を伝えたメールをサポートに何回も送っているのですが一向に返事も来ません。
ここがもう…
0381名前は開発中のものです。
04/11/12 20:28:24ID:DZ0rtXyzお前みたいに上級者ぶってる奴も俺の中では同類項まとめにされてます。
0382名前は開発中のものです。
04/11/12 20:32:55ID:mm6jRjgC0383名前は開発中のものです。
04/11/12 21:00:21ID:FB/66TQ/PC初心者板に行って、モニタの縦横比の変え方を聞いてこい
しかし640*360の市販ゲームなんてあるのかね
0384名前は開発中のものです。
04/11/12 21:04:46ID:DZ0rtXyz馬鹿か?
>私のモニタは仕様でズーミングができません。
って書いてあるだろw
0385名前は開発中のものです。
04/11/13 00:49:38ID:AQp1aBxMまあGeForceならモニタに機能がなくてもいけるんだがな
0386名前は開発中のものです。
04/11/13 04:37:19ID:omKTaaEp640x360なんてヘンな解像度使ってたら、電子銃の位置ずらしたりしないと、黒い部分がどっかに大量にできそうだが。
0387名前は開発中のものです。
04/11/13 05:11:47ID:6qQuEmEx単に見た目の整合性を保つだけなら拡縮でいけるんじゃねぇの?
って感じは前々からしてた。
0388名前は開発中のものです。
04/11/13 08:47:40ID:IQjuE1nQ?
0389名前は開発中のものです。
04/11/13 15:10:26ID:wMrSKR31例えばソフト側では640*480固定で作ってて、それをビデオカードが勝手に1024*768に拡大してくれるとか、
逆にソフト側では1600*1200を想定して作っててビデオカードが勝手に1024*768に縮小してくれるとか?
っていうのなら385ですでに……
0390名前は開発中のものです。
04/11/13 15:48:25ID:LqTinsOLだからさ、ディスプレイのサポート状況ってのは関係無くするわけよ。
0391名前は開発中のものです。
04/11/13 17:01:17ID:wMrSKR31ハード的っていうのはディスプレイ側のこと?
もちょっと具体的にキボン
0392名前は開発中のものです。
04/11/13 17:10:47ID:LqTinsOLそうそう。
とりあえず、ハード側をディスプレイ、ソフト側をグラボとおいて考える。
現在の状況だととりあえずディスプレイとグラボのサーポート状況が一致してないと
サポートされないけどそうじゃなくてもいいんじゃないかって話。
0393名前は開発中のものです。
04/11/13 18:06:18ID:cHlvqR4kその場面を一時的に暗くする方法が思い浮かびません。フォグでは上手くいきませんでした。
0394名前は開発中のものです。
04/11/13 18:10:39ID:Xm4qPNF+0395名前は開発中のものです。
04/11/13 18:24:18ID:wMrSKR31_, ._
( ゚ Д゚) ・・・
0396名前は開発中のものです。
04/11/13 19:14:18ID:2sL69RnZ0397名前は開発中のものです。
04/11/13 23:51:26ID:Q7d/AZnx( ゚Д゚)<ポカーン
0398名前は開発中のものです。
04/11/14 00:14:13ID:P9K70kF6( ゚д゚)
(つд⊂)ゴシゴシ
(;゚д゚)
(つд⊂)ゴシゴシ
_, ._
(;゚ Д゚)
0399名前は開発中のものです。
04/11/14 04:33:08ID:R4BOzg9l知らないんだろうけど、プラグアンドプレイでとてつもなくキミの望む状況に近づいているんだよ。
便利さより不便さを感じることが多いかもしれんが、大昔の固定解像度のが良かったか?
0400名前は開発中のものです。
04/11/14 05:01:18ID:99Ik7aK20401名前は開発中のものです。
04/11/14 05:06:44ID:R4BOzg9l固定のやつなんて存在しないんじゃないの?
コンシューマ系の携帯機くらいだよ。PSPなら固定でやれるw
0402名前は開発中のものです。
04/11/14 06:47:30ID:99Ik7aK2固定のが存在するかって話にすり替わってないかそれ
0403名前は開発中のものです。
04/11/14 10:40:37ID:JPvao99jRADEON9600だけど一向にそんな気配はないよ。
0404名前は開発中のものです。
04/11/14 11:24:11ID:vlOsIEBy0405名前は開発中のものです。
04/11/14 11:40:54ID:EHnZA0OT0406名前は開発中のものです。
04/11/14 11:41:30ID:eXi4+6bvhttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=40&vew=437
0407名前は開発中のものです。
04/11/14 11:54:27ID:JPvao99jVSyncの話なんてしてないんだけど。
アホ?
0408名前は開発中のものです。
04/11/14 12:09:58ID:+q/zc4PHDX10では廃棄でしょどうせ。
0409名前は開発中のものです。
04/11/14 12:12:33ID:hCc7YYs/そんなものは最初から存在しない。
0410名前は開発中のものです。
04/11/14 12:16:07ID:SaHm4g1h0411名前は開発中のものです。
04/11/14 12:20:33ID:riMzYB860412名前は開発中のものです。
04/11/14 12:43:17ID:wa90D+sxシェーダーの意味を調べてから出直して来い
0413名前は開発中のものです。
04/11/14 12:52:58ID:hCc7YYs/好きにすればいい。
0414名前は開発中のものです。
04/11/14 13:22:36ID:JPvao99jじゃあ、ぶっちゃけ正式名称はなんていうんだ?
あのDirectXについてるウンコ。
0415名前は開発中のものです。
04/11/14 13:25:14ID:hCc7YYs/0416名前は開発中のものです。
04/11/14 13:40:44ID:JPvao99jって長いな。
いいんじゃねぇの?
固定シェーダーでも意味わかれば。
こだわるところなのか。
譲れないのか。そうか。
0417名前は開発中のものです。
04/11/14 21:37:27ID:i0WrbSbu2004(october)ではサンプル消されてたしな
0418名前は開発中のものです。
04/11/14 22:51:29ID:SaHm4g1hりする奴のせいで固定が消せなかったん
ではないでしょうか?みんながGefFX6800買えば解決で
す。晴れて固定は不要になります
0419名前は開発中のものです。
04/11/15 00:14:34ID:ay0ZJbdj彼はシェーダーが何を意味するのか理解してないから
譲れないんじゃなくて知らないだけ。
0420名前は開発中のものです。
04/11/15 00:25:27ID:tl/lMREx固定シェーダという物は無いよ
そこを「まぁ、通じればいいじゃね」って折角416が言ってくれてるのに(俺も同意)
またシェーダの原意に拘るのは愚か
0421名前は開発中のものです。
04/11/15 00:29:54ID:ay0ZJbdjシェーダーの意味が判ってれば、どっちでも通るって理解できるはずなんだが…
原意とか言っててなんでどっちでも通るか理解してから出直して下さい。
固定シェーダという単語にこだわってるのは>420
0422名前は開発中のものです。
04/11/15 00:56:42ID:5uc1ty6Yそういった話にならないか?
0423名前は開発中のものです。
04/11/15 01:07:52ID:C8q9fmz+0424名前は開発中のものです。
04/11/15 01:32:26ID:VWRch3OL0425名前は開発中のものです。
04/11/15 02:22:17ID:tl/lMRExいやテクニカルタームってそういうもんよ
0426名前は開発中のものです。
04/11/15 03:27:42ID:bbOAK3vh0427名前は開発中のものです。
04/11/15 03:53:28ID:wmdGIHyq相手に伝わらなければどれだけ熱弁してもNG
それだけの事じゃないの?
0428名前は開発中のものです。
04/11/15 05:10:57ID:QjRzgk4m0429名前は開発中のものです。
04/11/15 05:16:56ID:RCkApcN20430名前は開発中のものです。
04/11/15 05:47:19ID:oSqrLWaE固定機能パイプライン の検索結果のうち 日本語のページ 約 271 件中 1 - 41 件目 (0.65 秒)
0431名前は開発中のものです。
04/11/15 06:32:28ID:bpeXcaJkシェーダーと延ばしてる時点でシロウトなのは明白だろ。
0432名前は開発中のものです。
04/11/15 08:34:34ID:5uc1ty6Y"シェーダ" -"シェーダー" の検索結果 約 7,770 件中 1 - 10 件目 (0.16 秒)
0433名前は開発中のものです。
04/11/15 09:20:55ID:ukHzi1vZ0434名前は開発中のものです。
04/11/15 09:31:15ID:e4BEURlV0435名前は開発中のものです。
04/11/15 09:35:03ID:eB/P6OUL何を固定するシェーダーなんだ?
0436名前は開発中のものです。
04/11/15 12:44:08ID:j3+2qJVdちょっとどうかしてますよ。
ありがとうございました。
0437名前は開発中のものです。
04/11/15 13:13:47ID:IYH0QK760438名前は開発中のものです。
04/11/15 13:23:34ID:NLO0zp6Pもっとフレキシブルに対応しないと自分で自分の首しめるんじゃないのw
0439名前は開発中のものです。
04/11/15 14:41:51ID:bpeXcaJk0440名前は開発中のものです。
04/11/15 15:24:32ID:hXuSBCBQ0441名前は開発中のものです。
04/11/15 15:26:50ID:ovSB+ig+0442名前は開発中のものです。
04/11/15 16:04:53ID:9e/mmfO8エロい人にはそれが分からんのです。
0443名前は開発中のものです。
04/11/15 18:06:02ID:0joNhAgk(゚Д゚)ノ
| ⊃|
| |
⊂ノ〜
∪
0444名前は開発中のものです。
04/11/15 23:35:59ID:oSqrLWaE0445名前は開発中のものです。
04/11/16 10:55:13ID:mQtEJyx70446名前は開発中のものです。
04/11/16 15:50:00ID:s0SvFWiGこのスレのたしなみ
0447 ◆c.50Ky2eZQ
04/11/16 22:23:11ID:DXV97k4K私の環境では、下記の本や他のDirectXのサンプルで
フルスクリーン表示のサンプルを実行するとOSごと固まります(マウス、キーボードの入力を受け付けなくなる)
DirectXゲームグラフィックスプログラミング Ver. 2.0
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797329807/1100610050/250-9497108-9869848
こちらの本のサンプルでは動作します。
DirectX 9実践プログラミングI/O別冊
ttp://www.amazon.co.jp/exec/obidos/ASIN/4875934610/250-9497108-9869848
この他、DirectX9の入門ページなどのサンプルでもフルスクリーンだと固まってしましいます。
上にあげた2つの本のサンプルを比べていろいろ修正して試したところ、
D3DPRESENT_PARAMETERSの設定が問題であることが分かりました。
↑根拠は、I/O別冊のほうのD3DPRESENT_PARAMETERSの設定部分をコピペして、
動かない本のサンプルや入門ページのサンプルに貼り付けて実行したらフルスクリーンでも動作したからです。
この構造体の設定は入門書などでは決めうちで書かれているのですが、
本当なら実行環境のグラフィックカードの状態をチェックして適切に設定しないと
ダメという認識でいいんでしょうか。
※ところで、有料のゲームでも私の環境ではフルスクリーンで固まってしまって遊べないものが
あったりします(PSO BBなど)。もちろん固まらないゲームもあります。
そうしたゲームで環境のチェックなどを行っていないわけはないと思いますが、
D3DPRESENT_PARAMETERSの設定を決めうちで書いている可能性ってあるんでしょうか。
[環境]
自作機
OS: Windows2000
CPU: Athlon 1.0GHz
メモリ: 512MB
HDD: 120GB
グラフィックカード: GeforceFX5700
0448名前は開発中のものです。
04/11/16 22:25:38ID:esebxn7x0449 ◆c.50Ky2eZQ
04/11/16 22:41:32ID:DXV97k4Kやっぱりそうですか。
とにかく問題の個所が分かったので、書籍のサンプルや自分で作成するプログラムは
フルスクリーンでも動かせるようになったわけですが、
さすがに市販されてるゲームはどうにもならず・・・
ちなみに友人数人の環境で試してみたのですが、
自分の持っている本のサンプルとか、入門ページのサンプルで
フルスクリーンで固まるという現象は再現しませんでしたorz
ネットで検索してもフルスクリーンで固まるというのは全然出てこないので
うちの環境が特殊なのかもしれません。
0450名前は開発中のものです。
04/11/16 22:57:02ID:fcqxyC5lちなみにどのパラメータが原因だったの?
0451オレー
04/11/16 23:21:34ID:KvJj/Phk俺もオマエと非常に似た構成のマシンで、同じようなことがおきたぞ。
俺の場合は、ウィンドウモードでも固まったがな!
BIOSでAGP×8をAGP×2まで落としたら直った。
0452 ◆c.50Ky2eZQ
04/11/16 23:25:07ID:DXV97k4Kどのパラメータが悪いのかというところは詳細に調べてないのですが、
とりあえず下記のような差がありました。
○:フルスクリーンで動作した
×:フルスクリーンで固まった
○[DirectX 9実践プログラミングI/O別冊]
BackBufferWidth = 1024;
BackBufferHeight = 768;
BackBufferFormat = D3DFMT_X8R8G8B8;
BackBufferCount = 1;
MultiSampleType = D3DMULTISAMPLE_NONE;
MultiSampleQuality = 0;
SwapEffect = D3DSWAPEFFECT_DISCARD;
hDeviceWindow = g_hWindow; // ウインドウハンドル
Windowed = FALSE;
EnableAutoDepthStencil = FALSE;
AutoDepthStencilFormat = D3DFMT_UNKNOWN;
Flags = 0;
FullScreen_RefreshRateInHz = 0;
PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
×[DirectXゲームグラフィックスプログラミング Ver. 2.0]
BackBufferCount = 1;
Windowed = FALSE; // フルスクリーン表示の指定
BackBufferWidth = clientWidth; // フルスクリーン時の横幅
BackBufferHeight = clientHeight; // フルスクリーン時の縦幅
BackBufferFormat = d3ddm.Format; // カラーモードの指定
SwapEffect = D3DSWAPEFFECT_DISCARD;//
EnableAutoDepthStencil = TRUE;// エラー対策
AutoDepthStencilFormat = D3DFMT_D16;// エラー対策
0453 ◆c.50Ky2eZQ
04/11/16 23:32:38ID:DXV97k4K動作したほうの設定をそのまま動作しないソースへ貼り付け。
動作しないほうの設定はコメントアウトでビルドして実行すると
フルスクリーンで動作しました。
パラメータの1つ1つをこれからチェックしたいと思います。
>>451
ウインドウモードでも固まることがあるんですね・・・
現在AGP×4なんですが、AGP×2に落として試してみます。
0454名前は開発中のものです。
04/11/16 23:37:08ID:fcqxyC5l違うのはAutoDepthStencilFormatくらいに見えるけど
0455名前は開発中のものです。
04/11/16 23:39:04ID:9Fl+6rlR下の方は FullScreen_RefreshRateInHz 書いてないけど
初期化されてなくて D3DPRESENT_RATE_DEFAULT D3DPRESENT_RATE_UNLIMITED
EnumAdapterModes のどれにも当てはまらない数字が入ってないかい?
0456名前は開発中のものです。
04/11/16 23:40:06ID:fcqxyC5l>BackBufferFormat = d3ddm.Format; // カラーモードの指定
d3ddmはGetAdapterDisplayModeで取得してると思うけど
フルスクリーンの場合はカラーモードはこちらか指定するから
>BackBufferFormat = D3DFMT_X8R8G8B8;
でとりあえずいいと思う
0457 ◆c.50Ky2eZQ
04/11/16 23:44:43ID:DXV97k4K2つとも値の設定の直前で下記を実行しています。
[DirectX 9実践プログラミングI/O別冊]
ZeroMemory(&g_D3DPP, sizeof(g_D3DPP));
[DirectXゲームグラフィックスプログラミング Ver. 2.0]
ZeroMemory(&m_D3DPP, sizeof(D3DPRESENT_PARAMETERS));
>>455
差分ではなく、すべて載せました。
I/O別冊のほうはいろいろ設定されているのですが、
もう1冊のほうは設定していないパラメータが多いですね。
FullScreen_RefreshRateInHzは指定されていないです。
0458名前は開発中のものです。
04/11/17 00:20:47ID:F/vQq9xHPresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
を加えてみ。それでSDKサンプルと同じ記述。
0459 ◆c.50Ky2eZQ
04/11/17 00:38:16ID:l0UutMMZその1行を追加して実行してみたら動きました。
下のほうでは、PresentationIntervalを明示的に指定していない(0クリアされている)ので、
D3DPRESENT_INTERVAL_DEFAULTとかになっているのでしょうか。
(0だからとりあえずデフォルト値になっているのかなと推測)
D3DPRESENT_INTERVAL_IMMEDIATE以外のD3DPRESENT_INTERVAL_*パラメータは
最大N回の垂直帰線間隔を待つという説明がI/O別冊に載っていますが、これが問題ということですね。
■ このスレッドは過去ログ倉庫に格納されています