■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

鬱だ氏のう DirectX (Part 4)
751 名前:名前は開発中のものです。 :02/06/24 22:14 ID:28pp8cdw
>>750
吐いたのを多少参考にして
自前のを作る

752 名前:名前は開発中のものです。 :02/06/25 03:35 ID:???
DirectX8.1で初めてDirectXいじるからとりあえずAppWizardで様子見てる。

753 名前:名前は開発中のものです。 :02/06/27 23:58 ID:???
誰か・・・ヘルプ・・・

Windows 2000 DirectX8.1
ビデオカードは RADEON 7200

最新のドライバ入れたら
Direct X7のDirext 3D IMでカラーキーが有効にならず、
透明色の指定をしたはずの黒い色が描画されてしまいました
(板のようなポリゴンをスプライトとして使用)
カラーキーは左上(0,0)の座標に指定しています

しかも、このような症状が出るのは「とある一つのテクスチャ」のみです
とあるクスチャの画像ファイルが壊れているのかな?と思い、
テキスチャに他の画像を読み込ませると、正常に表示されました

対策として画像エディタで壊れていると思われる画像データを読み込み、
必要な部分をコピーペーストして正常に表示される画像データに貼り付け、
その正常になったはずのデータを指定してみましたが、異常な表示のままです

逆に、正常な画像データに異常な画像データのほんの16*16ドットを
カラーキーなどとは関係の無い画像の中央の領域にちょことコピーしただけで
正常なデータは異常なデータに変わってしまいました・・・

わけがわかりません、私のマシンで一体何がおこっているのでしょう
画像データ・異常な画像データともに、(0,0)の座標は完璧に真っ黒です
何度見てもRGBで0x000000のデータしか入っていません
また、アルファ値はまったく使っていません

いったいどうすればよいのでしょう・・・

754 名前:名前は開発中のものです。 :02/06/28 01:24 ID:???
>753
問題の画像をうぷすれ。

755 名前:名前は開発中のものです。 :02/06/28 06:17 ID:???
>753
>最新のドライバ入れたら
元に戻せw

756 名前:名無しサソ :02/06/28 15:25 ID:???
>750
 DirectX8になってから、サンプルが軒並みCD3DApplicationから
派生されて物で作られて居るけど、みんなこれをどうやって自分の
プログラムに落とし込んでいるのかが気になる。

 特に、動的フルスクリーン←→ウィンドウモード切り替えとかは、
ほとんどサンプルコードのままにしておくのが吉なのかな?今
自前でD3D8とD3DDevice8その他を解像度切り替え時に全て
リリースして、0からインターフェースを取得し直してウィンドウ
を作り直す様にしているんだけど、何故か上手く行かない。再構築
に時間はかかるけど、こっちの方が確実かつ簡単に行くと考えた
んだけど・・・。

757 名前:名前は開発中のものです。 :02/06/29 00:03 ID:???
>>756
俺はサンプルなんて殆ど見ないよ。
なんか苦手みたい、他人のソース見るの。
まずね、D3D8はリリースする必要ないです。
最初から最後まで生かしっぱなしでOK。
俺なんて、自作ライブラリのDllMainが呼ばれた瞬間に作ってるよ。
んで、D3DDevice8は作った時のIDirect3D8::CreateDeviceの引数があるじゃん。
あれのDeviceTypeとhFocusWindowとBehaviorFlagsのどれか1つでも
変わる様なら、再構築の必要がある。
逆に変わらないなら、ResetでOK。

758 名前:名前は開発中のものです。 :02/06/29 00:10 ID:???
そんなん気にするより、
全部作り直すで統一した方が楽

759 名前:名前は開発中のものです。 :02/06/29 00:35 ID:???
>>758
いやいや、ライブラリの基底部分はそれなりにしっかり作っといた方がいいよ。
後々やりたいことが出来たけど、現状の仕様ではかなり厳しいちゅう状況になったりするからね。
でもまあ、ちょっとめんどくさいのは確かかもね。
デバイスを作り直すとすると、テクスチャとかリソース管理も自分でやらなきゃならなくなるから。

760 名前:名前は開発中のものです。 :02/06/29 00:37 ID:???
リセットだけにするか、全部作り直すか。
同じ事を達成できるんだから2つルーチン書くより
上位互換である全部作り直す方が楽。

761 名前:名前は開発中のものです。 :02/06/29 00:47 ID:uNPXzVbU
>>760
例えば、D3Dのリソース自動管理を使えば
Resetならテクスチャとか頂点バッファとか
作り直す必要がなくなる。だからその分切り替えが速くなるメリットがあるよ。
正直、1からXFileとか読み直してると結構時間食う。経験的に。
後はゲームが起動したら切り替えはさせないっつーのがあるね。
実際やる立場からするとこれで十分だったりする。

762 名前:名前は開発中のものです。 :02/06/29 05:46 ID:???
フルスクリーンのゲームで何かあるたびにデバイスを開放するのはやめて欲しいな。
3DMark2001とかベンチが切り替わるときに解像度が変化するの嫌じゃない?
メニューとゲーム中で解像度が違うのも最悪

763 名前:名前は開発中のものです。 :02/06/29 05:51 ID:???
モニタの寿命が縮みそうだな。
カチカチカチカチ…

764 名前:名無しサソ :02/06/29 07:14 ID:???
>757
 確かD3DDeviceのResetを行って、失ったリソースを再ロード
すれば良いんだよね?でも、何故かそれだとフルスクリーン→ウィンドウ
時にウィンドウの枠が出てこない(altを一回押すと戻る)。

 サンプルコードを読まないって事は、全部一から作ってるの?
自分はあのドキュメントだけでは到底作れないよ・・・。とりあえず
サンプルで流れを掴んではいるつもりだけど、インターフェースを
全部解放して再取得するorリセット時に何が悪さをしてるのかが謎。
Resetメソッド使った時は、それまでのリソース(メッシュとか)は
明示的に解放する必要なく再ロードして良いんだよね?

 >761の言うとおり、動的切り替えなんて市販ゲームでも一部MSの
奴くらいしか対応してないし、別にフルスクリーンでフォーカス外した
時の対策くらいで良い筈なんだけどね。でも、何となく・・・と(悪い癖)

765 名前:名前は開発中のものです。 :02/06/29 07:55 ID:???
動的にフルスクリーン切り替えが出来るのは
ほとんどエロゲくらいだろ。

枠が出てこないのならSetWindowPosでSWP_NOMOVE|SWP_NOSIZEで対処

766 名前:名前は開発中のものです。 :02/06/29 09:20 ID:???
寿命が縮むなにもモニタを実際に寿命まで使うことはない罠。

767 名前:名前は開発中のものです。 :02/06/29 09:20 ID:???
>>765
もっと普通のゲームもやろうよ

768 名前:名前は開発中のものです。 :02/06/29 10:04 ID:ERmjHl2U
>>764
自分では、サンプルは殆ど見てないつもりだったけど
あらためてサンプルと自分のコードを見比べてみたら
結構パクってた。自分が忘れてただけみたいね。(笑
Resetが失敗すると、D3DDeviceはロストしたままだから
そもそも表示すら出来ない。だから原因はD3Dとは別。
>>765の方法で直るんじゃない?
ちなみにサンプルからパクってた俺のソースでは
SWP_NOZORDER | SWP_NOMOVE | SWP_NOCOPYBITS | SWP_SHOWWINDOW
になってたね。

>Resetメソッド使った時は、それまでのリソース(メッシュとか)は
>明示的に解放する必要なく再ロードして良いんだよね?
D3DPOOLの値による。D3DPOOL_DEFAULTなら駄目、それ以外ならOK。
D3DPOOL_DEFAULTだと通常はVRAM上に確保されるから、
Reset等でレンダリングバッファの領域を変えれば
その干渉を受けてしまうからつーのが理由だね。

769 名前:768 :02/06/29 10:12 ID:ERmjHl2U
>>768は間違ってた
D3DPOOL_DEFAULTならReleaseして、再度Create。
それ以外は、Releaseも最ロードもする必要はない。

770 名前:名無しサソ :02/06/29 10:49 ID:???
>765
>768
 成る程。目から鱗。確かに最初期化の時使ってなかったよ<SetWindowPos
多謝多謝。

>768-769
 こちらも納得。ちゃんとドキュメント読みながら筋道立てて考えないと
駄目だね。ありがとう。

771 名前:名前は開発中のものです。 :02/06/29 21:20 ID:???
>>766
寿命の前に病気で死ぬって事?

772 名前:名前は開発中のものです。 :02/06/30 09:18 ID:1AkGsz1g
貴様等、D3DPOOLはどれにしてるか?
朕は最近D3DPOOL_DEFAULTとD3DPOOL_MANAGEDは
共存出来ない知って、どっちを使うか迷っておる。

773 名前:名前は開発中のものです。 :02/06/30 09:20 ID:???
D3DXCreateTextureFromFileExで読み込んだ
Textureのサイズ(x,y方向のピクセル)は
得ることは出来ないのでしょうか?

774 名前:名前は開発中のものです。 :02/06/30 09:24 ID:???
>>772
共存出来るよ、同時にフラグの設定が出来ないだけで。
じゃないと、MANAGEDを利用したプログラムじゃテクスチャへのレンダリングが行えなくなる。

775 名前:名前は開発中のものです。 :02/06/30 09:25 ID:???
>>773
IDirect3DTexture8::GetLevelDesc

776 名前:名前は開発中のものです。 :02/06/30 09:32 ID:1nknoVE6
>>774
おお、そうなのか。
じゃあ、基本はMANAGED
特殊用途にはDEFAULTと使い分けるのが
ベストという訳か。
うむ、朕は満足した。下がってよいぞ。

777 名前:名前は開発中のものです。 :02/06/30 10:02 ID:???
>>775
どうもありがとうございました、
GUIクラス作っててどうしても画像のサイズが分かりませんでした。

778 名前:名前は開発中のものです。 :02/06/30 10:35 ID:???
頂点ごとに法線を持たせてるんですが、立方体を作る場合、それぞれの頂点にはどんな法線を持たせればいいのでしょうか。
その頂点を含む面の法線の平均を使うと角が丸っこく見えてしまい上手くいきません。

779 名前:名前は開発中のものです。 :02/06/30 10:42 ID:???
各頂点を複製して、面の法線と同じ値に汁

780 名前:名無しサソ :02/06/30 10:47 ID:???
>778
 簡単な方法としては、モデラー側で最初から面を切り離した立方体を作る。
これ最凶。ただ、ストリップとかを考えるとあまりよろしくない諸刃の剣。
玄人にはお勧めできない。

781 名前:名前は開発中のものです。 :02/06/30 10:52 ID:???
では立方体一個作るのに頂点24個用意しなければいけないんでしょうか?

782 名前:名前は開発中のものです。 :02/06/30 11:00 ID:???
>>781
D3DXCreateBox

783 名前:名前は開発中のものです。 :02/06/30 11:07 ID:???
POINTS p = MAKEPOINTS(lParam);のように
DirectInputで直接マウス座標を取得する方法は無いのですか?
相対 DIMOFS_X ,Y を加減算する方法以外に思いつきません・・

784 名前:名前は開発中のものです。 :02/06/30 11:44 ID:???
マウスに絶対的な座標などありませんが

785 名前:名前は開発中のものです。 :02/06/30 13:24 ID:0bTRua52
つまらないレースゲームを作るため、コース全体を一つの
DXMeshで持ったXfileで不遜にも表そうとしています。

よくある自分の車を後ろから眺めるタイプのもので、視点は車より
大分後ろにおき、コースの表示は車と視点の中間位の位置でクリップ、
さらに視点と車の間を遮るものは非表示にしたいと思ったのですが…。

Cマガジンとかに載っている、BSPとかの手法を試そうとしても
単一Xfileからどう持っていけばいいのか途方に暮れていて…。

駄目を承知でお伺いしたいのですが、単一Xfileで
こういう処理を上手くやる方法ってありますでしょうか?

786 名前:名前は開発中のものです。 :02/06/30 15:07 ID:???
なにいってんだ?

787 名前:名無しサソ :02/06/30 15:26 ID:???
>785
 もしかして、非常にもしかして、D3DXでLoadして、そのままD3DXMeshの
DrawSubsetだけで何とかなるだろうとか考えていたりする?いや、頭の悪い
自分では考えもつかないような、素晴らしいアイディアとかあるのかもしれないけど。

 領域をマテリアルで分割してみたりとか。テクスチャを貼るのが前提なら
色で分けられる・・・かな?(適当)

788 名前:785 :02/06/30 16:22 ID:???
>>787
OH!!これは痛烈な…素人ですいません(´Д⊂
表示はXFileに一括してまかせて、当たり判定用のデータは別にもたせれば、
細かいこと考えずモデルに力を注げる!などと思ってたのですが…。たはは、浅知恵でした。

仰るとおりAttributeを分割用途に使えば良さそうですが、でもその辺は
本来の用途で一杯一杯なんです…。Xfileだけでは無理なんですかねぇ…。
かといって独自形式にコンバートなんて考えると気が遠くなりそうです(´・ω・`)

要するに、魂削って作った箱庭モデルを表示したいだけなのですが…。
この辺、表示分割用データとどう折り合いをつければいいのやら…。
いずれにせよ、レスありがとうございました。もすこし頑張ってみます。

789 名前:名前は開発中のものです。 :02/06/30 16:24 ID:???
コース自体と視界を遮りそうな周りのオブジェクトのメッシュをなるべく別にして
個別に判定(球で十分)、遮ってそうだったらマテリアルいじって半透明とかはどう?
もの凄いポリゴン数とかじゃなければコース自体はクリッピングしなくてもかまわんと思う。
その周りのオブジェクトを視錐台クリップするとかで処理速度も上がる・・・かもしれない。

どうしても今の状態のままでやるならメッシュ読み込みの時にグリッドに分けてしまって
そのグリッドの中のポリゴンを判定していく感じになると思う。
GameProgrammingGems1のオクトツリーあたりが参考になるかも。

790 名前:切実 :02/06/30 16:28 ID:???
DirectX9.0SDKつかいたいよ〜〜(切実
デモつくりたいよ〜〜

791 名前:785 :02/06/30 16:48 ID:???
>>789
あああ、ありがとうございますヽ(;゚∀゚)ノ=3
オブジェクト毎の視錐台クリップならば私にも出来そうです!

しかも(モデラ内で分けてある)オブジェクト毎に相対座標付きXFileをはき出す
プラグインを作れば、何の面倒もなくそのまま使えそうです(*´Д`)

後半はまだ理解できないのですが。横着せず必ず調べてみます。
3Dプログラムを始めたばかりで…本当に参考になりました。重ね重ね感謝であります。

792 名前:名無しサソ :02/06/30 16:57 ID:???
>791
 ちょっと待った。Xファイル形式って、二種類あるのを知らない?
バイナリとかの話でなくて、フレーム形式とメッシュ形式。メッシュが
単一のオブジェクト、フレームがメッシュを複数持った親子構造を成す
形式。フレーム形式で作る&読む工夫をすれば、ちゃんとツリー構造
で読んでくれるから、幸せになれると思う。

793 名前:名無しサソ :02/06/30 16:58 ID:???
 って、相対座標付き云々って、フレーム形式の事かな?自滅。

794 名前:名前は開発中のものです。 :02/06/30 19:57 ID:w0m4oEsQ
>>792
2種類というより、メッシュのは
フレーム付きのサブセットだね。
つーか、D3DXATTRIBUTERANGEを拡張して
メンバのIdを1個増やしてやって
そこにグリッドのNoでもいれてやりゃいいんでない。

795 名前:名前は開発中のものです。 :02/07/04 23:50 ID:???
停滞age
8.1bの変更点ってナニ?

796 名前:名前は開発中のものです。 :02/07/05 02:09 ID:vl./cU5E
ところで、アクションマッピングってどう思います?
なんだか全然使えない気が・・・

797 名前:名前は開発中のものです。 :02/07/05 02:36 ID:3/OZFy0A
>>796
自分でコンパネ作らなくて済むので
楽といえば楽。

798 名前:名前は開発中のものです。 :02/07/05 05:36 ID:???
>>797
あのコンパネをユーザーに見せるのはちと恥ずかしいと思うのは偏見でしょうか?

799 名前:名前は開発中のものです。 :02/07/05 06:57 ID:???
>>798
いや、正常。
そもそもwinのGUIで環境設定をやらせるゲームは萎える

800 名前:名前は開発中のものです。 :02/07/05 07:09 ID:a5y6mja.
>>799
あれはFULLSCREENでも出せるよ。
別にいいと思うけどね、どうせフリーでしょ?

801 名前:名前は開発中のものです。 :02/07/05 09:23 ID:???
>>800
フルスクリーンで出せるとかそういう問題じゃないだろ。
センスの問題だ。

802 名前:名前は開発中のものです。 :02/07/05 09:34 ID:???
>>796
基本的にMSのやる事は、やり方はともかくやる事は間違ってはいないので、
「なんだよこれつかえねーな」とか思ってしまったら、自分の理解が足りない
か考え方が遅れていると思った方がいいよ。

803 名前:名前は開発中のものです。 :02/07/05 10:59 ID:???
D3DXEffectは?

804 名前:名前は開発中のものです。 :02/07/05 11:05 ID:???
>>802
MSのやることは間違っていようがなんだろうが正義だから
センスもひっくるめて黙って従っておいたほうが吉。

だろ?

805 名前:名前は開発中のものです。 :02/07/05 14:37 ID:vQ3tZoQI
>>803
Effectはちょっと・・。
あれ、最初どう使っていいかわからなかったよ。
すんげえ奇抜。IndexまでLPCSTRだからね。
読み込むアプリ側とEffectFileであらかじめ
つじつまを合わせてないと駄目なんだよね。
例えばテクスチャの1枚目は"TEX1"で2枚目は"TEX2"とか。
これが"Diffuse"とかにされてると、もうアプリ側で識別する術はないんだよね。

806 名前:名前は開発中のものです。 :02/07/05 15:40 ID:???
>>804
MS信者は盲目の羊。

807 名前:名前は開発中のものです。 :02/07/05 16:54 ID:???
>>806
でもアンチMSと比べると
信者の方がいくらかマシ。

808 名前:名前は開発中のものです。 :02/07/05 17:10 ID:???
そういや昔、ソースにバグがあるのにコンパイラが壊れてるって言って
コンパイラの所為にしてたのがいたなあ(苦笑

809 名前:名前は開発中のものです。 :02/07/05 19:55 ID:???
アクティブウィンドウのDirectXプログラムを
外部プログラムで操作することは出来ますか?

810 名前:名前は開発中のものです。 :02/07/05 23:43 ID:???
>>810
あなた自身がヤバイかも。とりあえず猫わかを勧めます

811 名前:名前は開発中のものです。 :02/07/05 23:45 ID:???
俺じゃなくて
>>809 猫わかでもなんでもいいから頑張れ

812 名前:名前は開発中のものです。 :02/07/05 23:45 ID:???
DirectInputのアクションマップ、メモリリーク起こしてないか?

813 名前:名前は開発中のものです。 :02/07/06 06:48 ID:???
>>809
出来ないこともありません。

814 名前:名前は開発中のものです。 :02/07/06 19:29 ID:???
突然すんません。
DX8.1 SDK Extra についてるシンボルファイルって、どこに入れたらいいの?
あと、初心者向けスレあったら教えてちょ

815 名前:名前は開発中のものです。 :02/07/07 01:12 ID:???
>>812
漏れもそれ思った。
ウィザードから作ってもエラー出るしな。

816 名前:名前は開発中のものです。 :02/07/08 10:28 ID:tCvK08q2
>>812
8.1bで直るんかな?

817 名前:名前は開発中のものです。 :02/07/09 07:55 ID:???
アクションマップでなくとも、
DirectInputでジョイパッドデバイスを作って
Acquire()した以降、リークしてないか?
SDKサンプルもそう。

818 名前:名前は開発中のものです。 :02/07/09 13:30 ID:???
柔軟な頂点データーフォーマットの先頭から 特定部分(例えば法線)までのoffset値を返す関数
作りたいんですけど、MSからは提供されてませんよね?(総サイズを返す関数はあるけど)

マニュアル見てD3DXDeclaratorFromFVF って関数があるけどこれってなんでしょ??
解説ほとんどないし

柔軟な頂点フォーマット (FVF) コードから宣言子を返す。

HRESULT D3DXDeclaratorFromFVF(DWORD FVF, DWORD Declaration[MAX_FVF_DECL_SIZE]);
パラメータ
FVF
[in] 宣言子の配列を生成する元となる FVF を記述する、柔軟な頂点フォーマット フラグの組み合わせ。
Declaration
[out] 照会されたメッシュに含まれる頂点の頂点フォーマットを記述する返された配列。この宣言子の配列の上限は MAX_FVF_DECL_SIZE で、宣言子を 15 DWORD の最大数に制限する

この場合の宣言子って何??

819 名前:名前は開発中のものです。 :02/07/09 17:38 ID:???
>>818
頂点シェーダの自前シェーダを定義する時に使うやつ。
シェーダでは頂点フォーマットを定義するのにFVFではなく
そいつを定義する。

820 名前:名前は開発中のものです。 :02/07/10 10:32 ID:???
ありがと。シェーダー放置してるのでワカラナカターヨ

821 名前:名前は開発中のものです。 :02/07/10 12:55 ID:Zr7aprQc
Direct3Dでプログラマブルシェーダーを使う場合、
シェーダーでも有効なレンダーステートと
シェーダーでは無効になるステートはどうやって見分ければいいですか?
推測ですか?

822 名前:名前は開発中のものです。 :02/07/11 01:30 ID:kjXjHXAI
はじめまして。DirectXを勉強している者です。
勉強していたんですが、一から低レベルな関数作るのがいやになってしまいました。
簡単に3Dのゲームが作れる手軽なライブラリありませんか?
・Xファイルを簡単に扱うクラスがある(アニメーションも)
・衝突判定が手軽にできる
・2Dも充実している(αブレンディングや各種アフィン変換)
・早い
こんな感じでおすすめのあったら教えてください。

823 名前:名前は開発中のものです。 :02/07/11 01:40 ID:kjXjHXAI
少し調べてみました。
AXISっていうライブラリが有名みたいなので、これちょっと見てみます。

824 名前:名前は開発中のものです。 :02/07/11 02:01 ID:???
822-823
ご苦労さん

825 名前:名前は開発中のものです。 :02/07/11 02:08 ID:???
このAXISっての、全然使えなかったです・・・
あー、自分でこさえるかな。
それか我慢してDirectXに付属しているユーティリティ使うか・・・

826 名前:名前は開発中のものです。 :02/07/11 02:10 ID:???
ところでここってsageにするとID消えるんですね。

827 名前:名前は開発中のものです。 :02/07/11 02:57 ID:DA2y7Lzk
>>825
http://macosx2.ncs.gr.jp/~masa/jpn/program/library/KM_DirectXGraphics/docs/index.html
こんなのは?
ちょっとD3DXとかぶってる機能が付いて冗長だけどな。
まぁ初期化とアニメぐらいはできるんじゃない?

828 名前:名前は開発中のものです。 :02/07/11 03:07 ID:???
KIT-M キタ━━━━(゚∀゚)━━━━!!!!!!

829 名前:名前は開発中のものです。 :02/07/11 03:16 ID:???
>>828
何?
有名なの?
よく知らんで挙げちゃったけど、
俺まずいことしたかな?(汗

830 名前:名前は開発中のものです。 :02/07/11 06:31 ID:eAYJVnX6
きみまずいよ!
もう俺しらねえよ
責任とれよ…

831 名前:名前は開発中のものです。 :02/07/11 07:56 ID:???
masa叩きスレが立ちます

832 名前:名前は開発中のものです。 :02/07/11 10:06 ID:???
歴史は繰り返される。か・・・

833 名前:名前は開発中のものです。 :02/07/11 11:16 ID:???
>>829
Webにおいてあるもの見て察してやれよ・・・カワイソウニ

834 名前:名前は開発中のものです。 :02/07/11 12:00 ID:WO9TAO.o
DirectX7 なんですが、サーフェスが明示的に作成されたものか
暗黙的に (GetAttachedSurface を使って) 作成されたものかを
知る方法はありますか?

835 名前:名前は開発中のものです。 :02/07/11 13:15 ID:ASB5.U4o
DirectXのCOMの初期化で質問です。
初期化にCoInitializeEx(NULL, COINIT_MULTITHREADED)を使った場合(MTA)と
CoInitialize(NULL)を使った場合(STA)の差って、パフォーマンスにペナルティが
入るぐらいで、スレッド単位でSTAかMTAか決めとけば問題ないんでしょうか?

それとも「DirectPlayはMTAじゃなきゃ駄目です」とかあるんでしょうか?

836 名前:名前は開発中のものです。 :02/07/11 18:31 ID:???
DirectX-SDKのxxxxutil系の実装も相当酷い。プロが書いたものとは
思えない。

837 名前:名前は開発中のものです。 :02/07/11 19:16 ID:???
>>836
具体的には?

838 名前:名前は開発中のものです。 :02/07/11 21:19 ID:lFJ4dkAI
>>835
結論から言えばYES、だと思う。
クライアントのスレッドモデルと
COMサーバーのスレッドモデルのアンマッチは
COMが吸収してくれるはずなので、問題が出るのは
パフォーマンス面だけと思う。
例えばクライアントをMTAで初期化し、
使用するCOMサーバーのスレッドモデルがsingleだった場合
COMは新たにSTAを作ってそこにサーバーを生成する。
そしてそのサーバーへのアクセスは、COMが勝手に作った
プロキシスタブを介して行われる。つまりアクセスは出来るが
パフォに影響が出ると。
ちなみにDirectPlayのモデルはBoth(どっちも可)なので
どちらでもいい。まあMTAを使う方が自然と思う。

839 名前:名前は開発中のものです。 :02/07/11 21:32 ID:???
STAだかMTAだかが
解らんのだと言っている!

840 名前:名前は開発中のものです。 :02/07/11 21:37 ID:???
Single Thread Architechture

841 名前:名前は開発中のものです。 :02/07/11 21:42 ID:???
>>839
過去の遺物だから、今更覚えなくていいよ。
無駄もいいとこ。COMなんてもうだめぽ。

842 名前:名前は開発中のものです。 :02/07/11 22:05 ID:???
.NETに移行しない分野ではまだまだ現役ですが、何か?

843 名前:名前は開発中のものです。 :02/07/12 02:35 ID:???
ライブラリ厨の予感sage

844 名前:名前は開発中のものです。 :02/07/12 02:40 ID:CQahmC3Q
HELをCreateDirectDrawEx()でDDEMULATION_ONLYにしたらその時点で強制終了するPCがあるんだが、どうすればいいんだろう。
DELLのinspiron4000。ATI RAGEだ。他のPCならなんともないんだが、このノートPCの糞ビデオカードときたらマジでぶちきれる。
HALでやったらバグるしさー。ヤネウラオのページにもHELが速いって書いてあるし。実際HALでやったらぼやけたり色抜きが半端だったりするし。
どうすりゃいいんだよ。CoInitializeってやつでDDもらうとまた何かちがうのか?

845 名前:名前は開発中のものです。 :02/07/12 02:43 ID:???
>>844
DIBを使う

846 名前:名前は開発中のものです。 :02/07/12 03:01 ID:CQahmC3Q
DIBは面倒くさい。
RPGつくーる2000なんてすごく汎用性あるけど、どうやってんだろうな。

847 名前:名前は開発中のものです。 :02/07/12 06:26 ID:???
>>844
ドライバは最新版使ってる?
DELLのサイトから落とせるドライバは古いと思うよ。

848 名前:名前は開発中のものです。 :02/07/12 08:11 ID:???
ATIへ行ってノートPCのドライバを探しても、
ベンダーごとに配布されているものを使えと言われ、落とせない罠。

とりあえず、海外DELLのドライバが新しい場合もあるが、
それでもHALのバグは治らないことが多い罠。

やはりATIはクソ。

849 名前:835 :02/07/12 10:05 ID:???
>>838
レスありがとう。これで、数日悩んでた事がようやく解決しそう。

>>839
STA=Single Thread Apartment model
MTA=MultiThread Apartment model
http://support.microsoft.com/default.aspx?scid=%2Fisapi%2Fgomscom%2Easp%3Ftarget%3D%2Fjapan%2Fsupport%2Fkb%2Farticles%2Fjp150%2F7%2F77%2Easp&LN=JA#
↑ここにある程度の説明がありますよ。私も今朝発見したばかりですが…

850 名前:名前は開発中のものです。 :02/07/12 12:25 ID:7alQPTjQ
>>848
デバックランタイムだとどう?
DXはリテールだとすぐ落ちる脆弱野郎だが
デバックだとかなり堅固になる。
警告がデバックアウトプットされているようだと、
アプリ側でやることがまだあるかもね。
無いようだとお手上げ。

851 名前:名前は開発中のものです。 :02/07/12 19:57 ID:ta2l.s0c
視錐台クリッピングを解説しているページを見ると
六面と干渉計算して・・・とかこ難しいことやってますが、
バウンディングボックスなり球なりを射影トランスフォームして
x,yは-1〜1、zは0〜1でクリップするのはまずいのですか?

852 名前:名前は開発中のものです。 :02/07/12 20:17 ID:???
>>851
それでいいとおもう。

853 名前:名前は開発中のものです。 :02/07/12 20:31 ID:???
射影変換すると球が楕円体になる罠

854 名前:851 :02/07/12 20:33 ID:???
>852
OKその言葉がほしかった。ありがとう
今さっき実験も通った。上手くいってます。
pDevice->GetTransformして、Multiply何回かして、
D3DXVec3TransformCoordするだけだもんね。

855 名前:851 :02/07/12 20:34 ID:ta2l.s0c
>>853
ああ!ほんとだぁぁぁ
でも、判定自体がおかしくなることってあります?
はみ出ちゃう??

856 名前:851 :02/07/12 20:40 ID:???
楕円ははまずいわな。余計にややこしくなる。
ちなみに実験したのは
BBoxの8頂点を変換>見えてる? というもの。
まぁいいや。おかしくなったらすぐわかるから後回し・・・

857 名前:名前は開発中のものです。 :02/07/12 21:31 ID:d4nWsxd.
>>851
精度の問題も出そう。

858 名前: :02/07/13 02:37 ID:???
>>851
わかってると思うけど一応...
バウンディングボックスでやるとして
 ・ -1<x<1 かつ -1<y<1 かつ 0<z<1 な頂点が一つでもある → 描画
だとダメです。
 ・ 全ての頂点のx<-1 または 全ての頂点のx>1 または
   全ての頂点のy<-1 または 全ての頂点のy>1 または
   全ての頂点のz< 0 または 全ての頂点のz>1 → 描画しない
で判定するのが吉

859 名前:851 :02/07/13 08:40 ID:???
>>858
実は書いたときには解ってなかった・・・

その後オブジェクトがでかくて視錐台をまたいでしまって、キャラが宙ぶらりん
まあいいや、朝起きたら12辺で・・・
なんて思っていました。

いやあ、いいこと聞いた ありがとう

860 名前:名前は開発中のものです。 :02/07/13 10:58 ID:CmHrdi.Q
DirectSoundで15音ぐらい出したところで突然ブルースクリーン
になります。似たような現象を解決された方がいらしたら
教えてほしいのですが

<現象>
例外 0E 0028:C16C1F95
以後、再起動するまでサウンドが使えない。

<環境>
調べたところSoundBlaster PCI128では起こるのですが
MounsterSound MX300やADIでは発生しないようです。

Windows98SEで発生するけど、Windows2000やXPでは
発生しないようです。

ドライバは最新のものをインストールしています。

OS : Windows98SE
CPU : Athlon(TB) 1.4GHz
MEM: 128MB
Video: Geforce4 Ti4200
Sound: SoundBlaster PCI128

861 名前:名前は開発中のものです。 :02/07/13 11:58 ID:???
解決策: あなたのアプリがサウンドOFFで動くようにする

不良なハード・バグがあるまま放置されたドライバ・
インストールに失敗した環境が原因で、
その尻拭いをするのが自分の仕事だと思うなら → やねうらお本を読もう

「ほんの一握りの糞な環境で動かないから○○は使わない」
という思考が正しいと思うなら → やねうらお本を読もう

862 名前:名前は開発中のものです。 :02/07/13 13:47 ID:???
どっちにせよ読むんかい(´д`;)

863 名前:名前は開発中のものです。 :02/07/13 15:05 ID:???
できないのは切り捨てるタイプなんで
あてはまらいですね。

864 名前:822 :02/07/13 20:51 ID:DNjNUGVA
あいかわらず勉強しています。
Xファイルのスキンメッシュについて簡単に説明してあるサイトってどこかにないですか?

865 名前:名前は開発中のものです。 :02/07/13 20:55 ID:???
うちのマシンはmidi再生時にHDアクセスが入ると完全にフリーズします
スピーカOFFでのwebサーフは超危険
それに比べればたいしたことない→ やねうらお本を読もう

866 名前:名前は開発中のものです。 :02/07/13 20:59 ID:???
>>865
デフォルトのMIDIの出力先を変えておけばいいだけでは?

867 名前:名前は開発中のものです。 :02/07/13 21:35 ID:JU2lSMO.
OS:Win98SE
ダイレクトX8.1をダウソしてインストールしようとしても
「このバージョンのダイレクトXは現在インストールされているwindowsのバージョンとは互換性がありません」
と出てインストールできません。原因は何なんでしょうか?

868 名前:名前は開発中のものです。 :02/07/13 21:39 ID:???
ランタイムがWin98用じゃないんじゃないの?

869 名前:名前は開発中のものです。 :02/07/13 22:08 ID:???
>>867
NECのPC-98使ってないか?

870 名前:名前は開発中のものです。 :02/07/13 23:26 ID:JU2lSMO.
>>868
すいません、よくわかりません
>>869
使ってます。

お二人とも血レススマソ

871 名前:名前は開発中のものです。 :02/07/13 23:58 ID:???
PC98で開発してる人がまだいたんだね・・・

872 名前:名前は開発中のものです。 :02/07/14 00:25 ID:HS8odNe2
でも来年にはあたらしいの買います〜

873 名前:名前は開発中のものです。 :02/07/14 00:25 ID:???
涙が止まりません・・・

874 名前:名前は開発中のものです。 :02/07/14 00:29 ID:???
>>872
ボクはあなたを尊敬します

875 名前:名前は開発中のものです。 :02/07/14 00:34 ID:HS8odNe2
すいません、ゲームの開発はしていません。
ただダイレクトXスレがあったので質問してみただけです。

876 名前:869 :02/07/14 00:57 ID:???
>>870
公式にはPC-98にDirectX8.xはインストールできない

877 名前:名前は開発中のものです。 :02/07/14 01:10 ID:HS8odNe2
>>870
そうですか、残念

878 名前:名前は開発中のものです。 :02/07/14 01:16 ID:HS8odNe2
しかし昔日経Win−PCのCDについてたDX8.0は動いたのですが、何故でしょう?

879 名前:名前は開発中のものです。 :02/07/14 01:19 ID:???
9βもチェックを回避すればインストールできるよ

880 名前:名前は開発中のものです。 :02/07/14 01:22 ID:HS8odNe2
チェックを回避とは?

881 名前:名前は開発中のものです。 :02/07/14 01:36 ID:???
>>880

if ( PC-98 ) return; ←これを消すこと

882 名前:名前は開発中のものです。 :02/07/14 01:41 ID:HS8odNe2
どのファイルですか?

883 名前:名前は開発中のものです。 :02/07/14 01:43 ID:???
>881
ぼくはアセンブラができないのでわかりません

884 名前:822 :02/07/14 02:34 ID:VQfhQCBE
インストールできるようにするパッチがあったはず

885 名前:A-Fo ◆rY8kGqzs :02/07/14 03:06 ID:VQfhQCBE
http://hp.vector.co.jp/authors/VA007918/dx8nec98.htm
あったよ。これこれ。

886 名前:858 :02/07/14 06:37 ID:???
858の方法はちと不備があったっす。
よく考えたら、視点の裏側だと反転しちゃうんで
視点の表と裏を分ける平面と干渉するオブジェクトを余計に描画しがちです。
wが負の場合は反転させるとイイと思われ

あと、完全なバウンディングボックス計算ではないので、
辺の近くの微妙な位置のを余計に描画してしまうこともありまふ。

887 名前:名前は開発中のものです。 :02/07/14 06:47 ID:???
>>864
こんなんどうかね
http://www.gamedev.net/reference/articles/article1835.asp

888 名前:名前は開発中のものです。 :02/07/14 19:46 ID:arzFPCgg
http://www.google.co.jp/search?q=cache:ijdTGgLEsbcC:www2.bbspink.com/test/read.cgi/erog/999446678/+DIBSection+%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%96%E3%83%AC%E3%83%B3%E3%83%89&hl=ja&ie=UTF-8
このスレの話は現在にも適用できますか?MMXがないとアルファブレンドがきついなど

889 名前:名前は開発中のものです。 :02/07/14 21:22 ID:???
>>888
読んでみて、エロゲのプログラマがたかが紙芝居システムを、
とことん磨き上げようとする熱意に感激しました。

MMXがどうとかいう問題は、はっきりいって常識は通用しません。
各々のソフトハウスのプログラマ連中の認識や合意の問題です。
まあ基本的に世代交代遅いので推して氏ってください。

890 名前:889 :02/07/14 21:26 ID:???
というか普段Direct3D使ってる人とは別の世界観が確固と存在する。

891 名前:A-Fo ◆rY8kGqzs :02/07/14 22:49 ID:???
>>887
どうもありがとう。やっぱり英語の文献の方がいいものがありますね。

892 名前:名前は開発中のものです。 :02/07/17 11:17 ID:Qrh/om0o
3DXSPRITE::Draw関数を使ってテクスチャーを2倍に拡大表示してみたところ、
ぼやけて描画されてしまい、きっちりドットが描画されません。
別のパソコンで試してみたら、なぜか、きっちりドットが描画されました。
原因は何しでしょうか?

893 名前:名前は開発中のものです。 :02/07/17 12:04 ID:???
>>892
IDirect3DDevice8::SetRenderState( ) を使って
テクスチャフィルタリングのタイプを明示的に指定する。
指定しないとHALのデフォルト設定を使うので環境が変われば
出力も変わる。場合もある。

894 名前:名前は開発中のものです。 :02/07/17 12:54 ID:ZmKYpjcw
そうでもない。HALの場合ドライバーが勝手に bltにフィルターかけちゃうものがある

HALが効かないような状態(SYSTEMメモリーサーフェイス)なら問題でないよ
あと、事前にblt使わずに2倍しておくとかね

895 名前:892 :02/07/17 20:02 ID:???
>>893-894
ありがとうございます。
遅いですが、REFモードでやります。

896 名前:名前は開発中のものです。 :02/07/17 22:04 ID:???
SDKでDirectX8にでウィンドウモードとフルスクリーンモードの切り替え
をやってみましたが失敗してしまいます。

SetWindowLongでウインドウスタイルをセット
3DXSPRITE等のオブジェクトの解放
D3DPRESENT_PARAMETERSに値をセット
LPDIRECT3DDEVICE8::Reset()の実行

と、順番にやりました。これだけではダメなのでしょか?
起動時にウインドウモード、フルスクリーンモードでの初期化には
成功しています。

897 名前:tcns003.zaq.ne.jp :02/07/17 22:46 ID:???
Win98seでDirectX7SDKを使っているんですが、
Win2000に変えようと思っています。
2000に変えると今まで作ったプログラムやDirectX7SDKは
そのまま使えるのでしょうか?

時期外れな質問だと思いますが、教えてください。

898 名前:名前は開発中のものです。 :02/07/17 23:04 ID:???
>>896
たしか、SDKのサンプルのほうは切り替えがやってるよな。
そっちのソースを見たほうが話が早いんでないの?

899 名前:名前は開発中のものです。 :02/07/17 23:06 ID:???
>>897
使えるよ。

900 名前:名前は開発中のものです。 :02/07/17 23:32 ID:???
>>894
なんでDirect3Dの話してるときにBltが出てくるの?
それにSystemメモリサーフェスでもNVIDIA系はBltでフィルタかかるよ。

893の言っている事の方が正しい。
ただしSetRenderStateではなくて、SetTextureStageStateね。
本当はデフォルト値がD3DTEXF_POINTに決まっているんだが、ドライバに
よっては守ってないのもある。かもしれない。
D3DRS_DITHERENABLEもドライバの設定によってデフォルト値が変わる場合
があるから注意した方がいいよ。

>>895
リファレンスラスタライザなんか使う必要はないよ。
ちゃんとRenderStateを設定しろって事。設定すれば無問題。

901 名前:名前は開発中のものです。 :02/07/18 00:07 ID:9hEE2xqo
>それにSystemメモリサーフェスでもNVIDIA系はBltでフィルタかかるよ。

ありえなーい。本当か? AGPメモリに作ってんじゃねぇの?

902 名前:名前は開発中のものです。 :02/07/18 00:17 ID:???
>>901
ドライバの設定って可能性が高いような気がする

(ドライバが勝手にVSYNC待ちoffにしたりするのはやめてほしい)

903 名前:名前は開発中のものです。 :02/07/18 01:30 ID:???
NVIDIAドライバがSystem→Localでもフィルタかけるのは有名な話だと思うが。
もちろんドライバでon/offの切り替えはできるが。
ATiとかIntelのだとSystemメモリに作ればバイリニアフィルタは無効になるけどね。
結局2DなのにBltやめてDrawPrimitiveに変えたよ。

904 名前:名前は開発中のものです。 :02/07/18 01:42 ID:9hEE2xqo
system-> local でフィルタ掛かるのは当たり前じゃない?
転送サイズが違えばグラフィックチップが介在して処理するんだから
(つか、AtiとIntelはそうなのか。MGAは途中からNVidiaコンパチになって泣けた)

ドライバでon/OFF出来るようになったの?
エミュレーターの多くは解決策がなくて泣いていた筈だけど
(作者は技術力あるし、仲間も多いのに、見落としてるとも思えないが)

905 名前:名前は開発中のものです。 :02/07/18 01:43 ID:???
>>902
馬鹿麦価。D3DPOOL_SYSTEMMEMは更新の転送元だけ

906 名前:893 :02/07/18 03:35 ID:???
>>894
俺、昔Riva128使ってたのでなんとなく思い出したよ。
DirectDraw-HALのBlt( )で拡大描画させるときに
強制的に補間フィルタがかかっちゃうアレだろ。
(あとたしか、Win32のStretchBlt( )でも同様の症状アリだったやつな)

907 名前:893 :02/07/18 03:36 ID:???
ちなみに2Dゲームなら、DirectDrawだろうとWin32だろうと
System Memory上のバッファに自前のソフトレンダラで描画する
スタイルを使ってれば問題になる話じゃなかったよな。
つまり、Blt( )を使うのはスクリーン全体をLocal Memory上の
バッファに当倍転送するときだけっていうスタイル。

908 名前:893 :02/07/18 03:37 ID:???
あと、どうしてもBlt( )でスプライトを一つ一つ描画したいっていう人は
System Memory → System Memory でBlt( )使って拡大描画してたらしいな。
もっとも、このときの内部処理は要するにHELデバイスでやってることと
同じなのだから速度的なメリット無し。

909 名前:893 :02/07/18 03:44 ID:???
>>894
で、本題。

あのクソヘボだったRiva128でも、Direct3D-HALで板ポリなスプライトを描画する場合は
テクスチャフィルタリングの変更はしっかり反映されていたし、問題なかった。

そこで、ちょっと質問させてくだされ。
今回の話はD3DXSPRITEだろ?
上で書いたような、DirectDrawのBlt( )などで起きる強制的な補間フィルタリング問題と
同じ現象がD3DXSPRITE起きるってことなの?もし確認済みならその辺ぜひ教えてくだされ。

もうRiva128を手放しちゃってて、その辺のヘボカードの挙動を確認できないんだ。

910 名前:893 :02/07/18 03:49 ID:???
>>900
>ただしSetRenderStateではなくて、SetTextureStageStateね。

うっかりしてた。スマンかった。

911 名前:893 :02/07/18 03:53 ID:???
訂正
× Win32
○ GDI

912 名前:903 :02/07/18 07:46 ID:???
>>904
一部のアンオフィシャルなMAMEはDirect3D化されていて解決しています。
オフィシャルの方もDirect3D化は予定に入っているので、そのうち移行するかと。
それと、海外だとフィルタのかかったボケた画像が好きな人も結構いるんだよね。
(Cool!とかいうメールを結構貰ったけど、日本人にそんなこと言われた事ない)

ユーザがドライバの設定でフィルタのON/OFFができたのは昔の話。
Detonator2とかそのあたりだったと思う。
今でもできないかと暇なときにレジストリを眺めているけど、そういう設定
は無さそう。CoolBitsみたいに新規で追加すればできるかも?

913 名前:名前は開発中のものです。 :02/07/18 18:13 ID:WWZ1jX4Q
MAXのデータをつかうには、どうしたらいいのでしょうか。

914 名前:名前は開発中のものです。 :02/07/18 18:45 ID:???
>>913
http://www.google.co.jp/search?q=%E8%B3%AA%E5%95%8F%E3%81%AE%E4%BB%95%E6%96%B9

915 名前:名前は開発中のものです。 :02/07/18 18:50 ID:???
すごく初歩的な事だと思うんですが、
D3DXMATRIX構造体の各要素を扱うにはどうしたらいいんですか?

916 名前:名前は開発中のものです。 :02/07/18 18:55 ID:9hEE2xqo
扱う の意味がわからん。何がしたいんだ?

max のデーターはMicrosoftが提供してる Xファイルのコンバーター(不完全)がある
それ以外は自分で作ってくれ(Xファイルにコンバートしたところで、読み込みの手間が減るくらいだ)

917 名前:名前は開発中のものです。 :02/07/18 19:35 ID:???
D3DXMATRIX mat;       )
mat.┌───────┐   )
   │■operator !=  │   )
   │■operator () │   )
   │■operator *  │   )
_____________)

     ○
     O
    o
      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧ ∧ < メンバにアクセスできないぞゴルァ!
 ( ゚Д゚)  \_________________
(つ_つ_____
 ̄\| VC++  | \
    =========   \

に2ペソ

918 名前:名前は開発中のものです。 :02/07/18 19:51 ID:???
>>917
そうです・・・
ハズカシイ

919 名前:名前は開発中のものです。 :02/07/18 22:39 ID:???
>>917
爆笑した(笑

>>918
typedef struct D3DXMATRIX : public D3DMATRIX {
                            ↑ここ、ここ
D3DXMATRIXじゃなくてD3DMATRIXの方をみるよろし

920 名前:名前は開発中のものです。 :02/07/19 01:50 ID:iuVx658Y
D3DXで2Dゲームくみたいのですが、回転・ブレンドなどのスピードは自前+DirectDrawと比べてどうなんでしょう。

921 名前:名前は開発中のものです。 :02/07/19 02:49 ID:???
10倍以上速い場合も。

922 名前:名前は開発中のものです。 :02/07/19 08:11 ID:???
10倍どころじゃないでしょ

923 名前:918 :02/07/19 15:41 ID:???
>>919
あぁwマジサンクスです・・・w

924 名前:名前は開発中のものです。 :02/07/19 16:47 ID:opPBTcIU
Direct Play の鯖プログラムについて聞いてみたいです。
ズバリ、サーバープログラムっていうのはどこのゲーム
でも似たようなものなんでしょうか?

925 名前:名前は開発中のものです。 :02/07/19 18:27 ID:???
>>924
ゲームのプログラムがどれも似ているのと同じくらい似ています。

926 名前:名前は開発中のものです。 :02/07/20 07:42 ID:???
>>920
ハードウェアによる。
うちの環境だとD3Dの方が圧倒的に遅い。

927 名前:名前は開発中のものです。 :02/07/20 09:10 ID:???
>>926は紙芝居エロゲのフェードイン/アウトにDirect3Dを使おうとしたが
遅くて断念とかそんなレベル。

928 名前:名前は開発中のものです。 :02/07/20 17:39 ID:LEd6YzEU
D3DXでカラーキーが表現できません。
ネットをいろいろ調べた結果、アルファテストが重要らしいのですが、どうすればよいのでしょう。
A8R8G8B8の空のテクスチャをつくり、それにビットマップをロードしたテクスチャをLoadTextureFromSurfaceで転送してからA8を設定してやれば良いのかと思ったのですが、Lockしたあと消したいピクセルのA8 を0にしてもうまくいきませんでした。
アルファブレンドはできるのですが、カラーキーのためにはSetRenderStateに何を設定すればいいのか、多すぎてわかりません。

929 名前:名前は開発中のものです。 :02/07/20 17:39 ID:LEd6YzEU
ちなみにDirectX7です。

930 名前:928 :02/07/20 17:54 ID:LEd6YzEU
これが描画前にしているSetRenderStateです。

SetRenderState( ( D3DRENDERSTATE_ALPHATESTENABLE), TRUE);
SetRenderState( ( D3DRENDERSTATE_SRCBLEND ), TRUE);
SetRenderState( D3DRENDERSTATE_CULLMODE, D3DCULL_NONE );
SetRenderState( D3DRENDERSTATE_LIGHTING, FALSE );

SetRenderState( (D3DRENDERSTATE_COLORKEYENABLE), TRUE);
SetRenderState( (D3DRENDERSTATE_ALPHABLENDENABLE), TRUE);
SetRenderState( D3DRENDERSTATE_ALPHATESTENABLE , TRUE ) ;
SetRenderState( D3DRENDERSTATE_SRCBLEND, D3DBLEND_SRCALPHA );
SetRenderState( D3DRENDERSTATE_DESTBLEND, D3DBLEND_ONE );
SetRenderState( D3DRENDERSTATE_ALPHATESTENABLE , TRUE ) ;

931 名前:名前は開発中のものです。 :02/07/21 00:10 ID:???
>>920
自前の場合、最適化でいろいろがんばったとしても、
アクションゲームなどの動きの激しいゲームで満足の行く速度を出すのは困難
かつ、最適化によって自由度が相当下がる場合がある
さらに、いくら最適化しても結局メモリアクセスの時間がおおきいから
ある速度以上だすのは不可能だし

で、ビデオカードはそういう問題を解決するためにつけられているんだから、
素直にビデオカードの機能を使ったほうがいいかと

932 名前:名前は開発中のものです。 :02/07/21 00:14 ID:???
しかし、ビデオカード依存だと
出力品質が保証されている物ではないからなー

933 名前:名前は開発中のものです。 :02/07/21 00:59 ID:???
1年前のノートでも動かしたい、って場合は?

934 名前:名前は開発中のものです。 :02/07/21 01:15 ID:???
一年前のノートなら既に3Dアクセラレーションはついているものがほとんどです

935 名前:名前は開発中のものです。 :02/07/21 01:52 ID:???
>>930
RenderStateがめちゃくちゃ。重複だらけな上に設定内容がトンチンカンなのもある。
括弧つけてる意味も分からんし。
ビルボードのサンプルでアルファテストを使ってたと思う。

936 名前:931 :02/07/21 04:03 ID:???
>>932
・自前
実用的な速度の場合出力品質はお粗末

・ビデオカード
カードによって異なる。出力品質はお粗末〜最高

どっちがいいかは明白かと・・・
自前派は出力品質が保証されていないことを理由にすることが多いけど、
それって本末転倒だと思う

素直に自力で弄くるのが楽しいとか言えばいいのに・・・
と、おもいまふ(正直な個人的見解)

937 名前:名前は開発中のものです。 :02/07/21 04:10 ID:gMIk8lKs
>935
PFをA1R5G5B5にしてアルファ部分のビットをOFFにしてビルボードと同じにしたらできますた!胃やあああっほおーーーーーーーーーーー!!!!

938 名前:名前は開発中のものです。 :02/07/21 06:26 ID:???
>>937
D3DRENDERSTATE_ALPHAREFとD3DRENDERSTATE_ALPHAFUNCは適切に設定してる?
その2つを設定しておけばα成分さえあればA1R5G5B5以外でも問題無いし、
設定してないのなら環境によって結果が変わる可能性大。

それとアルファテスト使うなら、D3DRENDERSTATE_COLORKEYENABLEと
D3DRENDERSTATE_ALPHABLENDENABLEは設定するだけ無駄。遅くなる。

939 名前:名前は開発中のものです。 :02/07/21 08:04 ID:???
>>936
ん?3Dやるなら確かにその通りだが。
しかし、2Dならそうでもない。品質を完全にコントロール出来るんだが。

っていうか、自前の出力品質がお粗末って根拠は?

940 名前:名前は開発中のものです。 :02/07/21 10:01 ID:???
>>939
ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな。
要するに、PS1みたいな画面。

941 名前:名前は開発中のものです。 :02/07/21 10:43 ID:???
ゲームするのに支障きたさなければ、出力品質なんてどーでもいいや。
と、思うのは漏れだけなのだろうか?
ゲームやりたいだけであって、絵みたいわけじゃないしなー

942 名前:名前は開発中のものです。 :02/07/21 12:33 ID:???
>>941
本当に面白ければ見た目しょぼくても売れるので頑張ってください。
ただ、見た目が「どーでもいいや」って奴は往々にして中身も・・・

943 名前:名前は開発中のものです。 :02/07/21 13:01 ID:???
>>940
いつから3D前提の話になったん?
D3DXで2Dスプライト云々って流れじゃなかったのか?
3Dをやるならハードウェアを使うことには異論ないが、
2Dなら、手抜きじゃない限りソフトレンダリングすべきだと思っている。

944 名前:名前は開発中のものです。 :02/07/21 13:20 ID:???
2DSTGもハードが良くねえ?

945 名前:名前は開発中のものです。 :02/07/21 13:37 ID:???
世の中のコンシューマチップが3DLabsとnVidiaとATIしか無いなら、
ハードでもやる気が起こるけど、S3とかMatroxとかIntelとか、
マイナーチップを使ってる香具師も居るから、やっぱり3Dじゃない限りハードはイヤだ。

946 名前:名前は開発中のものです。 :02/07/21 13:48 ID:???
>>945
香具師の意味分かって使っているのか小一時間問いつめたい

947 名前:名前は開発中のものです。 :02/07/21 13:56 ID:???
>>946
おまえは何をそんなにも(以下略

948 名前:名前は開発中のものです。 :02/07/21 14:00 ID:???
水掛け論はうんざりだ!!!

【激論】最適化厨vs高スペックヲタ
http://game.2ch.net/test/read.cgi/gamedev/1025939917/l50

やね本 no.2
http://game.2ch.net/test/read.cgi/gamedev/1023639382/l50

949 名前:名前は開発中のものです。 :02/07/21 14:49 ID:???
>>934
一応ついてるんだが、Direct3DCreate8が失敗するのよ・・・
NeoMagicの糞ビデオチップ
ベンダーは新しいドライバ提供してくれないし

950 名前:名前は開発中のものです。 :02/07/21 14:54 ID:???
NMはダメじゃねーの?
Geforce3GO(だっけ?)とかATIのモバイルチップとか搭載している奴ならってことでしょ

951 名前:名前は開発中のものです。 :02/07/21 20:13 ID:???
DirectX7か6を使えばいいのでは?
スプライト描画に使うだけなら、8よりも7の方が使いやすいと思う。
7は初期化が少し面倒なだけで、それは一度書いてしまえば済むことだし、
D3DXで初期化すればむしろ8よりも簡単。
あと、8はプライマリサーフェスに直接描画できないのがちょっと不便。

952 名前:名前は開発中のものです。 :02/07/21 20:37 ID:???
>>951
プライマリは7以前でも無理

953 名前:931 :02/07/21 23:31 ID:???
>>943
>>>出力品質お粗末
>>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな
>いつから3D前提の話になったん?
回転拡大縮小のことを言っているのです

多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています
もう一度、全体に目を通していただけると助かります

954 名前:931 :02/07/21 23:32 ID:???
>>952
私のゲームは元気にプライマリサーフェスにBltしてますが・・・

955 名前:名前は開発中のものです。 :02/07/21 23:41 ID:???
>>953 回転拡大縮小のことを言っているのです
あ、そう。じゃ、世間知らずなのね。
回転拡縮でニアレストネイバー法を使っているゲームってほとんど無いけど。
さすがにトリリニアはみたこと無いけど、バイリニアは普通に使ってますがなにか?

956 名前:931 :02/07/21 23:52 ID:???
>>955
多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています
もう一度、全体に目を通していただけると助かります

>あ、そう。じゃ、世間知らずなのね。
このような、相手を罵倒する内容の発言は私は嫌いです
どのような意図があってこのような発言をしたのですか?
あなたを理解する(許す)ために知りたいです。

>バイリニアは普通に使ってますがなにか?
それよりもお粗末だとしてもビデオカードを使用したほうが早いと言っているのですが

957 名前:名前は開発中のものです。 :02/07/22 00:00 ID:???
>>956 許す

ハァ?許すってなんだよ。

>出力品質お粗末

あんたはこの根拠として

>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな

こう言っているだろ?
ソフトレンダリングでバイリニアを使っていないゲームといったら、
3D(それでも最近はバイリニアくらいは使っている)くらいなもんだろ。
2Dの場合は、遙かに昔からバイリニアは使われていた。

改めて聞く。
ソフト処理の出力品質が お粗末=ハードに劣る 根拠はどこにある?
ハードの場合、出力品質が最高ってどういう事?

>お粗末だとしてもビデオカードを使用したほうが早いと

速い、早いのは同意。
しかし、俺が問題にしていたのは出力品質で、
あんたはそれもハードに劣ると書いたが、なぜに?

958 名前:931 :02/07/22 00:08 ID:???
>>957
>許すってなんだよ。
あなたを理解することです

>ソフト処理の出力品質が お粗末=ハードに劣る 根拠はどこにある?
メモリアクセスのタイムラグ
そもそもこの問題を解決するために作られたのがビデオカードだから

959 名前:931 :02/07/22 00:09 ID:???
>ソフトウェアレンダリングで動くゲームは倍リニア・鳥リニア等してるのは無いな
これは私の発言では有りません

960 名前:名前は開発中のものです。 :02/07/22 00:10 ID:???
>多分あなたは一部分の趣旨に過剰に反応し、全体の趣旨を見落としています

全体の趣旨ってなんだ?
ハード任せるか、ソフト処理にするかで選択の基準になるのは以下の4つほどだろう
・速度
・早さ(手軽さ)
・出力品質
・動作保証

前2者は明らかにハードに軍配が上がるのは認める。
しかし、最後の出力品質については、見た目の綺麗汚いも重要だけど、
「品質の保証」要するに、意図した出力を得られる事が重要だと考える。
ハードに任せると、基本的にドライバ、ハードウェアの制限、仕様が
つきまとい、それはハードの種類によって様々で、
利用者(プログラマ)が制御できるたぐいの物ではない。
動作保証はそのまま、ドライバのバグに左右されずに適切な処理が出来るという点。

プログラマの技術によって、速度の点が必要十分なレベルにまでクリア出来るのであれば、
管理コストを考えた上でも、ソフト処理がベストな選択だと考えるんだが。

961 名前:名前は開発中のものです。 :02/07/22 00:13 ID:???
>>958 メモリアクセスのタイムラグ
タイムラグのどこが出力品質なんだよ?
output image qualityとでも言い換えようか?

>>959 これは私の発言では有りません
んじゃぁ、>>953でレスするなよ。
俺は940にレス入れたんだ。

962 名前:名前は開発中のものです。 :02/07/22 00:23 ID:???
>>954
それは直接アクセスとは言わないと思うが。。。

963 名前:931 :02/07/22 00:24 ID:???
>>960
>「品質の保証」
失礼しました、今までの発言はこの点の議論は抜きにしての発言です
出力品質の意味を広義と狭義で取り違えていたようです

私は品質の保証は推奨動作環境で取るものだと考えております
ソフトウェア処理は「ドライバのバグ」に対する究極の解ではありますが、
「開発」コストと表現の幅という意味での出力品質において、
本末転倒な結果となると思うからです
そもそも、PC上で品質の保証を行うには限界がありますので、
どこかで妥協しなければなりません。
当然その妥協点を議論しているわけですが

そうなるのならば、動作環境という方法を用いることで、
コストを軽減した方がより効果的だと述べるまでです
実際、ほとんどの開発でこの方法が取り入れられてはいませんか?

964 名前:名前は開発中のものです。 :02/07/22 00:29 ID:???
とりあえず、俺が考える931の問題点を挙げるか。

>アクションゲームなどの動きの激しいゲームで満足の行く速度を出すのは困難
>かつ、最適化によって自由度が相当下がる場合がある

勝手にアクションゲームでは十分な速度が出せないと結論づけている
最適化で自由度が下がるのは、最適化をやり慣れていないだけ。
必要な部分のみ小さいスコープでピンポイントで最適化すれば構造に大幅な変更は生じない。

>実用的な速度の場合

際限なく速度を求める場合の勘違いか?
実用的の定義ってなんだ?

要するに、トレードオフによる最適な手法の選択というのが出来ない人間だと思える。
俺だって自分の力で解決できない部分はハードに頼る部分はあるが、
あんたの文章を見る限り、あんたはハードウェア至上主義としか見えないんだが。

965 名前:名前は開発中のものです。 :02/07/22 00:33 ID:???
ソフトウェアレンダリングのための、速度追及のための研究開発コストって
誰が払うの?

966 名前:名前は開発中のものです。 :02/07/22 00:35 ID:???
>>965
964の給料。そのために彼は雇われているのです。

967 名前:名前は開発中のものです。 :02/07/22 00:35 ID:???
>>963
一つ聞きたいんだが、ソフトレンダラだと開発コストがかかるってどういうことだ?
もしかして、毎回毎回1からレンダラを書くとでも思っているのか?
ソフトレンダラは言ってしまえば仮想ハードウェア。
一度必要な範囲で高性能な物を書けば、利用側の手間ははハードを使うのと大して変わらない。

自分たちの管理基準の範囲内で、ソフトウェア自体の品質も保証されているので、
その範囲内では無条件に信じてアプリケーションプログラムを書くことも出来る。

968 名前:名前は開発中のものです。 :02/07/22 00:38 ID:???
> ソフトレンダラだと開発コストがかかるってどういうことだ

そんなDQN仕事を好んでやる奴なんてそうそう見つからないからでは?

969 名前:名前は開発中のものです。 :02/07/22 00:44 ID:???
PixelShaderなんてお粗末な物じゃなくて、
FullProgrammableShaderを搭載したらすべて
ビデオカードに処理を任せても良いと思うが、
そうでないならやっぱりどこかで妥協せにゃならん。

970 名前:名前は開発中のものです。 :02/07/22 00:45 ID:???
ハードによる差異って、今現在どれくらいあるんだろ。
以前に比べればカナリ淘汰されてるから、
ソフトレンダ至上主義の彼が思ってるよりは小さいと思うんだけど。

971 名前:名前は開発中のものです。 :02/07/22 01:07 ID:???
>>968
そこら辺に転がってる最適化された転送コードをパクって来て検証するだけじゃん

972 名前:名前は開発中のものです。 :02/07/22 01:16 ID:???
最近の「ソフトウェアレンダラー」な市販PCゲームって
例えばどんなのがあるんですか?

973 名前:名前は開発中のものです。 :02/07/22 11:28 ID:???
エ ロ ゲ ー に き ま っ て る だ ろ う が ! ! !
い わ せ る ん じ ゃ ね え よ

974 名前:名前は開発中のものです。 :02/07/22 18:36 ID:???
2Dで四角形の衝突判定ならバウンディングボックスを使うのはわかるのですが、
その四角形が360度回転する場合、どういう判定方法がありますか?

975 名前:名前は開発中のものです。 :02/07/22 18:40 ID:???
バウンディングボックス

976 名前:974 :02/07/22 18:51 ID:???
>>975
その場合、座標の単純な大小関係じゃないと思いますが何か参考文献ありませんか?
検索しても大小関係での判断か、それ以外だと3Dの判定しか見つかりません。

977 名前:名前は開発中のものです。 :02/07/22 18:56 ID:???
>>976
1 バウンディングボックスで判定
2 でかい方の四角形を4つの直角三角形に分割
2 小さい方の四角形の各頂点が、分割した各三角形の内部にあるか判定

だけじゃないのん?

978 名前:名前は開発中のものです。 :02/07/22 18:57 ID:???
回転出来てる時点でそんなこと聞くまでもないと思うが・・・
また算数から教えなきゃならないのか?

979 名前:名前は開発中のものです。 :02/07/22 20:14 ID:???
>>977
それでは駄目。例えば全く同じ大きさの正方形を2つ完全に重ねた
状態で片方を45度回転させると、どの頂点も相手の正方形の外に出る。

>>978
こういう質問に答えてやらないから、デブ板は中身が無いんだと思う。
974の質問は結構良い質問だと思うが。世の中には疑問にすら思わずに
AABBしか使わない(使えない)人間も多いんだから。
ただ、DirectXの質問ではないからスレ違いではあるが。

980 名前:名前は開発中のものです。 :02/07/22 20:23 ID:???
>>979
頂点じゃなくて、線分の交差にすればいいんでない?

981 名前:名前は開発中のものです。 :02/07/22 21:51 ID:???
>>979
スレ違いかなぁ?他に妥当なスレも無いと思うが。

982 名前:名前は開発中のものです。 :02/07/22 22:18 ID:???
Collision Detectionというそのまんまなスレがあるな

983 名前:名前は開発中のものです。 :02/07/22 22:52 ID:???
>>980
線分の交差だけだと、完全に内包される場合に判定できない。
回←こんな感じ

984 名前:名前は開発中のものです。 :02/07/22 22:55 ID:???
じゃあどうすんの?

985 名前:名前は開発中のものです。 :02/07/22 23:50 ID:???
次スレたてますか?

986 名前:名前は開発中のものです。 :02/07/23 00:20 ID:???
>>984
次スレが立つまでの宿題

987 名前:名前は開発中のものです。 :02/07/23 00:33 ID:???
次スレたてますた
http://game.2ch.net/test/read.cgi/gamedev/1027351925/l50

988 名前:名前は開発中のものです。 :02/07/23 00:34 ID:???
早っ

989 名前:名前は開発中のものです。 :02/07/23 02:46 ID:???
989getaa

990 名前:名前は開発中のものです。 :02/07/23 12:53 ID:???
沙羅曼蛇の1面後半に出てくるピンク色の細胞壁ってどうやって実現してるん
だろう? データ的には、ミサイルやレーザーが当たった座標をバッファに
保存して、最も古く破壊された所から順に復活(再生)させているのだろうけど、
グラフィック的な処理が分からない。

991 名前:名前は開発中のものです。 :02/07/23 21:39 ID:???
埋め立て

992 名前:名前は開発中のものです。 :02/07/23 22:11 ID:???
>>990
壁全体を8x8ピクセル四方に区切って、1つずつ処理してるんじゃないの?

993 名前:名前は開発中のものです。 :02/07/23 22:39 ID:BMDBV8mo
1000GETイクゾー

994 名前: :02/07/23 22:40 ID:???
ほも

995 名前: :02/07/23 22:40 ID:???
勝丸ホモ

996 名前:  :02/07/23 22:41 ID:???
池○ほも

997 名前:  :02/07/23 22:41 ID:???
安心して
ほもほもほも

998 名前:  :02/07/23 22:41 ID:???
 〈 ドモッ、スミマセン....。 〈 スミマセンスミマセン...。 〈 コノトオリデス!
  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄ ̄  ∨ ̄ ̄ ̄ ̄ ̄
 (´Д`;)ヾ       (;´Д`)            ヾ
   ∨)        (  八)         (´Д`;)、
   ((          〉 〉           ノノZ乙

999 名前:   :02/07/23 22:41 ID:???
ひぃひぃ

1000 名前:   :02/07/23 22:42 ID:???
はい1000


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.