鬱だ氏のう DirectX (Part 12)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
DirectXについて、にいさま達がマターリと
技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

ちなみに、言語はC++がメイン。
C# / VB.NET 使いは、専用スレの方が話がスムーズに進むと思われ。
その他は>>2-10 に誰か書いてくれるでしょう
その他は>>3-10 に誰か書いてくれるでしょう
その他は>>4-10 に誰か書いてくれるでしょう
// 外部
- DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.asp
- MSDN > DirectX
http://www.microsoft.com/japan/msdn/directx/default.asp

- DirectX Info Lib (デバイス情報のデータベース。すばらしい!)
http://www.netsphere.jp/dxinfo/
- BBX(掲示板)
http://isweb8.infoseek.co.jp/computer/bbx/
- spin
http://spin.s2c.ne.jp/
- 宇治社中改(3D基礎講座) のミラー
http://web.archive.org/web/20020607052151/http://www.cc.rim.or.jp/~devilman/

// 関連スレ
- Managed DirectX vol.2
http://pc2.2ch.net/test/read.cgi/tech/1061285378/

- ★初心者にVisual C++を教えるスレ★ Part10
http://pc2.2ch.net/test/read.cgi/tech/1074933908/

- Win32API質問箱 Build16
http://pc2.2ch.net/test/read.cgi/tech/1073830065/
6きむたっくん:04/02/13 15:36
ぶっちゃけ宇治社中はわかりずらい
ぶっちゃけ、おすすめの書籍が知りたい
  /WW  
 (.,○∀・)   <ズヴァリ! ここが次スレですな!?
 く[ ⊂]
┏━━━━┓
┃      ┃
そろそろマジでモーションまわりについて語ってください。
素で期待してまつ
もー、しょんがないなあ。
DirectX9リアル対応3Dゲームが出てこない理由

http://www.itmedia.co.jp/anchordesk/articles/0402/12/news090.html
>>11
GeForce FX 駄目すぎ。
それともMSとの仲があまり良くなくなったから
DirectXではなくOpenGLを使わせようとしてる?
不平不満は無能の特徴ですなあ。
HALOの記事に簡略化したりして実装してるって書いてるし
ようは、使い手の問題かと。
まともなプログラマにとっては禿げしくガイシュツな内容であるが
厨房対策としては良く出来た記事だと思われる。
1615:04/02/13 21:29
>>13へのレスだ申し訳ない。
俺はしばらくGeForce Fx向けに技術貯めるわ。
>>11の記事に
「ちなみに、ここで紹介していることは3Dアプリ開発者の間ではもはや既知の事実であり、なんら新しい情報ではない。」
とか書いてあるけど知らないし俺w(レベル低い?でもみんなのところの開発者ってどうよ?)
まずは普通のことが普通にできるようになるまで時間かかりそうだなぁ。
記事中の法線マップなんかは別に浮動小数点でなくてもいいけど
Parthenon Renderer
ttp://members.jcom.home.ne.jp/parthenon_renderer/
みたいなのは使えないとどうしようもないだろ。
実際ATI RADEON9500以降専用になっちゃてる。
というかnVIDIAはこういう物のため遅くなるのを覚悟で
32bit浮動小数点を実装したんじゃなかったけ?
>>17
別にレベル関係ないとおもうねぇ
DirectX9でのPS2.0使ってプログラムしてるプログラマなら常識ということだと思うけど。
>NVIDIAは、この問題について「ドライバで対応可能な問題として認識している」と
>1年以上説明し続けているが、改善されそうな兆しが見えない。
このあたりが駄目すぎ。
>>8
お前は愛が欲しいだけか?
>>12,>>20
キミらの場合はユーザーレベルのじゃれ合いがお似合いのようなので
http://pc3.2ch.net/test/read.cgi/jisaku/1076405574/l50
一般的な3Dのフィールドでそこそこリアルな地面を表現したいのですが、
テクスチャを凝るくらいしか方法ありませんか?
どういう条件の下で。
>>22
nVIDIAの社員?早いとこ使えるドライバ出してよ!
RADEONにしとけばよかったよ。
26デフォルトの名無しさん:04/02/14 04:11
GetPixelのように
ビットマップ上の任意の点の色を調べれるdirectxの関数ってあるのでしょうか?

>>25
いやただのFXユーザーだろ…
単にFX批判にからんでるだけ。
DirectX9世代のボードなら浮動小数点フォーマットは
使えないより使えたほうがいいに決まってる。
>>26
サーフェスとテクスチャにはそういうメソッドはない。必要なら用意する。LockRect。
あるいは、GDIで間に合う部分は素直にGDIを使っとけばいいんでない。

>>25
ぐだぐだウルセーんだよ。消費者の発想のままなら自作PC板に逝け。
29デフォルトの名無しさん:04/02/14 04:42
>>28
お返事ありがとうございます
LockRectをどのように使って色を調べるのでしょうか?
3028:04/02/14 04:51
>>29
日本語ヘルプに書いてある通りだ。フォーマットは既知なのだから
LockRectでゲトしたメモリ領域から所望のピクセルデータをゲトする。
あとはサンプルを検索してちょうだいな。
殺伐としたスレに救世主が!



      ヽ)∵)ノ
      (  (  くねくねマン
       )  )
3222:04/02/14 06:46
>>25
>>27
申し訳ない。俺はRADEON9700なので対岸の火事ですよ。

NVIDIAの現行FX製品群がDirectX9のシェーダ2.0への対応がヘボヘボであっても
OpenGLのNV extensionsの更新にはご熱心の様子だから趣味プログラマは
そっちを叩けば楽しめるだろう。
33デフォルトの名無しさん:04/02/14 09:11
>>28
現時点じゃ消費者は困ってないでしょう。
だって浮動小数云々の機能を使ったゲームなんて出てないですから
「DirectXについてきたサンプルが動かないよ」
ってぐらいじゃないですかね。
あと個人的にnVidiaはDirectX9対応(浮動小数云々の機能を使った)の
ゲームが出た後に対応したドライバを出すと思うよw
だってそれまで何も困らないじゃん。
後だしジャンケンはこの業界の必勝パターンだからね。
今頃になって騒ぎ出してるのはPCゲーマーが大半。プログラマならCgでチマチマ遊んでれば誰でも気付く既出ネタ。
PCゲーマーは市販ゲームの対応度でしか投資(お小遣い)を回収できない。哀れ。
35デフォルトの名無しさん:04/02/14 09:23
>>34
>今頃になって騒ぎ出してるのは
誰も騒ぎ出してないって、ていうか騒ぎ出せないでしょゲームでてないんだから。
自作PC板いくとFx5200とかマンセーしてる奴が結構多いよ。
俺もよく知らなかったからFx5200買っちゃったんだしw
>>33
まぁスレ違いなので手短に書くと、スペック厨は大騒ぎしてるわけですよ。。PCゲーム板と自作ゲーム板に行ってきなされ。
FarCryがまともに動かないとかHL2betaがまともに動かないどうしてくれるバーヤバーヤと癇癪を起こしているクズ共です。
>ゲームが出た後に対応したドライバを出すと思うよw
>後だしジャンケンはこの業界の必勝パターンだからね。

>俺もよく知らなかったからFx5200買っちゃったんだしw
>俺もよく知らなかったからFx5200買っちゃったんだしw
>俺もよく知らなかったからFx5200買っちゃったんだしw

えーと、義務的に・・・FX厨必死だな。と。もう他所でやれよ喪前ら。
3836:04/02/14 09:35
なんだよ・・・
結局は提灯記事に騙されてFX買っちまった香具師らが騒いでたんじゃねーか。アフォ草。
悪いことは言わないから喪前らCgでマターリ遊んでなさい。それが精神衛生上良いでしょう。
>>36
そんないまさらじゃん3DMark03から満足に動かないんだから。

>>37
いや重要なことだろうがそもそもここでFx買うかRADEON買うかで
DirectXやるにもかなり環境が変わっちゃうんだから。

まあ、「これから買う奴はRADEON9500以上を買えよ」ということで。
しかし、いつもながら "FX" という名前は呪われているな。。。

とても偶然とは思えない。
PC-FX!
4236:04/02/14 10:02
>>33=>>35=>>39よ。悪いことは言わない。APIに拘ってる時点でダメポだ。
ベンダー間の駆け引きに振り回されて嘆いてる負け犬になるなと言いたい。俺もFXユーザだ。強くイ`
友情
>>42
負け犬っつーか流れ弾に直撃してるな俺等。
( ´д)ヒソ(´д`)ヒソ(д` )
放置できない病
殺伐としたスレに救世主が!



      ヽ)∵)ノ
      (  (  くねくねマン
       )  )
それはオーボエ・・
寒すぎ。オヤジってマジキモイ
飲み会でも寒いこといってるけど、正直キモイだけだから
>>33
>現時点じゃ消費者は困ってないでしょう。
>だって浮動小数云々の機能を使ったゲームなんて出てないですから
困ってるわけじゃないけど >>18 が言ってるParthenonレンダラが
動かなくてショックでした。
GIで1フレーム当り60秒ってのはかなり魅力かと。
不動小数バッファはこういうの向きでゲームでは必要性が薄いと思う。
あと現状ではゲームに使うには制限が多すぎるし。
ttp://www.f-team.org/setagaya/techmemo.html
の方が2001/04/23に書いておられるような
簡単に「凹な空間を凸な空間に分割する方法」を知りたいのですが。
DX8.1で、環境マッピングと、バンプマッピングと、ピクセル単位のスペキュラーを描画する
バーテックスシェーダとピクセルシェーダを書いてみた。
でもライトは1つの平行光線しか対応できなかった。これじゃショボくて使えない・・・
やっぱシェーダプログラムって使用する光源の数や種類ごとに自作しないとなんないの?
オレシェーダ使うの止めた。
動きませんって報告が多過ぎる。
ついでにDX8.1にバージョンダウンした。
55デフォルトの名無しさん:04/02/14 20:00
>>53
どっかのサイトで読んだのでは光源数に応じてシェーダ複数書いたみたいな
よっぽど光源に凝るタイプのゲームで無ければ
一つの物体に対して当たるライトなんて1〜2あれば十分だから
それでなんとかなったのでは

おれはシェーダやってないから詳しく知らんけど VS_20 移行だとループ処理が使えるみたいよ
まぁ、そのためには VS_20 に対応しているカードが普及してもらわなきゃ困るわけで
それが普及するためには上の論争になってしまうわけですが
5653:04/02/14 20:58
>>55 やっぱそうなのか。結構面倒ですな。
太陽光の他に、副光源やスポットライト1つあるだけでも、かなり雰囲気が
よくなるので、使えるようにいじってみよう…
あと>>53のシェーダのテキストファイル欲しいって人がいればUPするけどいる?
57デフォルトの名無しさん:04/02/14 21:12
>>56
いらないって。
組んだんならわかってると思うけど、環境マップにしてもバンプマップにしても
手間がかかるのはシェーダの部分じゃないでそ。

あと、HLSLでかなり組みやすくなるからさっさと9に移行しちゃうのが吉。
ループが使えればライトが複数使えるようになるわけだからここはVS2.0普及待ち。
が、いいと俺は思う。どうだろう・・・。
5857:04/02/14 21:14
あ、ちなみに俺もVSとPSの両方とも2.0を触ったことないのでループができるかどうかは知らない。すまん。
5957:04/02/14 21:27
ちなみに前のスレでも書いたんだけど
VSもPSも命令数に限りがあるから(VSは結構書いても大丈夫だけどPSは限界がすぐ)
ライト2つは無理なシェーダが多いと思うよ(バージョンにもよるけど)。

だからライトを複数使いたいなら2.0に移っちゃった方がいいと思われ。
そんときにHLSLにしちゃった方が楽。

ちなみにこの辺の詳しい情報はt-potさんの出した
DirectX9シェーダプログラミングブック
がお勧め。
これ読んでから手をつけないと絶対に損する。(しなくていい苦労ばっかりするのは嫌だし)
>>24
想定してるのはシェーダ無し、マルチテクスチャ2枚、ライト1、
テクスチャサイズ512x512、頂点少な目、くらいの環境だけど、
逆にシェーダ有り、テクスチャ無制限だとどういう方法が可能かもしりたい。
6153:04/02/14 21:41
>>57 情報アリがd
やっぱ最新グラボ買うのが手っ取り早そうだな。街でたらついでに
DirectX9シェーダプログラミングブックも読んでみるよ。
>>59
なんか勘違いしてない?
普通にライト使う分にはVS回すだけでPS側は複数ライトでもかわらんよ?
バンプ複数光源ってなら話は別だが、
そもそもバンプ複数光源は現在のPSの速度では無謀
PSが最大8命令と知ったときは少し泣けた。それはそれでいろいろできると気づいたけど。
ありゃ?通らないぞスペル間違ったかな?とか悩んだりした。

>>60 バンプは強力。アスファルトの道路や打ちっぱなしのコンクリートとか、
画像の濃淡から作ったテキトーな法線マップ使っただけでも相当リアルに見える。
>>62
すまん。
俺のは「面倒」って意味合いが強い。
できないってことじゃないのでよろ。

ちなみに
>DX8.1で、環境マッピングと、バンプマッピングと、ピクセル単位のスペキュラーを描画する
>バーテックスシェーダとピクセルシェーダを書いてみた。
これだと環境マップだけ?

ただ、こんな糞作業で10個も20個も手間かけてシェーダ組むのは(シェーダよりプログラム側のが複雑になりそう)
やっぱりお勧めできないw(ボーンもあるしね)
(できないってことではないのでよろ)
どうせならループが普及するのを待ちたいw
っていう腐れ根性なのでよろ。
混乱させてすまん。
うちのノートPCはDirectX9非対応なのでDirect3D機能(といっても2Dなのでスプライトの回転くらい)をソフトウェアでやるしかないわけですが
案の定おっそろしく遅いんです。
DirectX9対応ビデオボード搭載機種に買い換えるしかないでしょうか?あ、DirectX8以前使えというのはなしの方向で。
DirectX9インストすりゃいいやん
あ、そういう問題じゃなかった_| ̄|○
それだとDirectX8インストしてもだめだよ
初心者で申し訳ないんですが、
フルスクリーンやウィンドウ化ってどんなAPI使えばいいのでしょうか?
VBやVCで遊んでいるのですが、どうやっても見つかりません。
そこらへんの技術に関するHPでも構いませんので、
どなたか教えて下さい。

よろしくお願いいたします。
>>65
ノートPCのグラボ交換なら自作PC板の奴のが詳しいと思われ。

>>68
>フルスクリーンやウィンドウ化って
いまいち何が聞きたいのかわからないな。
DirectXでやるならPRESENT_PARAMETERSの該当部分を変更してReset
DirectX以外のほうはスレ違い、っていうより知らない
>>64
こちらこそすまん。
>俺のは「面倒」って意味合いが強い。
確かにHLSLなら楽だね。
でも、シェーダをそのまま書くならPS1.1も2.0も似たような労力だと思われ。

オレはライトやらテクスチャやらの
全ての組み合わせシェーダを吐き出すツールを作ったけどね。
ポストエフェクト用とかの特殊なシェーダは手で書いてるけど
>>65
>DirectX9非対応なので

というよりも、D3D HALが無いのでハードウエア支援が全く得られないってこと。
旧世代のビデオチップでもとりあえずD3D HALさえあればそれなりの支援が得られる。
73デフォルトの名無しさん:04/02/15 01:28
>>71
なんかすごいことやってるね。
全パターン用意かぁ。

ところで誰が考案したのか知らないけどこの腐り具合はシェーダの分け方がよくないのかなぁ。
ボーンやライトの数はループ命令でなんとかスマートになりそうだけど。
バンプかけた物体をnVidiaのサンプルにあるみたいな頂点いじってノイズかけて見たいとかいうとき
バンプ(普通の)
バンプ(ノイズ入り)
と用意しなきゃならんのが汎用性ないなぁと思う。
もちろんノイズと普通のと2つしかないならどうでもいいと思うんだけど。
実際はもっと色々と出てくるかなぁと考えるとなんかやる気無くなるw

妄想
頂点ストリームごとに頂点シェーダを設定できるようになればいくらかましになるだろうかとか考えてみたりして。
oPosはoPos用のシェーダを選んで突っ込めるとか・・・
7473:04/02/15 01:30
あ、間違え
頂点ストリームごとじゃなくて・・・?なんだろ?w
>>65
>DirectX9対応ビデオボード搭載機種に買い換える

搭載機種に買い換えるんでなくパーツ買って組め
プログラマなら中身いろいろ取り変えれる自作の方が便利だぞ

>>69
SetWindowLong のことが訊きたいんじゃないんだろうか
>>68
初心者なら本を買え。勉強に金をケチるな
大抵基本的なことから書いてるはずだ
今我輩のすぐそばにある書籍にDirectX9実践プログラミング(工学社)があるが、そこにも書いてある
7765:04/02/15 09:46
いろいろどうもです。
しかし、気になるのはD3D_HAL使えない(はずの)ビデオボードでもエミュレーションで
D3D_HALで動かす方法があるという話をちらっと聞いた覚えがあるのです。
そのあたりを詳しい方がいたら「本当にそんなことができるのか」「できたとしてD3D_REFよりは速くなるのか」を
お聞きしたいと思います。
>本当にそんなことができるのか
出来る。

>できたとしてD3D_REFよりは速くなるのか
>>77がどうエミュレーションレイヤーを作るかによる。

まあ、せいぜいがんばれ。
7953:04/02/15 10:33
>>64 1度にその3種類を処理させてみたよ。
でもoD0にバンブ用ベクトル、oD1にスペキュラ用ベクトルを入れてるので、
他の光源情報入れるとこないのよ。まあ背景オブジェクトの描画ならこれでもいいかな?
昨日夢の中で、複数の光源情報を空いてるテクスチャに入れとく方法を考えついた。
目覚めたら忘れた。
      ↓>>1-1000
      _,‐―‐、,---、
   /     ヾ  \
   /      /i \ ヽ
   | | ///.ノ | | | |\、|  / ̄ ̄ ̄ ̄ ̄ ̄
  i' .| | -=・=| ト=・= |.|||<RADEON最高
  |  | 'ー―‐,! '――' .||  \______
  | | .|    (_^_)   | |
  .|  ト、  =⇒  /| ||
  | i ゝ\      /| | ||
 //∧|   ~`ー‐/ | | | |
   ( *  ヽー--' ヽ )
   (∵ ;)  ゚ ノヽ  ゚ ):)
   (: ・ )--―'⌒ー--`,_)
   (___)ーニ三三ニ-)
   (∴ ー' ̄⌒ヽニ3 )
    `l ・  . /メ /
     ヽ ∵  /~- /
     (__)))))_)))))
>>80
こういうでかいAAは見難くなるから冗談でもやめてくれないかなぁ。
directxのフルスクリーン時に文字や変数を表示するにはどの命令を使えばいいのですか?
デバッグ時の表示に使いたいためのものかな?
それならGetDC使ってTextOutとか。画面表示はリアルタイムで見れて便利なときはあるよね
俺はデバッグ用出力ファイルに吐き出すことが多いけど、ログに残るからそれはそれで便利
>>83
はい、デバック時に表示したいので
getDCとTextout調べてみます
drectx使ってない時にウインドに変数を表示するやり方と一緒なのですか?
調べてから質問せい。見ればそんな質問は出てこないと思うぞ。
つーか、やってみればいいだけなのに。。。
>>85
>>86
できました

ありがとうございました
シェーダーデバッガ使うのって結構マンドくさそうね・・・(´・ω・`)
89デフォルトの名無しさん:04/02/17 04:17
D3DXLoadMeshHierarchyFromX()関数の3つめの引数のLPDIRECT3DDEVICE9 pDeviceって
普通にDirectX9初期化時にCreateDevice()で作成したものを指定してもダメなのでしょうか?
D3DXLoadMeshHierarchyFromX()関数の終了行でエラーが出ます。
コメントなどで、原因がpDeviceっぽいのですが、みなさんはどうやって
引数を指定してあげてるのでしょうか?
レベルの低い質問で申し訳です
 ;'`:;'⌒;'`'`,;~) ' `'` ;'⌒`,;~)
:"     `,..,")`,..," `_:"` ,"`、
                '~`.,
    ,......,    ..,     ,ヾ)
ヾ,.;'ヾ,.;  '^ヾ,.;'ヾ;;;;'゙`゙'゙`;,.,.ヾ)
ヾ,.;″          , ヾ;,) 
                )
  ー――-,,     ,,,,-'" i)
  ____ ヾ   / ___ i′
  ヽ(;;;;)丿     '.(;;;)ノ i    ─┼─
             ̄  i   ─┼─
       (.,,. .,,.)     i      │   
               ,i       | | /
     ,、____,    i          _/
       .---‐    ,ノ
ヽ ヽ、   _  _  _  ,ノ

俺が仕事も勉強もしないのは別にできないからじゃない。
やりたくないわけでもない。
くだらない事に時間を費やすくらいなら、今は自分を見つめていたい。
こんなことって、
世間のがさつで無神経な奴らには絶対に理解できないだろうし、してほしくもない。
91デフォルトの名無しさん:04/02/17 13:04
ちょっとお聞きしたいです。

グローバル宣言で
LPDIRECT3DTEXTURE lpD3DTexture[64] =NULL;
とするとエラーが出るのはわかるのですが
配列で宣言することはできないのでしょうか?
lpD3DTexture[64] = {0,0,0,0,0,0(略)・・];
とするか素直にコンストラクタ等で
for使って初期化
間違えた…91への答えになってないな
配列で宣言することは「できます」

LPDIRECT3DTEXTURE lpD3DTexture[64];

配列なのに後ろにNULL1つでで初期化しようとしてるのが失敗
94デフォルトの名無しさん:04/02/17 13:11
>>93
即レス マジ サンクスです。

めっちゃ助かりました。

ありがとう!!!
どういたしました。
LPDIRECT3DTEXTURE lpD3DTexture[64] = {NULL};

つーか、グローバルなら何もしなくても0で初期化されることは保証されている
>LPDIRECT3DTEXTURE lpD3DTexture[64] = {NULL};
これでは一つしか初期化されない。

>つーか、グローバルなら何もしなくても0で初期化されることは保証されている
そんな保証は無い。
>>97
>これでは一つしか初期化されない。
そんなことは無いよ。
>そんな保証は無い。
組み込み用でバグバグあるいは仕様に制限が沢山あるコンパイラでもなければ、保障されてるよ。
ローカル変数と勘違いしている予感・・・
なるほど勉強になたなぁ
int hoge[64] = { 1 };
静的変数でコレをやると最初の変数が1で初期化されて後は0
自動変数でコレをやると最初の変数は1で初期化されて後は未定義
こういうことかな
DirectX以前の話だな。
>89
俺はcreatedeviceで作ったデバイスで普通にいけるよ。
104デフォルトの名無しさん:04/02/17 20:27
// 協調レベルの設定
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWREBOOT);

if (hRet != DD_OK)
return InitFail(hWnd, hRet, "SetCooperativeLevel FAILED");


// 協調レベルの設定
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);

if (hRet != DD_OK)
return InitFail(hWnd, hRet, "SetCooperativeLevel FAILED");

にすると実行時にSetCooperativeLevel FAILEDとエラーがでます
どうすればいいのでしょうか?
>>104
じゃあ引数変えなければいいじゃん。
106デフォルトの名無しさん:04/02/17 20:53
>>105
フルスクリーンモードじゃなくてウインドウモードにしたいんです
DD_OKじゃないときの値を調べるのが先決だろ
DirectMusicでoggをストリーム演奏させてたんだけど、
演奏が時々ぶつ切りになるし不安になってきた…
あれIStreamのReadってどういうタイミングで呼ばれるのかよく分からん…。
状況がわかりやすいDirectSoundに切り替えようかなあと思案中なのだが。
109デフォルトの名無しさん:04/02/17 22:21
// 協調レベルの設定
HDC hdc;
hdc = GetDC(hWnd);
char str[100];
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE | DDSCL_NORMAL| DDSCL_ALLOWREBOOT);
sprintf(str,"%c", hRet);
TextOut(hdc , 10 , 10 , (LPCSTR)str , strlen(str));
ReleaseDC(hWnd , hdc);
if (hRet != DD_OK)
return InitFail(hWnd, hRet, "SetCooperativeLevel FAILED");

これでhRetの値調べて原因調べようとしたけど
SetCooperativeLevel FAILEDとエラーが出て
ウインドウにはWとしか表示されませんでした、どこかおかしなとこありますか?
糞して寝よっと。
EXCLUSIVEはFULLSCREENが必須用件だったと思う
>DDSCL_EXCLUSIVE | DDSCL_NORMAL
滅茶苦茶だな。
>>101
int hoge[64] = { 1 };
自動変数でも hoge[1]からhoge[63]まで0でしょ。
>sprintf(str,"%c", hRet);
>TextOut(hdc , 10 , 10 , (LPCSTR)str , strlen(str));
>ウインドウにはWとしか表示されませんでした
ネタかよ
こうしたらどうなるよ。
sprintf(str,"%x", hRet);

飯食いに行くけどね
116デフォルトの名無しさん:04/02/17 22:52
>>111
>>112
>>115
HDC hdc;
hdc = GetDC(hWnd);
char str[100];
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
sprintf(str,"%x", hRet);
TextOut(hdc , 10 , 10 , (LPCSTR)str , strlen(str));
ReleaseDC(hWnd , hdc);
if (hRet != DD_OK)
return InitFail(hWnd, hRet, "SetCooperativeLevel FAILED");

に変更してみましたけどCreateSurface FAILEDと出ました
ウインドにはなにも表示されませんでした

>>114
ネタじゃないです
プログラミング歴1週間なのでいろいろ間違いがあると思いますが…
>sprintf(str,"%x", hRet);
じゃなくて
>sprintf(str,"%p", hRet);
だよ
>>113
え?マジ?と思って実験したらマジでなった。正直びびった。
こんな言語仕様なんか知らなかったYO。
>>118
ていうか、仕事では書かないでほしいコードだな。
わけがわからない。
構造体の最初のメンバをサイズにするのは、こうやって初期化完了させるためだし。

DDSURFACEDESC ddsd = { sizeof(DDSURFACEDESC) };
な、なんだってー!
別にサイズじゃなくてもいいが
ddsd.dwSize = sizeof(DDSURFACEDESC);とやってたヤシの数→ (2)
大体MSのサンプルコードだって>>123みたいになってるじゃんヽ(`Д´)ノ

→(3)
>>119
終わってるな。
>>125
パッと見直感的じゃないのは俺の中では全部駄目なんだ。
言語仕様の詳細を知らないと動作が把握できないソースを
わざわざ書く意味がわからない。
これ↓

DDSURFACEDESC ddsd = { sizeof(DDSURFACEDESC) };

では何をしているのかわけがわからない。
dwSizeが必ず先頭にあるということを知っておかなければ理解が
できないソースというのが気持ち悪い。

DDSURFACEDESC ddsd;
ddsd.dwSize = sizeof(DDSURFACEDESC);

の方が普通はわかりやすいはずだ。
この意見に異論がある奴はスレ違いなのでこっちへこい。
http://tv3.2ch.net/test/read.cgi/geinin/1042054245/
相手になるぞ。
芸人板住人には通用しない(`・ω・´)シャキーン
ウホッ
DDSURFACEDESC ddsd = { sizeof(DDSURFACEDESC) };

DDSURFACEDESC ddsd;
ddsd.dwSize = sizeof(DDSURFACEDESC);

は間違い

DDSURFACEDESC ddsd = { sizeof(DDSURFACEDESC) };

DDSURFACEDESC ddsd;
ZeroMemory(&ddsd);
ddsd.dwSize = sizeof(DDSURFACEDESC);

これが正解っしょ、こうなるとドッチが見やすいかは微妙になてくるとおもうけどねぇ
>>129
ZeroMemory 使う方がいいのでは?
dwSize が必ずあればいいけど
D3DSURFACE_DESC みたいに dwSize 無いやつもあるし。
無い時はエラー出てくれたほうがいいと思う。
コーディングスタイルと一緒で正解も何も無いと思う…。
漏れはローカルスコープで変数を初期化リストに入れたりして
便利に使ってるよ。
( ゚Д゚)……

私は、この掲示板の書き込みを見て、目を疑いました。
(英訳風)
>>132
どれとどれとどれよ
>116
error : "CreateSurface FAILED" 定義されていない単語です。

初心者なればこそ、人に聞かずに情報を集めること、を学べ。


>129
DDSURFACEDESC ddsd = {0};
ddsd.dwSize = sizeof(DDSURFACEDESC);
2行だしZeroMemory要らないし。
はい次
134は頭がおかしかったようだ
137116:04/02/18 06:53
>>134
調べてみましたけど資料が少なくて参考にならなかったです



if (hRet != DD_OK)
hRetにDD_OKって文字が入ることもあるんですか?
138134:04/02/18 07:19
>136
何か変か?
確かにerror〜は面白くないネタでスマソだが。

>137
それが、情報を集める力が足りてないって事。

とりあえずDirectXやる前に
>hRetにDD_OKって文字が入ることもあるんですか?
こんな事を訊かないぐらいのCの知識は持っていてくれ。

あと>134のも一応説明しておくと、
>109のエラーと違って、"CreateSurface FAILED"って単語が、
提示されたソースの中に含まれていないのに、どうしろと。ってこと。
139116:04/02/18 07:28
>>138
cの本調べてもこのようなif (hRet != DD_OK)文字との比較なんか載ってなかったです
if (a != 0)とか数字との比較のことしか載ってまっせんでした

// プライマリ・サーフェイスの生成
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
hRet = g_pDD->CreateSurface(&ddsd, &g_pDDSPrimary, NULL);
if (hRet != DD_OK)
return InitFail(hWnd, hRet, "CreateSurface FAILED");

CreateSurface FAILEDの部分です
ちゃうよ。FAILDならその理由がhRetに入ってるんだから
それをチェックしろと言ってるんだよ
ゆうべのsprintf で出たstrを"CreateSurface FAILED"の代わりに入れてみ
141116:04/02/18 09:08
>>140
// 協調レベルの設定
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWREBOOT);
の時は// プライマリ・サーフェイスの生成がうまくいくのですがこのときのhRetには (null) が入ってました

だけど

// 協調レベルの設定
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
の時は// プライマリ・サーフェイスの生成のところで設置したsprintfでhRetの値を表示する前後で
CreateSurface FAILEDとは違ったエラーが発生してるみたいでhRetの値を表示できませんでした

142116:04/02/18 09:08
>>141の続き
そのエラーはoutput,cの
#else /* _UNICODE */
if (flags & (FL_LONG|FL_WIDECHAR)) {
if (text.wz == NULL) /* NULL passed, use special string */
text.wz = __wnullstring;
bufferiswide = 1;
pwch = text.wz;
while ( i-- && *pwch )
++pwch;
textlen = (int)(pwch - text.wz);
/* textlen now contains length in wide chars */
} else {
if (text.sz == NULL) /* NULL passed, use special string */
text.sz = __nullstring;
p = text.sz;
while (i-- && *p)
++p;
textlen = (int)(p - text.sz); /* length of the string */
}
のwhile (i-- && *p)で起こっているそうです

フルスクリーンになるとブレイクポイントを使ったデバックもできなくなるみたいで
なかなか思うように作業がすすみません





C言語使うのやめれば?
144116:04/02/18 09:20
>>143
HSPとか使ってたんですけど物足りなくなったのでC言語をやりはじめたんです
コピペしただけだしこの前後知らんからなんともいえんが、
↓のようにできないか?

char str[100];
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
sprintf(str,"SetCooperativeLevel FAILED(%x)", hRet);
if (hRet != DD_OK)
return InitFail(hWnd, hRet, str);
プログラマーやめれば?
148デフォルトの名無しさん:04/02/18 17:30
最近のボードって wbuffer サポートしてない見たいなんだけど
俺の作ったPG 24bit ZでもZ-Fightingしまくりなんです、逃げ道ありますか
hetare na dake
ヘタレ矯正ギプスの手がかりキボン
wbufferはFX5200でもサポートされてないね。
    ,......,    ..,     ,ヾ)
ヾ,.;'ヾ,.;  '^ヾ,.;'ヾ;;;;'゙`゙'゙`;,.,.ヾ)
ヾ,.;″          , ヾ;,) 
                )
  ー――-,,     ,,,,-'" i)
  ____ ヾ   / ___ i′
  ヽ(;;;;)丿     '.(;;;)ノ i    ─┼─
             ̄  i   ─┼─
       (.,,. .,,.)     i      │   
               ,i       | | /
     ,、____,    i          _/
       .---‐    ,ノ
ヽ ヽ、   _  _  _  ,ノ

俺が仕事も勉強もしないのは別にできないからじゃない。
やりたくないわけでもない。
くだらない事に時間を費やすくらいなら、今は自分を見つめていたい。
こんなことって、
世間のがさつで無神経な奴らには絶対に理解できないだろうし、してほしくもない。
http://uniup.hp.infoseek.co.jp/cgi-bin/img-box/img20040208183457.jpg
>>116
DD_OK という文字列を右クリック -> 定義位置を参照

これで分からないようであれば、
C言語からやり直した方が将来的にも良いかと。
154153:04/02/18 21:23
"定義位置を参照" じゃなくて

"定義位置を表示" か "定義へ移動" だったか…
DDのフルスクリーンだとリモートのが楽ではあるな・・
すみません。directx9を今勉強しているのですが、ゲームを作る場合
さきに2Dのゲームの作り方を勉強してから3Dのゲームを勉強したほうがいいのでしょうか?
それとも3Dのゲームからはじめてもいいのでしょうか?
>>157
自分のやりたい方から始める方がいいよ
知識やテクはあとからついてくるし
>>157
3Dからでいい。
>>157
もっとゲーム以外の根本的なことから勉強した方がいい
161148:04/02/19 02:10
>>156
まだ解決できないけんどなんとなく手がかりになったデラありがとん
162104:04/02/19 07:33
すいません、自分の書き込み見直したら

>>104
>にすると実行時にSetCooperativeLevel FAILEDとエラーがでます
が書き間違いで
>にすると実行時にCreateSurface FAILEDとエラーがでます
でした

あと

>>109
>SetCooperativeLevel FAILEDとエラーが出て
の部分も
>CreateSurface FAILEDとエラーが出て
に訂正します

すいませんでした
163104:04/02/19 07:49
>>145
>>162で間違い訂正しましたのでその間違いをふまえた上で以下のように変更してみました

// 協調レベルの設定
hRet = g_pDD->SetCooperativeLevel(hWnd, DDSCL_NORMAL);
の状態で
// プライマリ・サーフェイスの生成

char str[100];
sprintf(str,"CreateSurface FAILED(%x)", hRet);
if (hRet != DD_OK)
return InitFail(hWnd, hRet, "CreateSurface FAILED");
に変更して実行すると

CreateSurface FAILED(887600e1) と出ました

>>154
#define DD_OK S_OK

#define S_OK ((HRESULT)0x00000000L)
となってました

#define SCREEN_WIDTH 640こんな感じの定義しか見たことないので((HRESULT)0x00000000L)の意味もよくわかりません

>>155
リモートってなんですか?
典型的な教えて君だな…。
#define の意味すらわかってないじゃねぇか
俺はうんざりしてきたからもうスルー
足し算もできないくせに、二次方程式を解こうとするような手合いですな。
最近このスレこんなんばっか。┐('〜`;)┌ゲンナリ
あはははは ここは笑うところだぞ
笑っとけ。ぎゃははははは
あーおかしい
169157:04/02/19 09:43
>>158-160
回答ありがとうございます。
とあるサイトで「さきに2Dをやっといたほうがいい」ということが書いてあったので、
先にどっちをやろうか迷っていたのです。(directx9の本には3Dのことばかり書いてあるので)

それでは3Dのほうを勉強させていただきます。ありがとうございました。
>>163
>CreateSurface FAILED(887600e1) と出ました
それならば887600e1をDXErr.exeで調べれば、原因と対処法を教えてくれる。

オープンソースのDirectX用ライブラリは多く出回っている。
該当する部分をチェックすれば、正しいやり方とかわかってくると思う。
>163
Cをもっと理解してから出直すか、HSPでもやっとけ。
とにかく今ここにいても、おまえに与えられるものは何もない。
   ガチャ        
  _____________
  |__/⌒i__________/|
  | '`-イ.|∵∴(・)∴∴.(・)∴|  |  .|  tanasinn
  |ヽ ノ |∵∵∵/ ○\∵|  |  .|
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

   バタン

  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |                   |
  |                   |
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
しかし、最近のCマガはひっどいなー
すこしでも期待した漏れがアフォだった。
>>173
激しく同意。
しかし、結構いい記事もあるにはある。
そろそろJavaマガジンに改名すべきじゃないかな?
>>175
いや、ありゃコンピューターのCらしい。
          _巛__
        /∵∴∵∴\
       /∵∴∴,(・)(・)|
       |∵∵/    ●ヽ|
       |∵ /____|____)   tanasinn
       |∴ \_____/
       |∵∴∵━━○┥
      │∵∴/___|
       |∵/∵\\__./|
       ○:/∴/∵∴|丶\
      ノ∴/∵/∴∵|∵ヽ ゝ
        ̄ ̄ ̄| ̄| ̄| ̄ ̄
           | ̄| ̄|
           L ⌒l⌒l
       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ゲームを作りたくてこのスレに迷い込んできた人間はゲーム製作板を活用してほしいねぇ。

やねうらお様マンセー!!!!

DirectX Graphicsで2D!!!

ぷよーんと同じネタやってるう!!!
   __(^^) <ペイピッポォ
  /__ \
  | |   |  |
  (_) (__)
愛用ツール:ツクール
やねうら某氏のサイトは勉強になるにゃー。
今月のCマガもDirectX Graphicsで2Dやってたね。
流行ってるのかな?
サンプルがDirectX8だったんだけど、書き直す時間がなかったのかな。
Cマガ、言語は何を使ってました?
跳梁跋扈の春休み
DirectX Graphicsで2Dって簡単にできそうだけどどうなのさ?
 /WW  
 (.,○∀・)   <魑魅魍魎の跳梁跋扈する頻闇の帳が
 く[ ⊂]       スレを包む宵、決闘の緞帳が開く!
┏━━━━┓
┃      ┃

>>183
流行ってるってーか、まあフツーの流れだあね。

>>186
まあ簡単だあね。こんなカンジで。
http://www.mvps.org/directx/articles/blit3d.htm
18865=77:04/02/20 09:27
VC+DirectX9でのエミュレーションレイヤーについて扱っているHPが見当たらないのですが
どうやって勉強したらいいでしょうか?
いい本がありますか?


にしても、これだけ苦労してD3D_REFとほとんど同じ速度だったら(´Д`)だな。
>>188
誰が存在すると言った?
PCがHELでしか描画できない環境で
レイヤーを書くためにそのことが書いてある本を買うくらいなら
俺はGeForce4MXを買うだろうな
と思ったら、ノートPCなのね。
そういう場合はDirectDrawで2D専用のエンジンを書いたほうがよいと思います。
MSでさえHELの開発をやめたのに、
>どうやって勉強したらいいでしょうか?
とかいっている段階の奴が作れるはずがない。
いいじゃんHELもんじゃないし
( ´д) ヒソ (´д`) ヒソ (д` )
もうすぐHALですね
でも8以降のリファレンスラスタライザはなんとかしてほしいぞ。いくらなんでも遅すぎ。
DirectXをネットに繋がなくてもダウンロード出来るファイルってどこにあるか知りませんか?
CD-ROMに焼いて他のパソコンに入れたいと思ったんですが、場所を忘れてしまって(ノД`)

よろしくお願いしまつ(´・ω・`)
198197:04/02/20 12:36
ゴメソ、発見してしまった。
今の話はなかった事に_| ̄|○
     ___    _
   /∵∴∵.|∧∧|∴\
   /∵∴∵∴|(゚∀゚)|∵∴\ < tanasinn
  /∵∴(・)∴.|.⊃⊂|∴.(・) |
  |∵∵∵./ |.∪∪|○\∵|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

     ___ _ガシャ
   /∵∴∵.||∴\─_ _
   /∵∴∵∴||∵∴\― - ―
  /∵∴(・)∴.||∴.(・) |― ―-−
  |∵∵∵./ ||○\∵|−-―−
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
結局D3DPOOL_MANAGEDとD3DPOOL_DEFAULTどっち使えばいいのよ?
「結局」ってなにが言いたいんだ?
自分がどう実装するか次第なんだから、他人に結論を求めても意味がないだろ。
そういえば タダシン って元気でやってるの?
>>201
違いを教えて。エロい人。
>>203
ヘルプに書いてある。
>>204
      ____
     /∵∴∵∴\
    /∵∴/∴∵\\
   /∵∴●∴∴.● |   
   |∵∵∵/ ●\∵|    tanasinnだね
   |∵∵ /三 | 三| |  
   |∵∵ |\_|_/| | 
    \∵ | \__ノ .|/ 
   / \|___/\
>>204
読みましたがD3DPOOL_DEFAULTの存在意義が行間から読み込めません。
教えてエロイ人
違いのわかる男になれと言う神の啓示。
10回目に読み込めました。サントス
3Dアクションゲームを作成しているのですが
背景(空などの遠いもの)のテクスチャーは球に貼り付けるのか
箱に貼り付けるのか、1枚絵として用意するのか、どれが一番一般的なのでしょうか?
スカイドームかスカイボックスか4点の2Dポリゴンに貼り付けか
ということなのですが。
チンポにテッシュ貼り付いてたよ
>>209
そりゃキューブマップに流用できっからスカイボックスの方じゃないの?
ドームかボックスだけどそりゃ用意するテクスチャによるだろ?
ドーム用のテクスチャ用意する人(できる人)ってとりあえず見たこと無いから(俺は)
スカイボックスでいいんでない?
これだったらモデリングソフトで簡単に作れるって話。
212209:04/02/20 22:24
>>211
アドバイスありがとうございます。
スカイドームを自分でがんばって計算してました><。
そか、モデリングソフトでよかった・・・・のですか。
213210:04/02/20 22:36
おい、弄ってくれよオマイラ
214デフォルトの名無しさん:04/02/21 00:01
DoGaでメッシュを作成し、読み込んだのですが
真っ白に表示されてしまいます。
これは何が原因でしょうか。
215デフォルトの名無しさん:04/02/21 00:09
真っ白に燃え尽きました
>>213
(´゚∀゚`)
>>214
         _._._._              __
        | | | | |.             |.||
       ) .  vヽ.          丿 ソ
        ヽ   ノ__.       _/___/
       ノ____ノ∵∴∵ヽ     /:∴/
      /∴∵/:(・)∴.(・)ヽ   /∵:/
      /∵∴/∵/ ○\:l  ./:∴/
     /∴/:/:./三 | 三|:| /∵:/   tanasinn
     /∵/:/∴| __|__ |:| /:∴/
    /∴/:/ヽ.:|  === .|ノ:∵:/
    /∵/:く∴:ヽ\__/∵∴/
           ━(〒)━
先っちょが痛くなってきた
ぬう。

D3DXLoadSurfaceFromMemory で D3DX_FILTER_NONE 指定して
転送してたんだが、 自分で テクスチャをLockして矩形を転送したほうが
遥かにはやかった。

なんでだろ?
ディレクトエックスのバグフィックスに疲れました、さようなら…
新規作成(W)
  __
//∴\___
|∵<・>∴∴<・>∵|
|∵∵/ ●\ ∵..|
|∵ /三 | 三|∵ |
|∵ |\_|_/|∵|
|  | \__ノ  | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
tanasinnフォルダ(3)
>>214
・メッシュに法線がない。
・ライトの影響をうけないようになっている。
・マテリアルが真っ白だ。
・ディスプレイが白黒だ。

>>219
D3DXLoadSurfaceFromMemoryは布団の中でゴソゴソするタイプ。
おれも普通にロックして転送してるよ。
俺は1000ポリゴンくらいの球のモデルにテクスチャ貼り付けて使っているよ。
最初、立方体を使っていたけど、見る角度によっては、立方体であるのが
見え見えでみっともないのと、霧の効果をうまくかけられなかったかったので。
224デフォルトの名無しさん:04/02/21 16:42
D3DPOOL_MANAGEDは、D3DPOOL_MANAGEDオブジェクトはD3DPOOL_DEFAULTオブジェクトを
作成した後に作成するべきという制約があるので、それが守れるなら使った方がいいだろう。
でも無理だろそんなの。
225デフォルトの名無しさん:04/02/21 16:44
確かにD3DXLoadSurface*****は遅い。
自分はラッパーを作って、ロックと振り分けるようにしてる。
226あぼーん:あぼーん
あぼーん
>>224
そんな制約あったか?
リファレンス見たが、それらしき記述は見当たらなかったのだが。
228デフォルトの名無しさん:04/02/21 17:31
>>227
制約というほどでもないかもしれんけど、一応C++ヘルプでは下記のページに書いてあるよ。
Application-Managed Resources and Allocation Strategies
>>228
それはDEFAULTを集中させてオーバーヘッドを減らすだけ。
どちらにせよDEFAULT優先でVRAM使うから、不足すればMANAGEDはキックされる。
それに後からでもメモリ配置は並べ替えできる。(全部破棄してDEF確保してMANA確保する)

                 _./ ̄ ̄ ̄ ̄\
                /(  人____)   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
              / .|ミ/  ー◎-◎-) < 見ろ俺のセクシーなヌードを!! │
             ,/  (6     (_ _) )\ \_____________/
             `、  `,| ∴  ノ  3 ノ‐'`ノ モワ〜
               \ ヽ,._____ノ ノ←>>1-1000
                 豸.  ``Y"   拜."..::.::.::.::.::・・'゚。.・'゚。.::。.::・'・'゚。.::。.::・'・'゚。.::。.::・'・'゚。.::。.:
               ;": :: i. 、   ¥   ノ       ・'゚。.:・・'゚。.::。.::・'・'゚。.::。.・:(;´Д`)オエーッ
            ; .;: :∴:(. ` -‐´;`ー )         ・'゚。.::。.::・'・'゚。.::。.::・・'゚。.::。.::・''・'゚。.::。.::
        . ': .;".;":  (   彡   ミ )  モワ〜
      : .;"∵;": ::″: ;  ゝ     '´ ̄"`ヽ
   : .;".;":: :.;".;":  /   ■_,,,,,、   ノ
 ´ ..‘ :´ ;` :. ~. ;.   /   /`'   (  ノ
 :´ `:  .``:.  ;' ~ヾ  (   ノ      | (_,,-,,,
 : : .~.. :´; `  :` , `: \  `ヽ    / __ノ
 ;`:   ,´ ;:  ;` : :. .~..  \  \    ̄
; : ..‘:´ ;`:. ~.. ; :,´ :    ノ  _)
 ` ;..``:.   ; ' ;.~   ;ヾ (.,,_/~

231デフォルトの名無しさん:04/02/21 18:00
>>229
それは知らなかった。ヘルプ鵜呑みだと、正確に管理できないと読めるので
そう思っていたよ。
純粋に疑問なんだけど、>>229の情報はただヘルプを読むだけでは
得られないものばかりだが、アンタその情報をどっから得たの?
232デフォルトの名無しさん:04/02/21 18:03
今知ったが、DX8のヘルプにはこうあんだけど

>D3D 管理リソースとアプリケーション管理リソースの両方を同時に使用するときは、
>管理リソースを作成する前に、すべてのアプリケーション管理リソースを D3DPOOL_DEFAULT メモリに割り当てる必要がある。
>D3DPOOL_MANAGED メモリにリソースを割り当てた後で D3DPOOL_DEFAULT メモリにリソースを割り当てると、
>D3D メモリ リソースは使用可能メモリの不正確なアカウントを指定する。
8,9と9の英語版読んだけど大体同じ記述があるな。
漏れとしてはDEFとMANAをごちゃ混ぜで使うな、と読める。
234デフォルトの名無しさん:04/02/21 20:19
マテリアルについての質問なのですが、
3D製作ソフトでメッシュを製作して表示させるときに
ライトなしでマテリアルの色の表示(?)は可能でしょうか。
悩むなら頂点シェーダで最初から勉強しろよ
いつのまにか>>234なんかで悩まなくなるから。
質問の仕方が悪かったかもしれません。
一応頂点シェーダについてはある程度は勉強したつもりです。
ライトの影響を受けるものがマテリアルと学んでいるので普通は無理かと思います。
が、もしかしたら何か表示させる方法があるのかと思い聞きました。
>>236
D3DRS_LIGHTINGをFALSEじゃ駄目?
>>237
はい。
FALSEにするとテクスチャ表示は可能ですが、
マテリアルの色は駄目でした。
テクスチャに焼き付けろ
回答者も低レベルだな。普通にambient light使えば片付く問題だよ。
241240:04/02/21 22:17
>>234
ほい
http://www.microsoft.com/japan/msdn/library/ja/DirectX9_c/directx/graphics/programmingguide/usingdirect3d/lightsandmaterials/directlightvsambientlight.asp

D3DDevice.SetRenderState(D3DRS_LIGHTING,TRUE);
D3DDevice.SetRenderState(D3DRS_AMBIENT,D3DCOLOR_RGBA(255,255,255,255));

direct lightはひとつも要らない。
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\   tanasinn
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∧∴∵l      ∧    
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵:/ ヽ_∵.l  .   / . ヽ   
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵./   `、⌒ヾ⌒ヽ/   ヽ   
.      |∴∵∴∵∴∵∴/三 | 三|∴./    (.....ノ(....ノ   / ヽ  
.     |∴∵∴∵∴∵∴| __|__ |∴|   ι      ι::(....ノノ.  
     l∴∵∴∵∴∵∴|  === .|:/ ̄ ̄ヽ      ::::::::::::::/`ヽ  
.     ゙i ∴∵∴∵∴∵ \__/:(___..ノ     :::::::::::::::::::(....ノノ 
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴:ヽ   ι ::::::::::::::::::::::::::ノ   
>>241
マジウゼーなDirectXのマテリアルはよー。
ライトOFFでなんでambient生きてんだよw
これDirectXの制作者の勝手な解釈でこうなってんだろ。
確かに便利なときもあるやもしれんが頂点色と
マテリアルのambient,diffuse,specular,emissive・・・etcと
レンダリングステータスのambient。
さらにレンダリングステータスの頂点色使用の有無。
マテリアル使用の有無。
マルチテクスチャのブレンド。
どうにも管理してられん。
最終的な色は一体どうなんだよホントw
あー、なんだ。
もしかしてSetMaterial()呼んでないとかいうオチでは。
245240:04/02/21 22:38
ambient lightは歪な形で残ってるな。
RGBはD3DRS_AMBIENTMATERIALSOURCEのambient項とD3DRS_AMBIENTの乗算。
アルファはD3DRS_DIFFUSEMATERIALSOURCEのdiffuse項。

腐ってます。普通にvertex shader使いましょう。
結局240が一番低レベルだったかw
247240:04/02/21 23:07
そうだよ
素直だから許す
金持ち喧嘩せず
野村幸代のAA↓
       ∵∴∵∴∵∴∵∴∵F
    /||∵/∴∵\∵∴∵∴l
   / ::::||∵<・>∴∴.<・>∵∴∵|=-<
 /:::::::::::||∵ / ●\∴∵∴∵,'、
 |:::::::::::::::||∵/三 | 三|∵∴∵/  ト
 |:::::::::::::::||∵|\_|_/|∵∴,ィ'
 |:::::::::::::::||∵| \__ノ  |∵,/\_
 |:::::::::::::::||∵\__/ ,イ   |
 |:::::::::::::::||∵∴∵ ,, ┐' ト-
 |:::::::::::::::||| ̄乃'゙人 ∧
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/  .|| tanasinn
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/ . ||
 |:::::::::::::::||    〈 . ..||
 |:::::::::::::::||,,/\」 . ..||
 \:::::::::::|| ̄ ̄ ̄ ̄
アセンブラで書き直したら45%スピードアップしたよ
体感速度がだんち
撒餌
コマセ?
>>252
複雑な3D処理の中核ボトルネック部分をアセンブラで書き直すと劇的に早くなることがあるね
256252:04/02/22 08:53
縦シューだけどね。
WinMain以外全部asmだよ
EXEは何KBになった?
俺はマシン語直接打ち込んでるよ
ばりはや
COBOLからDirectXが使いたいのですがどうすればいいですか?
今時のPC、今時の縦シューで描画以外がボトルネックになるのか。。。
一体内部でどんなことやってるんだか
>>260
RTS型の縦シューだから経路探査にものすごい複雑な処理が必要なんだよ
ソフト販売を目的とするならインラインASMは必須だけどね
263252:04/02/22 09:51
やっぱキャラと弾幕のインタプリタと、マイクロスレッドだね

>>261
だとしても、WinMain以外全部asmである必要はない。
最内ループやそれに類する高負荷部分以外は
コンパイラに任せた方が良い結果を生むことの方が多い。

いや、君が万人に一人の天才なら話は別だよ?そんときゃ素直に謝るよ
アセンブラだとDirectX使えないじゃん
BitBltより45%アップに一票。
つか、縦シューなら素直にH/Wに頼れよ。
>>263
一体どんなキャラ/弾幕数とどれだけ複雑な処理を行っているのやら.
労力を無駄に浪費したいだけのアホなのはよく分かった.
オブジェクトの1つ1つにスレッドを割り振る
敵キャラはもちろん敵弾一つ一つだ
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\   tanasinn
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、  ↓>>265
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∧∴∵l      ∧    
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵:/ ヽ_∵.l  .   / . ヽ   
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵./   `、⌒ヾ⌒ヽ/   ヽ   
.      |∴∵∴∵∴∵∴/三 | 三|∴./    (.....ノ(....ノ   / ヽ  
.     |∴∵∴∵∴∵∴| __|__ |∴|   ι      ι::(....ノノ.  
     l∴∵∴∵∴∵∴|  === .|:/ ̄ ̄ヽ      ::::::::::::::/`ヽ  
.     ゙i ∴∵∴∵∴∵ \__/:(___..ノ     :::::::::::::::::::(....ノノ 
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴:ヽ   ι ::::::::::::::::::::::::::ノ   
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\   tanasinn
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ  ↓>>249
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∧∴∵l      ∧    
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵:/ ヽ_∵.l  .   / . ヽ   
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵./   `、⌒ヾ⌒ヽ/   ヽ   
.      |∴∵∴∵∴∵∴/三 | 三|∴./    (.....ノ(....ノ   / ヽ  
.     |∴∵∴∵∴∵∴| __|__ |∴|   ι      ι::(....ノノ.  
     l∴∵∴∵∴∵∴|  === .|:/ ̄ ̄ヽ      ::::::::::::::/`ヽ  
.     ゙i ∴∵∴∵∴∵ \__/:(___..ノ     :::::::::::::::::::(....ノノ 
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴:ヽ   ι ::::::::::::::::::::::::::ノ   
アセンブラだとDirectX使えないじゃん
272デフォルトの名無しさん:04/02/22 17:54
>>271
ハァ??
君ってチンカス以下だね
ハァァァ、俺もチンカスになりてぇ
274デフォルトの名無しさん:04/02/22 23:32
D3DXCreateTextureFromFileで48*48のDDSファイルからテクスチャを作って
LPD3DXSPRITEのDrawを使って等倍で描画すると64*64になってしまうのですが
2のN乗のピクセル数じゃないとダメとかって仕様なんですか?

Drawで75%にして表示させるのだと
48*48になってもスケーリングでぼやけてしまうので…
>>274
>2のN乗のピクセル数じゃないとダメとかって仕様なんですか?
うん、そう。
ていうか何がしたいんだよ。
>>274
ぼやけるのは別問題。
三角形ラスタ化ルールをよく嫁。
アセンブラだとDirectX使えないじゃん
引き伸ばして展開した物を75%にしたらぼけるのは当たり前。

>ぼやけるのは別問題。
>三角形ラスタ化ルールをよく嫁。
全然別問題じゃないぞ。
脳内反射でテクセルのせいだと思いこむな。
279デフォルトの名無しさん:04/02/23 00:19
なあ、ちょっと質問。
monshoさんところのボーンの説明なんだけど。
ttp://monsho.hp.infoseek.co.jp/msys/sys08.html
どうして、ボーンをそう一度に突っ込もうとするんだ?
わけて描画するよりソフトウェア処理のがいいのか?
ちなみに俺はシャイなので直接本人に聞けなかったりする。
>>279
一つの頂点に対して、多数のボーンが割り当てられている場合、
どうやって分けるつもりなんだ?
281デフォルトの名無しさん:04/02/23 00:23
「アセンブラとアンブレラは似ている」
282デフォルトの名無しさん:04/02/23 00:42
>>280
例えば、(ボーンじゃなくて)ローカルのメッシュごとに描画すると考えて
そのメッシュの描画に必要なボーンがわかればいいんじゃないのか?
アンブレラだとDirectX使えないじゃん
284デフォルトの名無しさん:04/02/23 02:22
>>279
その変、色々こしょこしょごにゃごにゃ実験研究したんだが
おれも結果的には「スキニングはCPUで」になった
その過程の紆余曲折に関してはとてもここで述べきれないが
パフォーマンス以外の理由もかなり絡んでくる
285デフォルトの名無しさん:04/02/23 02:35
>>284
なぁ?>>282の方法では駄目だった?
#いや、俺、自分じゃスキニング実装したことないんだけどねw

スキニングをCPUに妥協した理由がシェーダが面倒っていうなら納得するけど。
かいつまんでいうとなんで?
1枚のテクスチャに複数個の画像を詰め込んで利用するときに、
テクスチャ補間で、その領域の外部の点がサンプリングされて
周囲にノイズがのってしまうんですが、
どうやって回避するのが普通なんでしょうか?

各領域の境界に1ドットの遊びをつくってとりあえず対処しましたが、
もっと楽な方法ってあります?
>>279
今やるなら適当に分けて頂点シェーダーで処理したほうが絶対いいと思う。
それにゲームなら分けないで済んじゃう場合が多いのでは?

>>284
一つでいいのでCPU処理の利点を教えて欲しい。
288285:04/02/23 02:54
>>287
>一つでいいのでCPU処理の利点を教えて欲しい。
では、代わりに俺が2つ利点をば・・・。

1つ目。
スキニングをCPUでやると設計が楽ってところです。
頂点シェーダって組み方にもよると思いますけど
スキニング有り無しと2つ書かないといけないですよね。
バンプマップもスキニング有りと無し
環境マップも同様。
そのほかのものも同様。
って感じではっきりいって面倒です。
スキニングをCPUでやるととっても楽になりますってただそれだけなんですけどね。

2つ目。
ボーン一箇所に何本までね。とかいう制限が無くなる。

こんな感じでどうでしょうか?
ってか実装したことないんですけどね。俺w
これからやろうと考えてるので色々とうまい組み方が知りたいです。
確かに気楽だわな。

でもCPU資産の方が余程重要と考える俺はケチなんだろか
CPU資産の有効活用は難しいね
おれはPEN4-3.2GHzDualだからね
caps.MaxVertexBlendMatrices
caps.MaxVertexBlendMatrixIndex

がカードによってばらばらだから。
convert2*BlendedMesh
がめんどくさい。
ま、今あるSoftware頂点シェーダより遅いのは確かだろうな。
ヌーブラだとDirectX使えないじゃん
確かに自分の環境用に作るならまだともかく
環境を幅広く取ったらやる気失せるよなあ
>>280
だじゃらメッシュ単位の問題ではなく、
同一頂点に対して、ハードの限界を上回るボーンが関連付けられたら、
分けようがないということなんだが。
>>295
>>279のリンク先に関していえばレジスタ数の問題って書いてあるからそっちじゃないんじゃないかな。
297デフォルトの名無しさん:04/02/23 10:28
スキニングに限らずVertexShader2.0未満は何やんのもダルイ。
298デフォルトの名無しさん:04/02/23 11:07
DirectShowスレが寂れているのでこちらに。
DirectShowで簡単なビデオ編集(切り出し)ソフトを作ろうとしていて、
タイムライン表示用にBMPを撮りたいのですが、ISampleGrabberもIMediaDetも
DX9と共存できなくて困っています。
GetImage的な使い方が出来る方法はないですか?
ヘッダがバッティングするだけだから、ソースを分けるか、
GUIDを自分で定義するなりすれば使える。
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵:../⌒ヾ皿⌒ヽ
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵∴./_(.....ノ─(.....ノ_
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵:../11 12  1\
.      |∴∵∴∵∴∵∴/三 | 三|∴∵./     ↑    / ヽ      tanasinn
.     |∴∵∴∵∴∵∴| __|__ |∴../ 10  ......↑    (....ノノ
     l∴∵∴∵∴∵∴|  === .|∵.l   ..   ...│   ..  /`ヽ
.     ゙i ∴∵∴∵∴∵ \__/∴.l 9  ....  ●     (....ノノ
      ヽ∴ ∵∴∵∴∵∴∵:./ ̄ ̄ヽ  .           lノ
                    (___..ノ.           4 /
tanasinnって誰だ!!??
302298:04/02/23 14:10
頑張ってみます。
>>295
>同一頂点に対して、ハードの限界を上回るボーンが関連付けられたら、
>分けようがないということなんだが。
ハードの限界を上回るって一頂点に何十本も割り当てる意味ってあるの?
あまりにも微妙すぎて結局無駄になりそうな気がする。
304デフォルトの名無しさん:04/02/23 15:03
>>303
確かGeForceでは固定機能ではインデックス不可で2Weightまでだったはず。
単純に制限が強すぎて使えない。
>>304
それって頂点シェーダの話?
306303:04/02/23 16:04
>>304
今なら頂点シェーダーが動かないボードでもシェーダーを使った処理をして
初期化時にソフトorハード処理を切り替えたほうがいいと思う。
DirectX8世代より前のボード使ってる人ってもう少数派なのでは?
まあシェーダーは一切使わないって方針もありだとは思うけど…

>>305
固定機能って書いてあるよ。
307デフォルトの名無しさん:04/02/23 16:09
>>304
頂点シェーダじゃなかった。すつれい。

自分も昔固定機能HWスキニングの為に、メッシュ分割モジュールを組んだことがあるが
今はもうHDDの肥しになってる訳で。こんなもんに労力を割くのは無駄。
実装も美しくなくなるし。
同様の理由でHDRLightingも無駄、つーかDirect3D自体無駄。
308305:04/02/23 16:30
>>306
すまんこ
DirectSoundのSetNotificationPositionsについて質問です。
これを使って複数のバッファを同時再生すると、
バッファAのシグナルが発生するタイミングで
バッファBのシグナルも発生してしまうようです。
これの回避方法は無いでしょうか?

使用しているのはDX8.1で、目的はストリーミング再生です。
ちなみに、調べてみたところ、OSがw2kだと起こり、98だと起こらないらしいです……
確かにそうなるけど、何か問題あるかな?

問題というとMsgWaitなんたらかんたらかなぁ。
あの関数は全ての自動リセットイベントを非シグナル状態にします。
マニュアルリセットにして、ストリームへロードしたバッファのイベントのみ
非シグナルにすれば上手く行くかもしれません。
311309:04/02/23 18:17
説明不足でした。
シグナルの検知にはWaitForSingleObjectを使っています。
シグナル発生のたびにバッファへ書き込みを行い、
書き込んだ分だけ読み込み用ポインタをずらしているのです。
そのため、他のバッファのシグナルを検知してしまうと、
バッファ内容が意図しないタイミングで更新され、
読み込みポインタがどんどんズレてしまうハメに。
結果的には音飛び状態になっています。

マニュアルリセットの件については、
どういう事なのかピンときませんでした……すみません。
>>309
バッファつくるときにDSBCAPS_LOCSOFTWAREを指定。
って、解決策になってないね…。
誰かH/Wにリソース置いても上手くいく方法教えてくだせえ。
まあ要するにスレッド同期が上手く行ってないんですね。
そういうのはスレッドの設計があまりよろしくないと思います。
今のままで解決する方法もあると思いますが思い切って設計変えたほうが楽な気がします。

こういうタイプの実装方法って主に3つパターンあると思うんですが
1)1スレッドに1イベントと1バッファを割り当てる
2)1スレッドで全イベントを管理、イベント発生したら対応バッファを処理、終了したら次のイベントを待機
3)1スレッドで全イベントを管理、イベント発生したら待機スレッドを起動、対応バッファを割当、そのスレッドでバッファを処理

1番と3番はスレッドが複数必要で同期要りますが、2番のスレッドは1つです。
MsgWaitForMultipleObjectsを使ってイベントを待ちましょう。この関数の注意点は310の通りです。
314313:04/02/23 18:56
ところで追記だけど
もしかして全てのバッファで同じイベント使ってない?(;´Д`)
|-`).。oO(同じイベントハンドル使ってるからじゃないのかなぁ…)
316309:04/02/23 19:03
何度も書き込み失礼します。

>イベント発生したら対応バッファを処理
これが出来ないから困っているんです……
イベントが発生しても、対応するバッファを知ることが出来ないのです。

バッファAにイベント1、イベント2を設定し、
バッファBにイベント3、イベント4を設定したとします。
バッファAの再生位置がイベント1に達したとき、
本来ならイベント1のみがシグナル状態になるはずですが、
なぜかイベント1とイベント3が一緒にシグナル状態になったりするのです。
これですと、イベントが発生したからといって、バッファを処理して良いとは限りません。
317309:04/02/23 19:04
>>314
勿論別です・・・
>>312
ハードウェアの時だけ出る症状なの?
>>318
漏れの環境ではハードウェアの時だけ。
んで今、DirectXのヘルプ見たらDSBUFFERDESCの注意の項に

VxD ドライバの場合、DSBCAPS_CTRLPOSITIONNOTIFY を使って作成された
サウンド バッファは常にソフトウェア バッファである。(中略)
ハードウェアが利用可能な場合は、WDM ドライバにより、通知可能なバッファが
ハードウェアに存在することがある。

とある。
Win9X系では正常で、Win2kではおかしいってのはこのせいじゃないかと思ってる。
で、これドライバ最新のにしても直らんのよ。皆、どうしてる?
320313:04/02/23 19:36
>>316
対応するバッファは分かるはず。
MsgWaitForMultipleObjectの戻り値を使えば、
どのイベントがシグナル状態になったか把握できるよ。
321309:04/02/23 19:40
>>319
なるほど……DSBCAPS_LOCHARDWAREでやっみたら上手くいきました。
悲しいですがとりあえず、w2kではハードウェアを捨ててやってみます。

>>320
うう、私の説明が下手なんでしょうか……。
どのイベントがシグナル状態になっているかは分かっています。
しかし、シグナル状態になるタイミングそのものが異常なのです。
322313:04/02/23 20:03
つまりスレッド同期じゃなくて
ハードウェアからの通知が遅すぎて変なタイミングで更新されるってことですか(;´Д`)
とにかく解決してよかったです。
いまいち状況が把握できなかった俺はもうダメポ
313は最後まで状況を理解できなかったみたいだな…
325313:04/02/23 21:04
VXD系ドライバだとソフトウェア配置になるから通知タイミングが安定するが
WDM系ドライバだとハードウェアに通知可能なバッファを置くことが出来るがその通知がどうも怪しい
だからソフトウェア配置にすれば通知タイミングが安定する環境がある

…そういうことじゃないの?(;´Д`)
気になって試しにサンプルのソース弄ってみたけど
Win2k&LOCHARDWAREにしてもちゃんと動いたよ
結局ドライバとかハードウェアの問題じゃないの?
ホントDirectXって糞だな
誉めても何もでんぞ
ホントDirectXって神だな
昔、似たような問題に出くわしたな。
検索すれば、同じ現象で悩んでる(た)人を見つけられるはず。
ちなみに俺が出した結論は

SetNotificationPositions を 使 わ な い

それもありだな。
定期的に適当な関数呼び出して貰って位置取得しつつロックすりゃいい。
…って位置取得もなんか問題あったような。
ホントDirectXって糞だな。
SoundBlasterが糞だという意見もあるけどな
      ____
     /∵∴∵∴\
    /∵/∴∵\∵\        .  ..     \|
   /∵<・>∴∴.<・>∵|        . . / ̄ ̄ ̄
   |∵∵/ ●\∵∵|        . /
   |∵ /三 | 三|∵ |         |
   |∵ |\_|_/| ∵|         ∩
    \ | \__ノ  |/      .   |.|                  tanasinn
     \___/:、          ∪、
     /∵━○━∵ヽ         ..| \
    /∵人∵∵∵ \:\        \  \
  ⊂´:_/  )∵∵∵∵ヽ:_`⊃   / ̄ ̄ ̄ ̄ ̄ ̄
                     /

DirectSEX未経験だぜ、ゴルァ!!
つうか23にもなってゲーム作ってる俺も糞だ
>>334
つうか24になってゲームなんか作ってる俺の方がもっと糞だ
ネガティブプログラマー四MEN楚歌
337デフォルトの名無しさん:04/02/24 01:41
つうか就職してまでゲームなんか作ってるおまいらの方がもっと糞だ
就職できずにゲームつくってるオレが彩京
>316
書き込む前にGetCurrentPos()使って、次の書き込みが再生位置に被らないか判定する。

一回の通知で二つ分のバッファを書き込むようにしているから、こうしているんだが。

まあこの方法でも、USBサウンドデバイスが通知を受けた後のGetCurrentPos()で、
通知位置より前の位置を返してきたりして困ったが。
>>316
いい加減、質問する前に少しは調べる癖を身につけろよな・・・

ttp://www.tobysoft.net/toby_diary2003.html
ttp://www.namikaze.org/yodiary/200010.html

結局はそんな腐ったインターフェース使うなということで
ファイナルアンサーなんだからさ。
>>313
講釈師 見てきたような 嘘をいい
嘘ってわけじゃないだろ。
解決策にはなってないな。
>>340
これがFAだとすると、ほんとに鬱だ氏のうって感じだな
DirectX腐れすぎだ
あ、いや、ドライバだな、腐れすぎなのは・・
いや本当に腐れてんのは27にもなってエロゲ作ってる俺だ
DirectXAudioについてお聞きします。使っている環境はDX8です。
現在はBGMと、効果音(銃声)を再生したいと思っております。
効果音の種類は今後追加することになるかもしれません。

本などを調べて、IDirectMusicPerformance8,Loader8,AudioPath8はひとつずつ用意して、
segmentにかんしては、再生させるWAVファイルの種類分必要というこということを
しりました。
BGMはひとつあれば十分ですが、銃声に関しては鳴らすキャラクターも複数おりますので、
音声がかぶることがあります。

ということでPlaySegmentExの引数に、BGMはプライマリーで、銃声はセカンダリーと
指定すれば、銃声は複数のセグメントを用意しなくても1つで十分ということみたいですが、
(そうですよね・・・?)、たとえば、ゲームをポーズさせて、のちに再開たい場合はどう
すればいいのでしょうか。

中止時刻を記憶しておいて、途中再開させるときはそこからスタートさせるような処理
を行うのでしょうか。でも、BGMなら1つだからまだ可能そうですが、1つのセグメントを
複数に多重再生させているような状態でそれがかのうなのでしょうか。
IDirectMusicSegmentState8を使えばなんとかなるかもとおもったのですが、そうも
思えなくて困っております。

よろしくおねがいします。
                 ∴
         ∵  ∴  ∴∵∴    ∴
     ∴∵∴∵∴∵∴∵∴∵∴∵∴∴∵
       ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
   ∴∵∴∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
      ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵/ ⌒ヽ∴∵∴∵∴
    ∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵| |   |∴∵∴∵
  ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∪ / ノ∴∵∴∵∴∵
..  ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵| ||∵∴∵∴∵
.∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∪∪∴∵∴∵∴∵
.∵∴∵∴∵∴∵∴∵:(・)∴∴.(・)∵∴∵∴∵∴∵∴∵∴∵∴∵∴
∵∴∵∴∵∴∵∴∵∴/ ○\∵∴∵∴∵∴∵∴∵∴∵∴
..∵∴∵∴∵∴∵∴∵/三 | 三ヽ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
. ∴∵∴∵∴∵∴∵ | __|__ │∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵     tanasinn
.∵∴∵∴∵∴∵∴∵|  ===  │∵∴∵∴∵∴∵∴∵∴∵∴
.∵∴∵∴∵∴∵∴∵\___/∵∴∵∴∵∴∵∴∵∴∵∴
..∴∴∵/ ̄.. \∴∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
∴∵∴/    ,. i ∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
∴∵∴|    /.| |.∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
  ∵∴|   | :| |.∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
    ∴| |  |::| |.∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
    ∴| | |∵U∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
      | | |∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
     / / / ∵∴∵∴∵∴∵∴∵∴∵ ∵
    / / /       ∴∵∴∵∴ ∴
   .しし’          ∵
>>290
今更だが、
Pen4はDual不可だぞ。
D3DXIntersectの第9と第10引数にNULLを渡した時の動作って
保証されてますか?
DirectXSDKについてるPickのサンプルでNULLを渡してますが、
ヘルプにはNULLを渡す事について何も書かれてないと思うのですが。
見落としだったらすいません。
使ってるのはDirectX9.0bです。
>>349
MSの掟。
なぜ我々は糞と分かっていながら使い続けねばならないのか。
そこが大きな問題だ。
それは、ここが鬱だ氏のうDirectXスレだからだな。
Windowsから一歩離れればDirectXなんか無いシナー
私達が糞だから。
まるでそびえ立つスレだ。
糞どうし仲良くやろうや
dxdiag で d3d9 のテストに成功したんだけど、いざプログラムを書いても失敗して、ソフトウェアレンダリングです。
dxdiagのテストプログラムソースって有りませんか?
無いです。

コード晒してください。
VertexBufferはD3DPOOL_MANAGED、
TextureはD3DPOOL_DEFAULTってまずいかな?
359デフォルトの名無しさん:04/02/26 22:42
独り暮らしはDEFAULT、
結婚生活はMANAGEDってまずいかな
>>358
べつにまずくはない。
ダイアログ内にDirect3Dで描画したいんだけど(DXウィザードのMFCベースのように)
WIN32SDKからやる方法って、どうやるんでしょうか?
ダイアログ内に子ウィンドウ作ってそいつをDirect3Dの窓にするってのは駄目?
363361:04/02/27 10:52
>>362
おお!そうですね、なんでそんなこと気がつかなかったんだろう…
ども、ありがとうございます。早速試します。
みんな
D3DCREATE_MIXED_VERTEXPROCESSING
って使ってる?
使わないと環境依存が強すぎてろくな事が出来なくなる。
>>365
どのくらいのハードを対象にしてるの?
ピクセルシェーダぐらいは使っていいの?
皆さん。3Dの時代は終りデスよ〜
>>367
じゃあ次は何の時代なんだ?
2次元に戻る。
そして1次元へ。
さらには無我へ
ゲームには絵と違って時間という概念があるから、
最初から4次元だったんだよ。

セーブからやり直せるし。
そして伝説へw
DirectX9でも始めようと思って、初心者向けの本を買った。
SDKを落として、最初のサンプルをビルド。エラー。
なんか関数の定義がサンプルでの使用法と違ってるらしい。

結局、summer版SDKを入れてたせいでした。本はその前のSDK向けだったみたい。
というか、何で同じバージョンで、しかも初心者向けサンプルに含まれる関数定義をあからさまに変えますか。
どうせ俺はヘルプ読めねえよ!
8.1をやるか、OpenGLをやるかというお達しかね…_| ̄|○
9のsummer updateはちと酷いね。
少なくとも別バージョンにするべきだったと思う。
>>374 summerってそうなのか。そろそろ入れようかと思っていたけど
面倒は嫌いなんで、次回作ゲームを作り始めるタイミングで入れよっと。
でも、DirectX10とかが先に出てるかもしれん。
なんで9.1とかにしなかったんだろうなほんと。
>>374
summerの一つ前のDirectX9SDKをインスコすればいいだけじゃーん
3Dの勉強したいだけならOpenGLが簡単でいいかもね
そりゃsummer(2004)が出るからだべ
380374:04/03/02 02:30
前のSDK入れたらビルド出来たー。
>>378多謝。

3Dをやりたいのだが、ネットワークとかサウンドも扱ってみたいのでDirectXを選んでみました。
とりあえず、これから勉強してみますわ。
>>377
今後のメジャーバージョンアップは9.1、9.2、9.3になるので(10はナシ)
9.01とかでいいのに。
383デフォルトの名無しさん:04/03/02 16:16
http://kfactory.s9.xrea.com/cgi/up/upload/PIECE/Imdun.zip
このサンプルを動かすとフルスクリーンで起動するんですが、普通のウィンドウのように起動するには
どうしたら良いですか?
MSの製品で.3なんてバージョンはあまり無いような気がする
すみません。directinputの使い方が詳しくのっているサイトはないでしょうか?
ジョイスティックを使って画像を動かしたいのですけれど、なぜか動かないので・・・
本買え
のちのち為になるし
DirectInputの使い方だけならサンプルとヘルプだけで十分
ここで質問するような人間にとってはそれだけじゃ不十分
>>386
本はかってます。工学社のやつ。しかし見てもわからないんです。
画像を動かすやつのサンプルがないですし。

>>387
サンプルにあるんですか?
一通り見たけどなかったような・・・
どういう画像をどういう風に動かしたいの?
ちなみに普通に考えればその機能はDirectInputじゃないんだがな…。
>>389
本とサンプル見れば分かるだろ
本当に読んだのか?
>>389
SDKインスコしたとこよく見れ。Joystickってのがある。
あとヘルプのDirectInputチュートリアルがわかりやすいので嫁。
>>390
2Dの画像を上下左右に動かしたいのです。
例えばパックマンみたいな感じで。
>>391->>392
直接データとバッファリングデータの読み込み方法はわかったのですが、
画像を動かそうとするとなぜかうまくいかず・・・
変数を使って表示位置を変えるというのはわかってるんですが。

>>393
DirectXとかプログラム以前にPCの常識的なことを学ばないと…。
それはDirectInputの問題ではなくDirectX Graphicsのほうだ。
ジョイスティックを扱っても画面を書き換えることは出来ないだろ。
>>394
>画像を動かそうとするとなぜかうまくいかず・・・
ここが肝心なところ。
どんなふうに「うまくいかない」のか説明してくれないとアドバイスできない。

ジョイスティックからの入力に間違いがないか、表示して確認する。
画像の移動に間違いがないか、XかYを変化させながら表示して確認する。
両者が正しいのなら、あとはつなぎ合わせるだけ。
>>394
どう上手くいってないか書かないと推測のしようもないわけだが・・・・・・・
DirectInputのサンプルは\DX90SDK\Samples\C++\DirectInput
ウィザードで生成されるものにもDirectInputは使われている
ついでにお勉強サイト
http://masafumi-t.cool.ne.jp/directx9.htm
http://www3.omn.ne.jp/~renas/DirectX/index.html

ソースを晒して叩いてほしいならウプロダは
http://gamdev.org/up/
ゲーム開発関係専用なので要注意

予備知識を仕入れたいなら
http://gamdev.org/w/?%5B%5B%A5%CB%A5%E5%A1%BC%A5%B9%A5%BD%A1%BC%A5%B9%5D%5D
のリンク集がよくまとまってる

勉強したいならこのリンク集
お勉強ページ 勝手にリンク
http://pc2.2ch.net/test/read.cgi/gamedev/1005060553/
あのー383は・・・
うまくいかないというのは、
画像の表示位置を変数で指定→ジョイスティックのボタンを押したら変数が変わる→これによって画像の位置を変化

という風にしようとしているのですが、なぜかボタンを押しても表示位置が変わらないのです。

ボタン押した事自体はちゃんと認識できてるのか?
その変数とやらは変化してるのか?

デバッガ使えばすぐに分かるだろうし。
だーかーらー
ジョイスティックだけで動かしてみて確かに入力が取れてるのかどうかとか
画像表示は表示位置を変えてもちゃんと描画されるのかとか
そーいうことを確かめろって言われてるんだってば
>>399
プログラム内で変数を変えてみる→動かない→画像を移動させる処理が変

動いた

入力処理が変→入力自体が出来ていない→エラーコードを調べる

入力出来てる

条件分岐や変数の処理が間違ってないか確認

少なくとも聞く前にこれくらいはやろうぜ。
あと>>383はdd_lib.hの228行目でも見れ
>>399
デバッガのブレークポイント設定で、きちんと更新されてるかどうか調べてみぃ。

>>398
DirectX7以前のことは知らないのだが、ソースちらっと見た感じだと、
dd_lib.hのDD_INITあたりが該当するんでないかと。
どうもフルスクリーンモードしか作れないような仕組みになってるような…。

あとプログラム動かしてみたがテクスチャがキモイ。なんか間違ってる気がする。
ddret = OldDDObject->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
これを
ddret = OldDDObject->SetCooperativeLevel(hwnd, DDSCL_NORMAL);
こう変えてみたんですが無理ですた。
>>404
やっぱ無理ですか?
>>405
それってその場面でエラー出てる?
>>406
ビルドは出来ました。
しかし実行するとプライマリィサーフェースが生成できませんとダイレクトドローの初期化に失敗しました
というメッセージボックスがでて終了してしまいます。
>>407
そのエラーメッセージが出る場面は314行のところだな。

手元にDX7のヘルプが無いのでかなり憶測でしか言えないんだが、
恐らくウィンドウモードではフリッピングが不可能なのではないかと推測。
バックバッファとプライマリバッファの入れ替えが出来るのはフルスクリーンならではの芸当だからね。
一般のバッファに描画して、それをプライマリバッファへコピー、という描画方法にしてみてはどうだろう。
多少パフォーマンスは落ちるが今のPCなら無問題でないかと。
(-_-#)~ブスブス
ん〜俺の頭はショート寸前…。
ごめんね素直じゃなくって
Direct3Dで

@や:みたいな一文字だけを立体で表示する方法を教えてください
あと、ランダムに生成されるダンジョンのマップから
三次元の部屋を構築する方法も教えてください
>@や:みたいな一文字だけを立体で表示する方法
・モデラーでメッシュを作成してそれを表示する
・Text3Dサンプルを見る

>ランダムに生成されるダンジョンのマップから三次元の部屋を構築する方法
抽象的すぎて答えようがない
もしかして@が主人公だったりして
>>413
なるほどw ワロタ
だいたいどんなゲームなのかイメージは沸いた。
ID3DXFontのDrawTextで(int、doubleなど)変数の値を数字で表示したいのですが
型変換てどうやったらいいんでしょうか?

(DirectXじゃないかと思いますが
型のことをよくわかってないので他スレだと説明が…)
int i; float f;
char str[100];
sprintf(str, "数字表示したいよ〜ん%d %f," i, f);
その後strを云々…
418416:04/03/03 03:34
>>417
すごい簡単だったんですね…ちゃんと勉強します
ありがとうございました
なんでこのスレで聞いたんだろう……
初歩的な質問がやたら多いな
それにちゃんと答えてやってるのも珍しい
レスしたオレも悪いな。
こうやって低レベルな質問にマジレスしてしまうとスレのレベルが下がる、
低レベルな質問は叩くぐらいの殺伐とした感じのほうがよいかもな。
まぁ何事もほどほどにということで(←ハァ?
423デフォルトの名無しさん:04/03/03 09:52
>>411
>@や:みたいな一文字だけを立体で表示する方法
412にあるとおりだが

・モデラーでメッシュを作成してそれを表示する
に関しては、SDK付属のMeshViewerでも半角文字ならメッシュ作成して
Xファイル保存は出来るな。
すみません
文字を画面に表示させたいのですが上手くいきません。
#include <studio.h>
main()
{
printf("ハローワールド\n");
}
絶対あっているはずなのですがコンパイルできません。
このままでは先に勧めませんので誰か助けてください
               |
               |
          __|_
  あ゛    /;;;;;;;;;;;;;;;;ヽ     >>424
 あ゛    /;;;;;;;;;;;;;;;;;;;;;;;;;;;;i.    そんな餌で
 あ゛     l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i,    わいは釣られへんでー
 〈      'i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;i,
  .〉      |;;;;,、;;;;;;;;;;;;;;ノ|ノ レ'  ,、
 〈      , !、| !、lVl/  `、_/ .ノ l l
  !!  i´l /          |__./ //
  // |. V\_,-|        ト┘
  | | \./  〉  _,/   !、
         く_____,/
         ,i;;;;;;;;;;;;;;;;;;;;;i
        ,!\;;;;;;;;;;!'´ 'i
        l  ./´`i  |
         |  /   |  |
       / ./    |.  |
      /`'7     |´`|
     / /        | |
     i´`|       i'´`i
    | /         ! ノ

STDndard Input/Output
>>424
#include <stdio.h>
じゃねーか?
それとひとついっておくと「スタディオエイチ」とでも脳みそで発音してそうだが
「エスティーディーアイオー」が正しいらしいぞw
なんの略だっけか・・・スタンダードなんちゃらでいいんだっけ?
すたんだーどあいおー
ですよ。
覚えましたか?
>>427
なんで「あいおー」だけそのままなんだ?
いんぷっとあうとぷっとと言うと長いからでは?
>>420-421の後にこれですか。
自演臭いですね。
いっぱい釣れたねお兄ちゃん!
ごほうびにいっぱい出したげるね
432424:04/03/03 12:32
出来ました!!!
ありがとうございました!!!!!!
つまんね
ねこ
こねこ
大好き
お兄ちゃん♥
ん がついたから>>437の負け
いかにもひな祭りらしい展開ですね。
DirectXの知識って3Dに関することだけでもいいのでしょうか?
今3Dの勉強をしているんですが2Dのほうも知っておくべきでしょうか?
おまえは何のために勉強してるんだと小1時間(ry
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け

442 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け

442 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX

443 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX
お内裏様とお雛様
今日は楽しい姫初め
>>424
#include <stdio.h>
__stdcall WinMain(HINSTANCE, HINSTANCE, char*, int)
{
printf("ハローワーク\n");
}
WinMainかよ
コンソールが無い
device.Transform.World = Matrix.Multiply(Matrix.RotationX(System.Environment.TickCount / 150.0f), Matrix.Translation(0.0f, 0.0f, -4.0f));

現在Direct3Dを勉強中なのですが
上の行の意味を教えてください。
一つずつ分解して考えろ
・Matrix.RotationX(System.Environment.TickCount / 150.0f) → 時間と共にX軸を中心に回転させる行列
・Matrix.Translation(0.0f, 0.0f, -4.0f) → Z方向に-4だけ動かす行列
・Matrix.Multiply(…) → 上の二つの行列を組み合わせる
・device.Transform.World =… → ワールドトランスフォームは上の結果
0.0f, 0.0f, -4.0fのあたりでX軸中心にくるくる廻る
すみませんVC++6.0でDX8を使って勉強し始めて
本やサイトを参考に記述して
「Zバッファを使って前後関係を正しいシーンを描写する」
って言うのをやってみたのですがうまくいきません。
初期化などの設定は以下の通りです。
d3dpp.EnableAutoDepthStencil= TRUE;
d3dpp.AutoDepthStencilFormat= D3DFMT_D16;
gl_lpD3ddev->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);//裏面消去しない
gl_lpD3ddev -> SetRenderState(D3DRS_LIGHTING,FALSE);//ライティングしない
gl_lpD3ddev -> SetRenderState(D3DRS_ZENABLE, TRUE);//Zバッファ
gl_lpD3ddev -> SetRenderState(D3DRS_ZWRITEENABLE, TRUE);//
gl_lpD3ddev->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);//テクスチャ透過
gl_lpD3ddev->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);//
gl_lpD3ddev->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);//

で描写の前にこのようにZバッファをクリアしています。
//---バックバッファ、Zバッファクリア
gl_lpD3ddev->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER ,D3DCOLOR_XRGB(255,255,255),1.0f,0);

スレ違いだったり、変数が意味不明だったらもうしわけないです。
何か情報が足りなかったら提示しますので言ってください。
ですが明日卒業式前日で召集かかってるので
レスは遅くなってしまうかもしれません。
違点にお気づきの方がいましたらレスください。
何がやりたくてそれがどううまくいかなかったのか
すみません。2Dの画像を表示する場合、スプライトを使って表示するのと、
サーフェスを使って表示するのとどちらがいいのでしょうか。
どちらが高速ですか?
3Dカードがない場合、どちらが高速ですか?
>>455
サーフェス
スプライトなんてものは、最初から存在しない。
だから比較しようがない。
サーフェスを作って実行したらこんなメッセージが出てきたんですが、これはいったい何なのでしょうか
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 107
>>458
ただの外国語
DirectX8のフォグの設定方法について質問があります。
フォグをかけるとRGBすべての成分にフォグの効果がかかりますが、
これを特定のカラー成分だけに適用させることって可能ですか?

ポリゴンを描画する際、B成分のみフォグを適応させたいんですが…
>>452 ビューポートの設定をきちんとしている?
あと、前投影面を0に設定していたりしてない?
>>460
ピクセルシェーダでできるようなできないような。
ソフトウェアレンダラーとハードウェアレンダラーの長所と短所をそれぞれ教えてください。
464452:04/03/04 11:13
前後関係を正しく描写したかったのですが
後ろにあるオブジェクトが前に表示されたんです
>>463
正直いまさら説明するのもアホらしい
そんなこといわずにお願いします
468452:04/03/04 11:30
ビューポートの意味がよく分からないのですが
このことですよね?
D3DXMatrixLookAtLH(
&gl_ViewMat,//our
&D3DXVECTOR3(0,5,10),//form
&D3DXVECTOR3(0,0,0),//focus
&D3DXVECTOR3(0,1,0));//up
このようにビュートランスフォームしています。

前投影面は0ではないと思います。
gl_Near = 0.000001f;//前方投影面
gl_Far = 50.0f;//後方投影面
こんな感じです。

>>468
検索しろよ
>>468
ビューポートはビュー行列とは違うぞ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/graphics/reference/d3d/structures/d3dviewport9.asp
この辺を読めばなんのことかわかるのではないかと・・・。
471452:04/03/04 11:48
もうしわけない、一応しらべて、射影トランスフォームのことかな?
と思ったのですが。間違えてビュートランスフォームを書いてしまいました。
Directx5についてのチュ−トリアルだったのですが、設定してる内容が似てる
のでこれだと思ったのですがやはり違いますか、、、、
//---射影行列
D3DXMatrixPerspectiveFovLH(
&gl_ProjMat,//out
60.0f * 3.1415f / 180.0f,//角度
1.0f,//比
gl_Near,//近点
gl_Far);//遠点
472452:04/03/04 11:59
ビューポート設定してませんでした、、
D3DVIEWPORT8VP={0,0,800,600,0.0f,1.0f};
gl_lpD3ddev->SetViewport(&VP);
今したのですが。
でもうまく描写してくれません。。
>>472
ちなみに3Dの描画の流れはこんな感じです。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/graphics/programmingguide/fixedfunction/legacyfvfformats/vertexandpixelprocessing.asp
ところで>>452ではアルファブレンドをかけてるみたいですが、
ちゃんと不透明なものを全て描いてから透明なものを描いていますか?

どううまくいかないのか書いてくれないと答えようがないです。
474452:04/03/04 12:20
http://www.realdigital.co.jp/densi2/program/d3d/image/dx3d-139.png
私が参考にしてるチュートリアルの画像です。
最終的にはこのように表示したいのですが、
カメラの座標を移動して
地面の裏から投影してもキャラクタが
描写されてしまうのです。
gl_lpD3ddev->SetTexture(0,gl_lpPlayerTexture);//伽羅テクスチャの設定
gl_lpD3ddev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,gl_PlayerVertex,sizeof(TLVERTX));//伽羅の描写
gl_lpD3ddev->SetTexture(0,gl_lpEarthTexture);//地面テクスチャを設定
gl_lpD3ddev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,gl_EarthVertex,sizeof(TLVERTX));//地面の描写

このようにすると描写した順番に描写されるだけで前後関係が無視されてしまうのです。
>>452
gl_Nearの値を1.0fくらいにしてみたら?

以前、視点ギリギリのポリゴンを表示したいと思い、この値を
小さくしすぎたら、Zソートが変になってギザギザに表示された。
ビデオボードがショボかったからかもしれんが。
476452:04/03/04 13:23
>>475
うまくいきました。
Zバッファのサイズからして
gl_Near = 0.000001fでは
ほとんど0に近似して処理してるのでしょうか、

とにかくうまくいきました
ありがとうございます。
>>476
あの深度じゃ0扱いだと思う。
478デフォルトの名無しさん:04/03/04 22:23
最近プログラミングとDirectXの勉強を始めた者です。
VC++でDirectXを使用し、3DのRPGを製作しようと思っているのですが
3Dのフィールドマップを設置するにはどの様な手段がございますか?

DXSDKのサンプル等を見て自分なりに考えた方法は
モデリングツールで作成したフィールドマップをX形式で保存して
それをDirect3Dによって表示させるという方法です。
他に手段がございましたらご教示下さい。お願い致します。
>>478
わざわざX形式を仲介するほどのことはないと思います
モデリングツールで作成したフィールドマップはたいていXじゃない形式で保存されるので、
Xでもいいけど自分のアプリに適した自前形式に変換し、Direct3DかOpenGLで表示でございます
>>478
まずどんなフィールドにするのかという条件を明確に定義しろ。
話はそれからだ。
モデリングツール、、
みんないいの持ってんのかね?

おれは六角フリー版だ、、
3DSMAX6。
割れ物じゃないぞ。
Xならメタセコで十分だろ
>>484
今調べてみたんだが
メタセコいいね。
LWだ。
ちょっとデコボコさしたりするくらいならxは必要ないな
ちなみにメタセコには「凹凸地形の作成」なる機能がありましゅ
489478:04/03/04 23:36
皆様ありがとうございます。
X形式でなくても大丈夫なのですね。

>>481
条件ですか・・・。
イメージとしてはフル3Dで構成されたMMOのようなフィールドです。
具体例を挙げると、最近のではリネージュ2がそうでしょうか。
ん〜・・・説明が曖昧すぎますね、ハッキリしなくて申し訳ない。
リネ2のフィールドってどんなもんだ?FF11みたいな奴?
ちなみにROみたいな3Dフィールドは内部データはほとんど2Dと一緒
ゼノギアスとかああいう完全3Dのフィールドは3D用のデータ構造を作らなきゃならない
491478:04/03/04 23:53
>>490
完全な3Dフィールドとして作成するつもりです。
ですから視点変更なども出来るようにしたいと思ってます。
確かにそういうフィールドはモデリングツールで作成して配置することになるんだろうけど、
フィールドデータを用意するのが大変なのもそうだが何よりもプログラムが大変だな。
あとFF11とROの決定的な違いは論理移動空間が3Dと2Dで違うこと。視点云々の問題ではないです。
493478:04/03/05 03:23
>>492
スマソ。↓の行は余計でしたね・・・。
>ですから視点変更なども出来るようにしたいと思ってます。

フィールドマップについてですが
ハイトフィールドを使って高低差をつけてみます。
494デフォルトの名無しさん:04/03/05 06:29
ところでみんなハイトフィールドで作ったものって
どうやって細かい部分を作ってるの?
モデリングソフトで読み込めないじゃない?
ウチのところは一回ハイトフィールドをポリゴンで出して
モデリングソフトで読み込んで色々と配置して実際のデータでは
ポリゴンを普通に読み込んで表示。
当たり判定は標高データを使うってしてるけど。

みんなのところはどうよ?
頂点シェーダ未対応のビデオカード(Geforce2MX等)でも
普通にD3DCREATE_SOFTWARE_VERTEXPROCESSINGを指定するだけで
頂点シェーダを使用することは可能なんでしょうか?
(使うバージョンは1.1です)
使える
>>496
早速のお答えありがとうございます。
これで安心して使えます。

恐縮ですが、もうひとつだけ質問させてください。

頂点フォーマットがRHWの時は頂点シェーダをスルーして
直接スクリーン座標を出力しているのか、それとも
なんらかのシェーダを通って射影座標を出力しているのでしょうか?

というのも、XYZRHW,RHW=1と同じ表示を
XYZで頂点シェーダを使用して表示させているのですが、
もしRHWではシェーダを全く使用しないなら
単にコストが多くなってるだけなのかと思いまして・・・。
498!496:04/03/05 10:19
>>497
それって平行移動やら回転やら拡縮やらするのにシェーダなくても大丈夫な感じですか?
>>494
実際の表示データを作るときはそれでいいんじゃない?
無理に論理データと一緒にする必要は無いしなー
>>499
それがですね。
なんだかハイトフィールドからポリゴン作って
モデリングソフトでいじってっていう手順を踏むと何故か
ハイトフィールドと整合性が取れなくなることがあるんですよw
(デザイナいじったでしょ?みたいなw)
なのでデザイナが作ったデータからハイトフィールド作れみたいな要望が
あったんですけどこれは面倒ですよね。ぜひ省きたい作業ですね。
いや、そりゃーできるっちゃあできると思いますよw

で、なんか楽なやり方知ってる人いないですかねーということで・・・。
>>500
メッシュからハイトフィールドを求めるのはそれほど難しくないんじゃない?
xy平面に垂直な直線とメッシュとの交差点を求めれば高さが求まるし。

まー究極を求めたらポリゴンレベルで判定しなきゃならんわけだが
ゲームなんだし適当なところで妥協していいかとw
>>501
あー結局やることになっちゃらほいw

terragen→ハイトフィールド出力→メッシュ変換ツール→モデリングソフト→ポリゴン出力→ハイトフィールド変換ツール→ハイトフィールド出力

あーあ無駄無駄無駄無駄無駄馬鹿馬鹿馬鹿馬鹿馬鹿・・・。
この一連の作業を間違えずに最後までやれると
考えてるところがなんともデザイナさんらしいですw
最後に苦労するのがプログラマなのは定説だ

まあ泣くな、同士は沢山いる
http://www.solid-web.com/article/2001/0930.html
504497:04/03/05 23:55
>>498
「それ」とは、RHW使用の時でしょうか?
確かにRHW使用時には
ワールド トランスフォーム行列が使用がされていないようなので、
平行移動時は頂点座標を直接いじる必要があるようですね。
これは単にワールド行列を無視したシェーダを使っているのか、
別の処理なのかが謎で・・・。

自前シェーダ時は任意の行列をかけられますが、
今作っている物は、2Dで複数のスプライトをまとめて表示しているので、
基本的に回転等は頂点を動かしてスクリーン座標を直接渡しています。

ちょっと見当はずれの答えかもしれませんが・・・。
>>504
表現は難しいがスクリーン座標ともちと違うちょっとずれたスクリーン座標だw
例えば800X600じゃなくて1:1とか変な単位になってるだけのスクリーン座標だ。
>>502

ちうか、市販CGツールをステージエディタ代わりに使うなら
ステージデータのImporter/Exporterぐらい作るだろ普通。
>>506
市販CGツールのSDKでもさわれたらいいんだけど、
そんな暇ないからその辺手作業。なんてったって中小ですからw
いくらか設定も必要な場合が多いので自動ってわけにもいかないので
ちくちく手でやってもらってたりして・・・。
508505:04/03/08 08:50
>>506

人手足りないなら仕方ないか・・・。
そういう場合は、perlとかpythonで簡易なコマンドラインツールを
シコシコろ作りつつ、それらをバッチ処理させるかな。やや古典的だけど。

データの作りこみ・修正作業の手続きが煩雑だと後々ボディーブローのように
ジワジワ利いて修羅場化するから、ないよりマシな代物でも重宝されるよね。
509508:04/03/08 09:49
スマン。番号がズレとった。

s/506/507/
s/505./506/
510デフォルトの名無しさん:04/03/08 13:55
シコシコろりつつ
('A` ;)     ('A` ;) ハアハア
/(ヘ ω.)ヘ    丿ヽ.)L

('A` ;)    ハァハァ
/(ヘ ωヾ('∀` ;)>.)L

   メッ!!
( `A')
/(ヘ ωヾ(゚∀゚;;;)>.)L

( `A')      ('A`;) スミマセン
/(ヘ ω.)ヘ    ノ )
         ^ ^
ヒトノ キンタマ
カッテニ サワリヤガッテ!
( `A')      ('A`;) モウシマセン
/(ヘ ω.)ヘ    ノ )
         ^ ^
クラエ!! ティンコレーザー!!!
( `A') ┌        ('A`;)丿 ノワー!!!
/(ヘ .☆━━━━━━∴ノ )
>>508
GUIでビジュアル的に使えないとあとで駄目っぽいです。

とりあえず地形の方は
「地形のモデルでハイトフィールドを作りますので、地形ノードの名前のはじめの3文字を半角のGroにしておいてください。」
っていっておいたら、また、色んな人がいるわw
1.Gro     Gだけ全角w
2.Gra     つづりがちがうじゃんw
3.Gら     またまたw
4.じめん   Σ(゚Д゚)

動物園かよ・・・。
ネ、ネタだろ(w
プリレンダのムービーパートしかやったことない連中は
「命名規則なんざクソ喰らえだせ」な奴が多いけどな。

>GUIでビジュアル的に

いや、バッチ処理のためにコンバータの中核部分だけ
コマンドラインツールにしておき、Tcl/TkでGUIラッパー。

ってそこまでするならプラグイン作っちまうけどな。
スキンメッシュが超簡単になったな
10分足らずでtiny君が歩いてくれたよ
感動した
DirectX9マンセー
515デフォルトの名無しさん:04/03/09 23:38
タイニーは女ですがなにかd3dxmeshcontainer
そうだそうだ。
tinyちゃんと呼べ。tinyタンでも可。
次世代ファイル共有ソフトですか?
ハァ
tinyが女だってこと知らなかった香具師

ノシ
まておまえら女に君付けでも別におかしくないだろ?
課長とかが部下に「佐藤君、お茶」とかいうし。
君は目下のものにつけるのです
薫製は酒の肴に付けるのです。
523デフォルトの名無しさん:04/03/10 11:12
tinyは最初キモかったけど、サンプル解析しているうちに馴れた。
むしろ可愛い。
嫁といっしょということか
そう言われてみればケツの振りが色っぽいかも
tinyタン詳細プロフィールとか無いの?
やっぱり誰もが通る道なんだな。
528デフォルトの名無しさん:04/03/10 14:51
529デフォルトの名無しさん:04/03/11 15:30
DirectX 9.0 SDK Updateの中にDX9bも入っていますか?
DXUpdateの方が容量が少なくて不安だからです。
530デフォルトの名無しさん:04/03/11 16:43
>>529

http://www.microsoft.com/downloads/details.aspx?FamilyId=9216652F-51E0-402E-B7B5-FEB68D00F298&displaylang=en

> Major components include: DirectX 9.0b system components (runtimes);
あれが萌えキャラだったらどうなってたことか。
DirectInput8インターフェイスの質問なんですけど
DirectInput8Create(gl_Hinstance,DIRECTINPUT_VERSION,IID_IDirectInput8,&gl_lpDI,NULL)
の第4引数がダイレクトインプットオブジェクトへのポインターになるんですよね?

その後の
gl_lpDI->EnumDevices(DI8DEVCLASS_GAMECTRL, EnumJoysticksCallback,NULL, DIEDFL_ATTACHEDONLY)
でgl_lpDIがポインターじゃないっていわれるんですけど何が悪いのでしょうか?
日本語ドキュメントも英語版ドキュメントも見ましたがさっぱりわかりません

gl_Hinstance アプリケーションのインスタンスハンドル
&gl_lpDI    LPVOID型
LPVOID型 に注目すると良いかも
ドキュメントをLPVOIDで検索してもさっぱりわかりませんでした?
LPVOIDってなんなんでしょうか?
ドキュメントをLPVOIDで検索してもさっぱりわかりませんでした
LPVOIDってなんなんでしょうか?
ドキュメントをLPVOIDで検索してもさっぱりわかりませんでした?
LPVOIDってなんなんでしょうか?
いい加減に早く答えてください、こちらも忙しいのですから。
やっぱりIDがないと馬鹿が沸きますね
>532
チュートリアルを見ろ。
>>538
障害者には優しく接しましょう。
障害者は強い不安を抱いてしまうと、目の前にあるものが見えなくなります。
また自分の存在すら見えなくなるので、同じ言葉や行為を繰り返すことがあります。
LPVOIDってなんなんでしょうか?
LPVOIDってなんなんでしょうか?
LPVOIDってなんなんでしょうか?
LPVOIDってなんなんでしょうか?
ここには答えられる人はいないようですね、他の掲示板で質問します、
2chのような低レベルな場所で質問した私がバカでした。
時間を無駄にしてしまいました、もう来ません。
チュートリアルすら見ないのならコピペ

LPDIRECTINPUT8 g_lpDI;

DirectInput8Create(gl_Hinstance,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&g_lpDI,NULL);
ここには答えられる人はいないようですね、他の掲示板で質問します、
2chのような低レベルな場所で質問した私がバカでした。
時間を無駄にしてしまいました、もう来ません。
LPVOID=貴方の脳みそへのポインタ
L=大きな
P=ポインタ
VOID=空っぽの
547デフォルトの名無しさん:04/03/12 11:05
今の主流のDirectXはDirectX8.1bってことでOK?
まだ9.0が使い物にならんらしいね。ハード依存があるらしいね。
ちょうどSDK落とそうと思っていたんだけど、いろいろと検索をかけてみると、
9.0はまだ駄目駄目らしいですから。
8.1bは英語資料しかないらしいですね。要は8.0の日本語資料を使えということですかね。
>今の主流のDirectXはDirectX8.1bってことでOK?
NG
>まだ9.0が使い物にならんらしいね。ハード依存があるらしいね。
8だろうが7以前だろうが、ハード依存はある。
549547:04/03/12 11:22
thanks
9対応のビデオボードを装備してない人もまだ多いんじゃねーの。
そういう問題じゃなくて?
9完全対応のビデオカードはラデ9500以上、ゲフォFXは不完全。
しかし8完全対応のビデオカードも自作系の人間を別にすれば、
それほど普及していない。
どこで折り合いを付けるかというだけで、フルに機能を使わなければ、
どのバージョンでも関係ないし、対応がされていないのなら、
代替動作を用意する手もある。
何がフル機能で何が代替機能なのかが
分かりにくいというのが問題だよな
553547:04/03/12 13:36
>>550
まさしくそういうことを言いたかったんです。言葉足らず、申し訳ない。
調べる手間を惜しむならDirectX7が無難。
MSのヘルプドキュメントと掛けて俺のチンコとと解く
役にt(ry
いざという時に役にt(ry
DirectXを使わないソフトでちょっとした3Dを使いたい時などで
D3DXの算術関数だけを使いたい時があるんだけどD3DX9.libだけを
リンクし、算術関数だけを使用した場合、DirectX9をインストール
していなくても起動するでしょうか?
算術関数の実体がD3DX9.libにあればいけると思うのですが…
ここ一番で役にt(ry
チュートリアルダウンロードしてきます
ありがとうございました
まあ、作るものがエロゲーのフェードエフェクトか弾幕STGまでという人は
DirectX7で必要十分だからね。
ムキー、弾幕シューをバカにしてますね。

俺もだけど。
エロゲフェードにDirectX要らない。むしろ枷。
>>558
・自分で試したほうが早い。
・どのDLLがロードされたかVCのツールで確認してみる。
・算術関数の中身はネット上に転がっているのでそれ使う。
graphics.transform.World = Matrix().rotationQuaternion(Quaternion().slerp(q1, q2, t)).inverse();
奇怪
便乗質問
>>564
> ・算術関数の中身はネット上に転がっているのでそれ使う。

M$が実際に実装しているコードが転がってるということ?
それなら是非見てみたいが…アドきぼん
どこかの誰かさんが作ったライブラリを拾ってきて使う

って意味じゃねーの?
>>567
意味が違う
>>568
違う
Lightingで得られた陰影をそのままテクスチャに
合成しちゃうってぇのは無理ですかねぇやっぱり。
それがライトマップだろ。
>>571 ライトマップを3Dツールとかで予め作っとくんじゃなくて
毎フレーム生成するってことかいな?

陰影無しの画像と陰影のみの画像を描画して、
それらを合成するってことなら、やったことあるけど。
そもそもですね
行列って何よ?ベクトルって何さ?
数値が順番に並んだものだよ

それらに対し計算(足し算や引き算、掛け算)を定義してあげると、
いろいろ便利ってだけの話。
>>574
高校出てねーのか?
ここで尋ねるよりヘルプは読んだ方がいいと思う。一応誘導しとく。

行列
ttp://www.lib.kanazawa.ishikawa.jp/kinsei/archive/daimyo.htm
ベクトル
ttp://www.vector.co.jp/
>>573
それがシャドウマップだろ。
>>578
シャドーマップって、影を書いたテクスチャ画像を
モデルに貼り付ける手法のことじゃなかったっけ?
>>577
下のリンクはすでに色が変わってるので、あまりネタとして面白くない。
>>579
ポストエフェクトとか諸々の都合で
別バッファに書き込む場合もあるよ。
>>578 スマン説明不足だった。
俺の場合、ポリゴンモデルに陰影のテクスチャを貼り付けるんじゃなくて、
ライティング無しテクスチャ有りで作成したカラー画像と
ライティング有りテクスチャ無しで作成した白黒画像の2つを
合成して影を表現させて、バックバッファに入れるって話。
583571:04/03/13 23:56
>>582
テクスチャとしてではなく画像として保持するということですよね。
テクスチャとして保持(ライトマップ作成)は難しいですかやっぱ。
>>583
テクスチャをレンダーターゲットにすればいいのでは?
585582:04/03/14 09:41
>>583
いや、画像ファイルとして保存したものじゃなくて、>>584のいっているように
書き込み可能なテクスチャに格納した画像の合成だよ。

シャドーボリュームで作った影と、ライトによる陰影を滑らかに合成する
うまい方法を思いつかなかったので、2度手間だけどライトの陰影を
別サーフェスに描画したんよ。
586デフォルトの名無しさん:04/03/14 10:33
>>585
環境光が無い場合は影の部分を単純に真っ黒にすればイイですけど
ある場合は数学的に正しい明るさにするのは結構難しいっすね。
陰でグラデーションになってる部分に影が落ちた場合グラデーションは消えなくちゃダメなのですが
影部分を減算、乗算どちらでもそうはなりませんし。

っていうか>>585のように「普通の陰影画像」と「影の白黒画像」で正確に合成するのは無理っしょ
「普通の画像」でグレーの部分があったとしても、グレーの物体なのか、
それとも白い物体が陰で暗くなってグレーになっているのかわからないけど
影を落とした結果の色は異なるわけで...

正確にやりたい場合、オイラが思いつく主な方法は、
・「陰も影もない画像」「陰の画像」「影の画像」の3枚を用意して合成
・影の部分をステンシルバッファに描画。影でない部分は普通のライティングで描画、
 影部分はアンビエントライトのみで描画

ってかんじかなぁ。
ただ、光源が複数になるとそんだけレンダリング回数が増えてタイヘンそうだし
もしゲームとかでパフォーマンスが必要なら
正確では無いけどそれっぽく見える手法を選択したほうが良いかもね。ケースバイケース
DirectDraw使ったプログラム(ウィンドウモード),終了するとなんとデスクトップの背景などに描画した絵が
残ってしまうんです(F5で消える)しかもその絵が今終了したものではなくサンプルプログラムの絵だったりするんです。
原因と解決法わかりませんか(クリッパーはしっかり使ってるはずです)?
588582:04/03/14 12:15
>>586
明暗の画像は、物体本来の色は考慮せずに、ライトの方向ベクトルと
頂点の法線ベクトルから、確実に日があたらないときが255(内積が-1〜0の時)で
ライトの方を向いて影が薄くなる(内積が大きくなる)につれ0に近づくという
256階調の画像を作るでしょ。
次に、シャドーボリュームとステンシルつかって、影のとき255、そうでないとき0
っていう2階調の画像を作る。
この2つを加算すると、物体に光をさえぎられた場所は255(255以上になっても255なんで)で
シャドーボリュームによる影に近づくにつれてなだらかに明暗が変化する画像ができるでしょ。
それを、ライティング無しでレンダリングした画面に、適当なカラーとαでブレンドすると、
普通にライティングしたモデルにステンシル影をブレンドした場合より、ステンシル影の境目
が目立たなくなるって話なんす。重いけど。
クラスの宣言で
class DirectInput{
 ...
 protected:
  BOOL CALLBACK EnumJoystickCallback(LPDIDEVICEINSTANCE lpddi, LPVOID pvRef);
 ...
};

関数の定義で
BOOL CALLBACK DirectInput::EnumJoystickCallback(LPDIDEVICEINSTANCE lpddi, LPVOID pvRef)
{
 ...
}

としてコンパイルしようとすると、
if (FAILED(m_DI->EnumDevices(DI8DEVCLASS_GAMECTRL, EnumJoystickCallback,
                   this, DIEDFL_ATTACHEDONLY)))

↑この部分で
directinput.cpp(181) : error C2664: 'EnumDevices' : 2 番目の引数を 'int (struct DIDEVICEINSTANCEA *,void *)' から 'int (__stdcall *)(const struct DIDEVICEINSTANCEA *,void *)' に変換できません。
となってしまいます。EnumDevicesの第2引数の型情報をVC++6.0の型情報ヒントでみると

int __thiscall DirectInput::EnumJoystickCallback(DEVICEINSTANCEW *, void *)

となっているようです。どこがおかしいのでしょうか?
EnumJoystickCallback()をメンバ関数にする必要があるんかい?
  static BOOL CALLBACK EnumJoys....

こうすればいい。
で、次はメンバ変数にアクセスできないよドラえもんー
と言って来るんだろうが、知ったことか!
class DirectInput {
private:
  int private_member;
protected:
  void EnumJoystick();
  static BOOL CALLBACK EnumJoystickCallback(LPDIDEVICEINSTANCE lpddi, LPVOID pvRef);
};

void DirectInput::EnumJoystick() {
  if (FAILED(m_DI->EnumDevices(DI8DEVCLASS_GAMECTRL, (LPDIENUMDEVICESCALLBACK)EnumJoystickCallback, this, DIEDFL_ATTACHEDONLY))))
}

BOOL CALLBACK DirectInput::EnumJoystickCallback(LPDIDEVICEINSTANCE lpddi, LPVOID pvRef) {
  ((DirectInput *)pvRef)->private_member = 0;
  return DIENUM_STOP;
}
>>>589-1000
こんなところでお決まりパターンを繰り返すなよ
ちったあ勉強してから質問しろよ
ちったあ無視してやれよ
594589:04/03/14 20:44
規制中なので携帯から。 staticは試してみましたが別のエラーななってしまいました。 で、>>592さんのように第2引数をキャストしてやったらコンパイル通りました。 どうもありがとうございました。勉強不足なのは本当に申し訳ない。
>594
エラーメッセージ嫁
static BOOL CALLBACK EnumJoystickCallback(LPCDIDEVICEINSTANCE lpddi,LPVOID pvRef);


正しいエラーをキャストで握りつぶす。
こういうことする奴がつまらんバグを量産するんだろうな。
596589:04/03/14 21:39
いや、まさにそこなんです。キャストするのは気持ち悪いなとおもって。EnumJoystickCallbackはコールバック(__stdcall)だと宣言も定義もしてるのになぜEnumDevicesに渡したときに__thiscallになってしまうのかがわからないのです。 調べに逝ってきます。
__thiscallはメンバ関数の証。staticをつければ無くなる。

ところでおまいはコールバック関数の型をどこで調べたんだ?
598587:04/03/14 22:21
自己解決しますた。
描画関係をpeekmessageの中でやると悲惨なことになります。
WM_PAINT(の中でやる)が正解でした。
599589:04/03/14 22:24
static BOOL EnumJoysticCallback(...); と宣言すると今度は int (...)からint (__stdcall *)(...)に変換できない と言われてしまいます。 コールバック関数の型はEnumDevicesの引数を右クリックして「型情報ヒント」を。
ああ、クラス関数ってのは、確かにクラスに付随した関数だけども、
実際は普通のグローバルで定義した関数と何も変わらない関数と思っちゃっていい。
グローバルの関数の宣言をcdeclからstdcallにするにはそれを書けばいい。
ってことは、クラス関数でも一緒のことなのです。
>599
とりあえずDirectXのヘルプをみて、一字一句引数の型が間違ってないか確かめろ。
というか>595で書いたプロトタイプは試してみたか?
602589:04/03/15 00:12
>>599 あう、LP`C`DIDEVICEINSTANCEと一文字抜けてたんですね。ありがとうございました。 恥ずかしすぎるので逝ってきます…
BBXにくるネカマをなんとかしてくれ
女の名前にすれば優しく丁寧に教えてくれるとでも思っているのか
うちのBBSにも同じ質問内容で違う女の名前で来るし
BBXはマルチポストネカマに優しいよな
急に板違いネタを振るやつも大差ないぞ
むしろこっちでは、女と思われるとなめられるんで
自然に男口調で書き込むと思うがな。
>>604
ワラタ。
いるんだそんな奴。
608デフォルトの名無しさん:04/03/17 21:31
BBX男か女かわからん名前の奴ばかりだが・・・・
俺も某MMOでリカとかナツミとかやったしな。
女も少しは居ると思うが、ほとんど男だ
気にするな
おれも女だから気にするな
おれもっす
おれは女になりたい。
乙女の心を持っています
BBXとは逆に、実は女ばっかりなのか?
女は大盛りねぎだくだよな
女体盛
オヤジ盛り
(;´Д`)ハァハァ
裸祭り
日高祭り
>>609-620
もう、お兄ちゃんってば。スレのみんなに迷惑かけちゃダメじゃない。
みなさんどうもお騒がせしましたあ。ぺこり。
こら!妹なにをする
お前はいつもいつも余計なことを
お兄ちゃんが生で教育してやる
ハアハア
やはりエロゲプログラマばかりだったか
絵に糞プログラマはエロゲプログラマだから
□絵に糞プログラマもエロゲプログラマ
ロゲプ必死だな(藁
おれもロゲプだから気にするな
おれもっす
おれはロゲプになりたい。
ロゲプの心を持っています
女になれたら自分の具を見ながらシコるな多分
お兄ちゃんがラグドール処理?の研究といって
いつも私の腕や脚や腰をぶらんぶらん揺らします。
お兄ちゃんのプログラミングに役立ちそうなHPを
教えてください。お願いします。
お兄ちゃんがラブドール?の研究といって
いつも私の腕や脚や腰をぷにぷに触ります。
634デフォルトの名無しさん:04/03/20 20:25
お兄ちゃんがスキニングと人体の変形の研究といって
コンドームをかぶせるのを手伝わさせるんです・・・
>>634
ageるほどおもしろいと思ったのか?
もういいよ
糞スレになったんかよ
>>636
うん、こ。
おれもウンコだから気にするな
(*)anal = (&)cunt
おれはアナルになりたい。
アナル・レイ
642デフォルトの名無しさん:04/03/22 14:02
GPUってCPUみたいに
ちゃんとオペレーションコードがあって
ATiやnVidiaで命令表みたいなのがちゃんと用意されてるの?
おしえて!エロゐ人!
あるにはあると思うんだけど…
ユーザー側としてはDirectXのヘルプを読んだほうがいいんじゃね?
ollydbgの1.06verか1.07verがDLできるサイト教えて
645デフォルトの名無しさん:04/03/22 18:26
>>644
ny
最初Debugではエラーが出なくてReleaseでエラーが出てたんで色々弄ったら
今度はDebugでエラーが出てReleaseでは全然エラーが出なくなったんだけど
これってどういうこと?両方ともエラーが出ないようにしたほうがいいのかな
ソースがウンコ。
両方とも、問題なく動くようにしたほうが良いじゃろ。
nVidiaのサイトからFX Composer 1.1 Installer 落とせた人いる?
>>646
動作が不定なところがメモリリーク臭いな。
650649:04/03/22 21:49
リークじゃねぇな。
アクセスバイオレーション?の類?
多分ぬるぽだな。

デバッグ環境とリリース環境では初期化したり初期化しなかったりするから。
niftyserve時代のCフォーラムで不確定性バグと呼ばれてたことがあったな。

さて私の処遇は皆様にお任せしますわ
>>651
実際は2ちゃんのAAみて笑ってられるほどぬるいバグじゃねぇからな。これ。
あんまりいい加減な設計の元で作られたプログラムでこれを修正するのは
ほぼ不可能といっていいぐらい大変だからな。
>>646
初期化しわすれ色濃し。
自動変数ぜんぶ調べてみろ
こういうのってすぐ見つかる場合もあればなかなか見つからずにイライラするときもあるんだよな
boundschecker使えば一発だよもん
>>655 ホビーで買うには価格が高すぎ
657646:04/03/23 10:47
解決した。
オブジェクトをnewしたときにカウントを初期化するのを忘れてたみたい
初期化しなかったらReleaseでエラーが出なくて
初期化したらDubugでもReleaseでエラーが出ない
ダサ過ぎ。

バグを出したことじゃなく、
こんなことで大騒ぎしてたのが。
>>647->>656
お前等ダサ過ぎ。

こんなことで大騒ぎするな。
レベル低い。
そんなことで突っ込むな。
レベル低い。
おれもレベル低いから気にするな
おれもっす
俺漏れも
お前ら、少しは外に出て、はぐれメタルでも倒してこいよ。
おれは、やねうらおになりたい。
脂肪分の多い物をたらふく食え。
もう駄目だここ。
しょせんゲムデヴ板を崩壊させた奴らだし
こういう人間性
というか、単に春休みだからだと思うぞ。
おれも春休みから気にするな
おれもっす

俺、おまえの脂舐めたい
お前ら質問するならはやくしろ。しないなら帰れ。
なら聞きたいんだが、DirectXってどれもスレッドセーフなの?
DirectPlayはスレッドセーフだとかヘルプに書いてあったけど。
DirectX9.0bのDirectShowで拡張子swfのFlashファイルを
動画として表示させるようなことは出来るのでしょうか?
ムービーテクスチャのように表示できればとおもったのですが、
DirectShowではswfファイルはサポートされていないようですし・・・
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=39&vew=50
マルチポストする前に、厨の巣に帰れ。
>>674 まき糞メディアが詳細公開してないからできないような気がする。
>>674
資料見て自分でswfプレイヤー実装したまえ。
既にテクスチャにFlashムービー貼り付けてるゲームとかあるようだぞ。
674じゃないけど、なんかできそうな気がしてきた
試してみようっと
ゲ製作技術板にもスレ立ててくれ
まともになってきたんだからそろそろいいだろ
このスレ終わってから移動でもいいと思うが。
移動というか住み分けを…
あっちはあっちでやってホスィ
ゲ作板はコード晒しながらって人が多いから
そういうスレきぼんぬ
書き込みよりコード行数のほうが絶対多いだろ、あの板は
DirectXはゲームだけじゃないだろ
物理シミュとか次世代UIとか
マーチョマチョマチョナイノーン?
すでに話は終わっているような気もするけど、

ttp://www.tulrich.com/geekstuff/gameswf.html
ttp://www.openswf.org/
ム、ゲ作と同時進行ということでおながいします
OpenGLは両方立ってるし問題ないよね
ム板から消えるのだけは勘弁して
http://if.dynsite.net/t-pot/program/103_FPSFixing/index.html
のFPS固定で、

>なお、今回のプログラムでは、GetRasterStatusの呼び出しで無限ループをかけて
>無駄にCPUを使っています。都合に応じて、Sleep で休ませたり、他の処理を呼び出すなりしてください。

とあるのですが、具体的にどのような命令を書けばいいのでしょうか。
sleep(10)とやった場合、CPUは何もしないのでしょうか。それともたとえば別ウィンドウで動画を
再生しているときにはそちらの処理を行っているのでしょうか。
Sleep(10)とはスレッドを10ms待機させるという意味ですが。
それにしてもt-potってこんなことも記事にしてたのね。ちょっと意外(笑)
お返事ありがとうございます。

sleepというのはあくまでスレッドを待機させるというということだったのですか。
FPSを固定にしたいと前から思っておりまして、ただ単純に無限ループとbreakを行えば
済む話とは思うのですが、どうせならば、メディアプレーヤーとか動かしながらゲームの
動作確認をしたいとおもったので、ほかの処理を呼び出すようなことをしたいとおもった
しだいです。

エクセルVBAをいじったときはDoEventsというのを呼び出していたのですが、DirectX
ではどうすればいいかわからなかったもので。

つまり、FPS固定にしたいのだが、ずっとループさせておくのはもったいないので
ほかに処理を渡したい。でも、渡したことで処理がもどってこなくなって固定した
はずのFPSが崩れてしまうということは避けたいということなのです。
次のフレームまでの時間を計算してスリープ
ちょっと短めに指定して残りはブン回す(Sleepの精度より精密に制御したいなら)
Sleepから戻ってくる保証はないが、○○しながらが可能なほどCPUに余裕があるなら
問題ない程度にはなると思われ

timeBeginPeriodとtimeEndPeriodを忘れないようにな

ついでに聞くがゲ製作技術板は嫌いか?
見てもいないようだが
691デフォルトの名無しさん:04/03/25 09:32
XNAあげ
Sleep(10); としても10msきっかり止まる訳ではないから注意な
10ms以上止まる可能性もある

他のプロセスにCPU時間を回すだけなら Sleep(0); でよい
(これでもCPU100%占有は回避できる)。
693(ログ差分):04/03/29 10:34
693 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 15:21
 Sleep(0)だと他アプリの処理があればそいつにCPUを譲るが、
 誰もいないとCPUを握りっぱなしでOS全体の使用率は100%になるから、
 あんまり好ましくないけどな。

694 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 15:29
 OnIdle使ってたらSleep(0)はイラネ

695 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 15:42
 ところで100%になったら何か困ることあるの?

696 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 15:54
 >>695
 同時に動作している他のアプリの動作が鈍くなるぐらいじゃねーの?

697 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 16:15
 >693
 他にCPUタイムを欲しがるプロセスが誰もいないということはあり得ないので安心してよい
 心配なら Sleep(0); を入れた無限ループを実行して、タスクマネージャのCPU使用率見てみ
694(ログ差分):04/03/29 10:34
698 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 16:21
 行儀悪い。他のアプリまでもっさりさせると評判悪い。重いプログラムだと見なされる。

699 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 16:21
 >>695
 不安定なPCで熱暴走とか起こすようになって、自作PCオタからクレームが来る。

 まあ、それはともかくノートPCとかならバッテリー消費量とかあるし。

700 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 17:17
 >697
 100%になるんだが。

701 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 17:34
 Sleep(0)なら、優先順位を最下位にして無限ループさせても、
 他のアプリに対する重さでは大して変わらない。

702 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 18:10
 >>694
 ?
695(ログ差分):04/03/29 10:35
703 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 18:21
 ・他のアプリがもっさり
 ・System Idle ProcessのCPU使用率が低くなる(それ以外のCPU使用率が100%に近くなる)
 この2点は別問題

 Sleep(0)が影響を与えるのは前者
 無限ループというとても重い処理をしているゲームでは
 CPUを少しでも多くぶん取ろうとする
 無いよりマシだがCPU使用率を低くしろというニーズには合致しない

704 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 19:00
 ゲームの場合Sleep(0-1)とかしとかないと最小化したときとかに重くなる

705 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 19:05
 最小化時はゲームループを止めない?

706 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 19:27
 メディアプレーヤもDirectXバリバリだよね

707 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 19:31
 一般アプリに次世代の並を起こせるのはおまいらだ!!
 DirectXまんせー

708 名前: デフォルトの名無しさん 投稿日: 04/03/25 19:49
 吉野家に牛丼の並を起こさせるのは松屋だ、
 ぜったい。
696(ログ差分):04/03/29 10:36
709 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 20:01
 2DエフェクトオンリーのDirectXとか出ないんかな

710 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 20:56
 Nスク作者はbusy loop以外ありえないとしています。
 全てのゲームプログラマはこれに従うべきです。

711 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 21:00
 >>710
 ( ´_ゝ`)フーン

712 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 21:28
 >>709
 グラボがそもそもそういう風にできてないから意味ないっしょ?
 2Dやるにも3D機能使った方がいいっていうか
 両方満たしてるんだから問題ないじゃんいまだって。

713 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/25 22:29
 >>709
 GDI+のことか
 長角まで封印されてるけど

714 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 00:10
 クリリンのことか

715 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 03:55
 くりりんのことかぁぁぁ〜〜〜〜〜!!!!
697(ログ差分):04/03/29 10:36
716 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 07:12
 字幕を表示させるシステムを個人で作るのはほぼ無理ですか?

 せりふすべてのテクスチャを作って文字以外のアルファを抜くしかないのですか。

 テキストに書いてある文字を一字ずつ読んでテクスチャを作成するツールを作るか、
 一まとめにシートをつくってそこからUV指定して切り抜いていくか、どうしようか
 迷ってます。50音ひらがなくらいならばそれでもいいかなとは思ったのですが、
 漢字も使うとなるとかなり大変なことになりそうです。

717 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 07:24
 専用のTrueTypeフォントを作るという意味ならばそりゃ大変だろうが・・・

 データの持ち方という意味か?
 俺は任意の解像度で綺麗なフォントを得るために
 GetGlyphOutlineでOSにパターンを作らせてる。

 生成したフォントデータをキャッシュするとか
 テクスチャの更新を最低限に抑えるとか工夫すれば
 MMORPGくらいでも、
 速度やデータ量は実用上問題はないけど。

718 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 09:16
 リアルタイムに処理しても大した問題にならないにもかかわらず、
 なぜ文字というだけで、独自の装飾を加えるわけでもないのに、
 ツールなどを別プログラムで作ろうとするのか、さっぱり理解できない。

719 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/26 09:24
 エロゲプログラマはやることなくなると、どうでもいいことに拘るようになる。
ログ差分にレス付ける時は
>>現在のレス番.差分のレス番 (>>697.716)
見たいにやった方がわかりやすいかもな。

あと、これ以降のログもってるヤシは、補完よろしこ。
D3DRS_CLIPPINGをがTRUEのままだとランドスケープが位置によって消えてしまうのでFALSEにしたのですが
すると1部描画がおかしくなるのですが何故でしょうか。DirectX9のAPIでビルドしていた時には問題なかったのですが
8.1にソースを変更するとおかしくなりました。特定の処理のところだけ一時的にCLIPPINGをTRUEにすれば
解決することはするんですが気持ち悪くて・・・。環境は8.1SDK、MobilityRadeonです。

http://cgi.f3.aaacafe.ne.jp/~yoiche/up/upfiles/022.gif OFF
http://cgi.f3.aaacafe.ne.jp/~yoiche/up/upfiles/023.gif ON

ただGF4Tiだと正常に表示されるんですよね・・・ドライバが悪いのかなぁ。
D3DRS_CLIPPINGをFALSEにして問題出るならTRUEを基準にして問題解決を図るべし。
GeForceはHWでは常にクリッピングしていると昔どこかで呼んだ記憶がある。
701699:04/03/30 10:02
何気に軸のラインを短くしてみた所D3DRS_CLIPPINGをFALSEでも正常に表示されました。
CLIPPINGを切ってるのにCLIPPINGされたような現象になってるということでしょうか?
あとさらに当初のD3DRS_CLIPPINGをTRUEのプログラムをGF4Tiで動かすとなん普通に動いてるようで・・・。

意味が分からない。
DirectX8.1SDKをインスコした状態で
D3DXComputeNormals(pMesh);
でコンパイルが通らないから、
試しにDirectX9SDK形式で
第二引数にNULLを追加してみたらコンパイルできた。

・・・仕様変えたんならHelpも更新しろやゴルァ(゚Д゚)
それともHelpはDirectX9用のを見ろってことか?
M$の資料とかけて俺のチンポととく
>>703
付いてるだけ。
705デフォルトの名無しさん:04/03/30 22:12
>>702

D3DXComputeNormals(pMesh);

の引数が1つだけなのはDirectX 8.0の仕様だろ。

8.1の英語版ヘルプにはちゃんと書いてあるだろ?
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx81_c/directx_cpp/dx8.1_cpp_start.asp
DirectXでFlashを表示させるには、
どうしたらよいとおもいますー?
707デフォルトの名無しさん:04/03/31 16:45
あんたあそこであんな質問するのやめてよ
萎えるわ
>>706
30レス前くらい見れ。
709デフォルトの名無しさん:04/04/01 19:19
DirectDrawでWM_KEYDOWNの時にサーフェスの描き直し命令を出してるのにサーフェスの内容が切り替わらないんです
(アプリケーション起動時の絵がずっと出ている)。
原因としていくつか候補を上げてくれませんか?
GDC取得中に描画
ELECOMのPSコントローラコンバーターをつかっていて、ボタン押情報とスティック
の傾き情報はうまく取得できるようになったのですが、フォースフィードバックが
うまくいかないのです。ただ振動させたいだけなのですが、一応DirectX8.1サンプル
についていたFFConstというサンプルを読んでカスタマイズさせながらエフェクトをStart
させたところ、最初は振動せず、初期化後に->SetParametersを呼び出したら何とか振動
はするようになったのですが、そのままではふるえず軸を適当に傾けると急にコントローラ
がふるえるというよくわからない動作をするようになりました。また、PSコントローラは振動部
分が左右2個ついているのでさらによくわからない事態に陥っております。軸とか関係なし
にただ、左右の振動をどのくらいの強さでどれほどの時間振動させるということをやりたい
のですが、
DIEFFECT
DWORD rgdwAxes[2] = { DIJOFS_X, DIJOFS_Y };
LONG rglDirection[2] = { 0, 0 };
などにどのような値を入れればいいのでしょうか。
>>711
もしかしてトリガにFFBを割り当ててない?
お返事ありがとうございます。CreateEffectの時は
DIEFFECT eff;
ZeroMemory( &eff, sizeof(eff) );
eff.dwSize = sizeof(DIEFFECT);
eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
eff.dwDuration = INFINITE;
eff.dwSamplePeriod = 0;
eff.dwGain = DI_FFNOMINALMAX;
eff.dwTriggerButton = DIEB_NOTRIGGER;
eff.dwTriggerRepeatInterval = 0;
eff.cAxes = 2;//軸の数
eff.rgdwAxes = rgdwAxes;
eff.rglDirection = rglDirection;
eff.lpEnvelope = 0;
eff.cbTypeSpecificParams = sizeof(DICONSTANTFORCE);
eff.lpvTypeSpecificParams = &cf;
eff.dwStartDelay = 0;

という感じになってます。
別のコンバーターを買ってくる
ハードかドライバか両方かが糞ってこともあるかもな。
リファレンスラスタライザってどうやってONにするんですか?
以前のバージョンだとレジストリファイルが用意されてたはずなんですが・・・

Texture Toolが動かないよママン
>>715
コントロールパネルからDirectX開いて、Direct3Dタグ。
その辺にEmurate Reference Rasterizerって項目があるからチェックすりゃOK。
717715:04/04/03 18:08
Windows2000なんですが、コントロールパネルにDirectXの項目が無いです
前はあったような気がするんですが・・・・・
directx.cplを探してみるとか。
DX8.1からDX9に移行しようと思ってるのですが、作業的に結構たいへんですか?
経験者談求む
ttp://rectangle.sucre.ne.jp/page/zakki.html

ここの人も苦労しているが、おそらく操縦桿にかかる空圧の重さ
(エルロンが重いってやつね)を振動で簡易再現するドライバなんだと思われ
すぐできるよ。半日もかからない。

マルチサンプルまわりを作りこんでるとちょっと手間はあるかも。
ほかにも苦労してる人がいるんですね。同人だけどここまで作り込んでる人が
投げ出しちゃうくらいだから相当大変なんでしょう。

一昔前はコンバーターといえばスマートジョイパッドだったんですけど
ELECOMのコンバーター
http://www2.elecom.co.jp/peripheral/gamepad/converter/index.asp
はamazonでも上位にはいるくらい売れてて、2個コントローラが使えて
販売価格も2500円程度だから、家にプレステパッドが余ってる人には
便利なんですよね。私もスマートジョイパッド最初に買ったときは1個
つなぎで3000円程度だったのを覚えてます。

さて、振動に関してですが、左がわのモータに関しては強さと振動する
時間を指定して回すことができるようになりました。どうもありがとうございます。
しかし、右側のモーターがどうにもならないのです。
おそらくは軸の部分だとは思うのですが、どこをどう書けば左側もしくは
右側のモーターに関する設定をするかということがわからず、とりあえず
左側が動いてしまったといった感じです。
続き

ちなみに絶対にできないかといえばそうでもないようで、コンバーターに
ついてきたドライバをつかってコントロールパネルでゲームパッドの
動作チェックができるのですが、そこにはフォースフィードバック部分
に関するチェック項目があり、左右それぞれのボタンを押すとそれに
応じたモーターが回るようになっているのです。これを開発者が
どうやって作ったのかはわかりませんが(ちなみにこのコンバーターは
DirectX7以上必須となっています)何とかすれば動くのでしょう。

軸を列挙させる関数部分で、コールバックが4回呼び出されている
ので軸は4つあると思われ、
DWORD rgdwAxes[2] = { DIJOFS_X, DIJOFS_Y };
でエフェクトを作成した後に右軸の値はZとRZになっているので
DWORD rgdwAxes[2] = { DIJOFS_Z, DIJOFS_RZ };
とやればできるだろうと思い試したところエフェクト作成部分でエラーがでてしまいました。
ここくらいしか、左右のモーターを指定する場所がないような気もするのですが
以前苦戦しております。
面白くないゲームほど
こういうくだらないことにこだわるよね
>>724
|   ≡ ('A` )
│ ≡ 〜( 〜)
↓  ≡  ノ ノ
インターフェースをしっかり作るのは、インディーズゲームとしての最低マナーだべ。
それすらしないプログラマはウ○チ・・・と餌に食いついてみる。
727715:04/04/04 13:28
Developer Runtime入れたらDirectX.cplインストールされますた。
ありがとうございます
>面白くないゲームほど
>こういうくだらないことにこだわるよね
もしかしてあなたは、テクモのDOAXビーチバレーの開発者の人ですか?
>>724が正解w
730709:04/04/04 23:20
InvalidateRect書いたら一応うまくいったのでウィンドウが描き替えられていなかったようです。
しかし、InvalidateRectでは画面がちらつく上に重いのでもっと良い方法はないでしょうか?
IDirectInputEffect::Startメソッド
dwFlags
DIES_SOLO
このフラグを省略すると、エフェクトはデバイス上で
既に再生が開始されている既存のエフェクトと混合される。
---------------------
とあるのですが、エフェクトが混合されません。
LPDIRECTINPUTEFFECT Effect1,Effect2;
Effect1:弱く30秒間
Effect2:強く1秒間
例えばEffect1をStartさせ、終わる前にEffect2をStartさせると、
Effect1が中断されてしまいます。SetParametersのほうを使っても同じでした。
それぞれのエフェクトはCreateEffectで作成し、単体では問題なく再生されます。

エフェクトを混合させるには何かやらないと駄目なのでしょうか?
リファレンスになるのはSideWinder Force Feedback Proくらいだろ (18000円。販売終了)
そのへんで売ってるPSパッドコンバータの動作なんて信用ならん。
「なんでもいいから震える」表現にしかならんよ。
>>732
うーん、そうなんですか・・・他の方法考えてみます thx :D
マリオのジャンプは物理法則にしたがってないからな
αテクスチャ付きのモデルでシャドウボリュームって作れますか?
テクスチャの輪郭部分を抽出する方法が思い付かなくて・・・。
directx9.0bを入れたのですが、
ビルド時に

D3DXCreateFont(lpD3DDEV, hFont, &m_lpPrint );の部分で
error C2660: 'D3DXCreateFontA' : 関数に 3 個のパラメータを指定できません。

m_lpPrint->DrawText(str,-1,&rect,DT_LEFT | DT_EXPANDTABS,color);
error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個のパラメータを指定できません。

とでてしまうのですが、同じ経験された方いますか?

MSDNにかかれていることと
d3d9core.hにかかれていることが違うんですよね
>>736
日本語ヘルプ、日本語MSDNはsummer未対応
>>735
海外のサイトで見かけたけど輪郭トレースでポリゴン化してた
角度によってはボリュームが荒れるのと速度が遅くなるのが欠点
結論はアルファを輪郭トレースするより
作りこんだモデルから普通にボリューム作ったほうが速かったんだったかな
実装したことはないが
アルファマップをディスプレースメントマップにつっこんで
テセレータからゴニョゴニョしたら出来そうではないだろうか?
それじゃシャドウボリュームがつくれんだろうが
ピクセルシェーダで筒状の物体って描画できますか?
どこで切っても身が詰まってるような物。
可能なら、αテクスチャを伸ばせないかな・・・。
>>741
なんつー曖昧な質問を・・・
743741:04/04/06 23:27
ピクセルシェーダでDOOMのレイキャストをやりたいんです
>>741
筒じゃないけど、各頂点の法線ベクトル(面の法線)と
指定したベクトル(光の方向)の内積を計算して
その結果によって頂点を移動させるってのは
バーテックスシェーダ使ってできるよ。
でも、この方法できれいな影を表示したいなら、
影モデルのエッジにちょいと細工しないとだめだけど。
745744:04/04/07 09:27
スマンかった。質問には「ピクセルシェーダで」と書いてあるな。
でも、ピクセルシェーダじゃ無理っぽい気がするけど・・・
シャドーボリュームで影を描画すっと、影の境目を
ボカスのに激重な方法しかないのが辛い…
あと金網の影とか投影しようものなら重いし…鬱だ。
面白くないゲームほど
こういうくだらないことにこだわるよね
そうそう。
プログラマの自己満足の世界。
どうしてそういうこと言うの?
強迫観念らしい。
751デフォルトの名無しさん:04/04/09 20:50
DrawPrimitiveのLINELISTで四角形の縁取りを書きたいのですが、
頂点を5つ用意しないと無理でしょうか?(0と4は同じ座標)
縁取り内の四角形も描画するのですが、その四角形を描く4頂点をそのまま利用、はできますか?
752デフォルトの名無しさん:04/04/09 21:00
Indexを使えばいいだけの話。
753デフォルトの名無しさん:04/04/10 01:32
2Dゲームを作ろうと思ってるんですけど、テクスチャサイズの制限てどこまで考えるべき
でしょうね。640*480のゲームなんで、テクスチャは1024*1024以上となると思うんですが、
もうvoodooは切り捨てしかないですかねぇ。
分割読み込み程度は実装出来るでしょ。
3DならVooDooは切り捨てても良いと思うけど2Dだとちょっとなーって思ふ
256x256をしきつめると、運が悪いと糞グラボでつなぎ目が見えるかもな。
タイトル画・イベントCG用なら1枚1024x1024とって使いまわせば?
640x480の余った部分に英字フォントやカーソルなどのシステム系データを置くのもよくある話だ。

Voodoo対応なんてほとんどプログラマーの自己満足だよ。
市販ゲームとして3万本売り上げる目算と仮定したら、割合として1人もいないかもしれない。
bbxはヘルプすら読まないゴミで埋もれている
みんなどの程度のボードを想定してゲーム作ってるの?

riva以下(DirectX7)
voodoo,G400
最近のonbord
geforce2MX(DirectX8)
geforce4Ti
Radeon9800XT以上(DirectX9)

今作ってるのはgeforce2MXでぎりぎり動く3D物だけど、
ユーザーの割合どれくらいなのかな?
パソゲーやっててもオンボードとか多いみたいだし。
おいらは815チップセット内蔵で一応動くのを目安にしてる。
815あたりを使ってる人はまだ以外と残ってる気がする。
3Dなんで、一応動くけどキャラが多くなるとゲームにならないくらい重くなるけど。
GeForce2MXだと低めの設定ならまあ、遊べる。
んでGeForce4Tiだと高解像度・高品質表示でも普通に遊べる。

ステンシルバッファとかある程度のカードでないと持ってない機能は高画質オプションでのみ使用するとかして
可能なかぎりクソビデオカードでも(快適でなかったり画面の品質が悪くても)「一応ゲームは動く」
という状態にしといた方がイイと思う。
そーすっと「オレのビデオカードの性能が悪いんだなー」と気付いてもらえる。
動作すらしないと「起動しません。バグですバグ」とか言われる。

もちろんゲーム内容やターゲットによるけどね。
ハイエンドカードでないと動作しないけどそのぶん超キレイなグラフィックなのもアリだし。
数世代前のカードでもサクサク動くのもイイことだし。
でも最新ハイエンドカードでしか動かないのにショボイのはカンベンな。
Intelのオンボード、SiSのオンボード、GeForce2 MX、RADEON 9000
この辺だけ押さえとけば8割のPCをカバーできるはず。
>>759
815で3Dってすごいですねぇ。
DirectXのバージョンはどうしています?
>また、ゲームの側も、18カ月前のやや古いスペックのPCも想定して妥協して開発をする。
http://pc.watch.impress.co.jp/docs/2004/0401/kaigai080.htm

マイクロソフト流でいくと今はTi4200ぐらいを想定していればいいのかな
>>762
フリーゲームじゃ重すぎだろ
市販ゲームを今から作り始めるならそれくらいでいいかもな
今から1年かけて本格的に作るんならフリーでもGF4Ti4200で構わん気がするが。
一年後はハイエンドがGF6900?RADEONX800?て感じになって
ローエンドにTi4200あたりがかろうじて残るんだろうさ。
それ以下では起動しないってのはどうかと思うが。

DXのバージョンで言えばDX9で作って
Ti4200で動くようにシェーダーのバージョンを考えるってとこか。
同人ソフトの場合、どうせ買うのはお仲間
DirectXって何?って層を対象にするのはちとキツイ
オンボードなんて問題外だよ
オンボードもピンからキリまである。
最近のオンボードならGeForce 2 MXの半分くらいの描画性能はあるにょ。
769デフォルトの名無しさん:04/04/12 17:29
RenderStateとかの描画前設定って数行使って見た目がわるくなっちゃうけど
スマートに見える方法ってないかな
どうでもいい質問なんだが
○○○ぽ → ○○○っぽい
○○○にょ → ○○○???

このはてな部分に入るのは何?
のですよ
>>769
テンプレートでも,インラインでも,マクロでも,好きなの使って一行にまとめたら?
DirectDrawのBlt()で、DDBLTFX_MIRRORLEFTRIGHTフラグを立てると
フレームレートがえらい落ちるんですが、これは仕様なんですか?
>>773
GPU「おいらできねーCPUやって」
CPU「なんだよーわかったよオレがやるよ」
GPU「おまえヘタくそだなーとろすぎ」
CPU「おめーの性能の無さが原因だろヴォケ」
    |┃三
    |┃  、))
    |┃, --" - 、
    |┃〃.,、 GPUヽ
    |┃ノ ノハヽ、  i
    |┃l'┃ ┃〈リ
    |┃|l、 _ヮ/从 わたすの出番?
    |┃/∀_ヽ.
______.| (ゝ  〈、つ
    |┃/___ゝ
    |┃/-/-|
    |┃二) ニ)
 ガラッ
DirectDrawで一度セットしたサーフェイスの画像や位置情報などの全ての情報を
終了しないで開放するにはどうしたらいいんですか?
778デフォルトの名無しさん:04/04/13 21:53
最近FPSがどうも落ちてきたので原因を探しています。
そこでCreateVertexBufferとCreateIndexBufferの第四引数(D3DPOOL列挙型)を
D3DPOOL_MANAGEDからD3DPOOL_DEFAULTに変えたところFPSがあがったようなきがします。
といっても確信がもてなくいのでお聞きしたいのですが、
一般的に上のどちら(それとも他の?)を選んだほうがいいのでしょうか?
よろしくお願いします
779デフォルトの名無しさん:04/04/13 21:57
付け加えるとヘルプには
>D3DPOOL_MANAGED は、ほとんどのアプリケーションで D3DPOOL_DEFAULT よりも適している場合が多い
と書かれているので悩んでいます。
本当にここがFPSが落ちた原因かどうか…
頂点の場合
パーティクルシステムなどで毎フレーム書き込みアクセスするような物は
D3DPOOL_DEFAULTで確保して、ロック時のフラグを適切に設定すれば、
DrawPrimitiveUPと同じかより高速。

あとは計測してみなきゃ分からんのでは?
お前さんが計測ツール作ってうpすれば、物好きが試してくれることもあるだろうな。
781デフォルトの名無しさん:04/04/13 23:40
毎フレーム描画・ものによってはLockして色を変えたりしています。
これだけアクセスするものだとDEFAULTの方がよさそうですね
パーティクルで、便乗質問させてもらいたいのですが、
100個のパーティクル作る場合
100個の頂点バッファ作って、毎回LockとUnlockを繰り返して
その中で、座標やら色を変えるのと、

1個の頂点バッファを作成して、
マトリクスを100個用意、Lockはしないで、ほかのメンバ変数にもたせた座標情報を
書き換え、描画の際に座標に応じたTransマトリクスを作成。

という方法では、どちらが速いのですか?
ちなみに、下の方法でも、SetStreamSourceの呼び出しは1回でも大丈夫
ですよね?100個の色すべてを変えたいのであれば、頂点シェーダーを
使わないとだめでしょうけど
なんで自分で実験してみないの?
>>783
やっぱり、誰かもうすでに実験していれば
自分でやらなくてすむからって理由じゃないの?多分。
俺もそれで済めばそれでいいと思うよ。
785デフォルトの名無しさん:04/04/14 18:05
ウインドウモードだとFPSが55〜60と不安定&重い感じがするのですが、
フルスクリーンにしてみると60で安定しました。
これはどんな原因があるのでしょうか?
>>812
フルじゃないから
>>782
SDKのPointSpriteサンプル見ろよ
788785:04/04/14 20:29
知り合いに試してもらったところウインドウで30〜50でフルスクリーンでは60になったそうです。
フルスクリーンで60でるなら一応処理は間に合ってるということで大丈夫でしょうか?
>>785
何を聞きたいのかよくわかんない。
一般的な環境ではフルスクリーンの方がパフォーマンスがでるから
ウィンドウモードの方がフレームレートが低いのは不思議なことではない。
表示する内容によってフレームレートが変化するのはあたりまえ。
フルスクリーンモードでは通常flipはリフレッシュレートに同期させられるから
リフレッシュレート以上出るパフォーマンスを持っていればフレームレートはリフレッシュレートと同じになる。
「処理が間に合ってる」ってのはどういう意味?
もし60fps出ることが前提でプログラムを組んでるならそのような処理はやめましょう。
(フレームレートが下がるとキャラの移動速度も下がるとかそーゆーのはヤメレ)
790785:04/04/15 07:03
>>789
>ウィンドウモードの方がフレームレートが低いのは不思議なことではない。
他のアプリ等を起動してたりしてなかったのでちょっと不思議に思ったもので。
何も起動しなくても不安定になるんですね。ありがとうございます。

>もし60fps出ることが前提でプログラムを組んでるならそのような処理はやめましょう。
>(フレームレートが下がるとキャラの移動速度も下がるとかそーゆーのはヤメレ)
フレームレートがさがると移動速度もさがる状態です。
これはリフレッシュレート論争の話になっちゃうのかな。
俺は初回起動時にリフレッシュレートを調べて60以下とそれ以上にわけてやっています。
61以上の場合は時間で制御してます。(B宗1派とかいうやつです)
60近く出ない(50とか)には特に対応させてません。
大して大きなプログラムじゃないのでこれで60出ないのは問題あるだろうってことで
ほっといたのですが最近どんどん大きくなって数年前のPCだと重いです。
FPSに関係なく移動速度などが同じになるA宗もこれから色々試してみたいと思います。
パフォーマンスが落ちるのと不安定は意味が違うと思うよ

A宗B宗なつかすぃ
最近はA宗でゲームがなりたたなくなるとB宗に切り替えたりと
複合技になってきてますね

ネトゲは大手メーカーのレースゲームでもフレームレートによって
有利不利が出るという信じられない状況が続いてます
あ、例外をわざわざ持ってきてるので信じないように :P
792デフォルトの名無しさん:04/04/15 11:28
初歩的な質問ですみません
MSDNでLPDIRECT3DVERTEXBUFFER8を見たんですがそれらしいものを見つけれなかったのでお聞きします。

lpD3DDEV->CreateVertexBufferで頂点バッファを作成しますよね。
このとき渡した自分で作成した頂点データのX、Y値を変えれば表示するテクスチャの位置を変えれると思うのですが、
LPDIRECT3DVERTEXBUFFER8からどうやったらX、Yの値を変えれるかわかりません。
どのように変えれるのでしょうか?
ロックして書き換えるだけ。
描画前にもう1度、頂点データを設定するって事ですね?
ありがとうございます
早速やってみます
IDirect3DVertexBuffer8
>>785
DirectX9使ってるなら
特に指定しないと、勝手にfps60固定処理にされるのは理解してますよね?
>>796
すいません、それを解除するにはどうしたらいいですか?
最近9を触り始めたんですが、fpsがもっと出てもおかしくないはずなのに
無理矢理押さえ込まれてるような気がしてたんですが。
>>797
D3DPRESENT_INTERVAL_IMMEDIATEは使ってる?
799785:04/04/17 07:02
>>796
>特に指定しないと、勝手にfps60固定処理にされるのは理解してますよね?
そうなんですか?初耳です。
DirectX9ですが、うちのPCでは普通にリフレッシュレートと同じなんです(85fpsでる)。
60になるのはビデオカードによると思ってたのですがどうなのでしょう…

60固定のはずなのに俺のPCで85でてる理由はわかりませんが
固定してくれるならリフレッシュレート論争というのはDirectX9にはないってことですね。
でもレスを見る限り処理が60になるだけでリフレッシュレートを変えてるわけじゃなさそうなのでガタガタになっちゃうのかな…?
書き忘れましたが、>>785の質問で聞いたときはノートPCで
>>799の85fpsでたというのはデスクPCです。
801785:04/04/17 07:04
(;´Д`)な…名前が…
>>800はワタクシです。
802797:04/04/17 07:58
>>798
サンクス!できました。謎が解けました。
803デフォルトの名無しさん :04/04/17 10:59
VC++とDX9(Summer 2003update)でスプライトを表示させようとしてるんですが、
なんだかよくわからないエラーが出て困ってます。

pd3dDevice->BeginScene();
pSprite->Begin();
pSprite->Draw(省略);
pSprite->End();
pd3dDevice->EndScene();

というように、ちゃんとBeginSceneとEndSceneの間にはさんでますし、
スプライトオブジェクトとかテクスチャの作成には失敗していないようです。

エラー:
'Begin' : 関数が不正な 0 個の実引数をともなって呼び出されました。
'Draw' : 関数が不正な 7 個の実引数をともなって呼び出されました。

こういう「関数が不正な〜」みたいなエラーはどこが悪いんでしょうか、、、
どなたか教えてください。よろしくお願いします。
>>803
エラーメッセージそのまま、引数の数が間違っているという意味。
英語版のヘルプを見てみよう。
805803:04/04/17 12:07
>>804
助かりました。ありがとうございます。
Summerで変わってたみたいですね。
日本語Docと英語版で内容が違うとは。
しかしこれ、回転できなくなっちゃったんですか・・・orz
>>791
A宗B宗って何の略?ググっても出てこなかったので教えてクレクレ

ちなみに俺はキャラを動かすルーチンと表示するルーチンにわけて
前の描画に時間がかかりすぎたら動かすルーチンを多めに呼び出す、ってしてる
>>805
SetTransformで回転マトリックスを設定すると回せる。
拡大縮小も同じ。
809806:04/04/17 17:01
>>808
thx、えっと俺はB宗1派になるのかな。
リフレッシュレートなどの論争の現行スレはこちら

FPS(フレームレート) VSYNC(垂直同期 リフレッシュレート)
http://bbs.gamdev.org/test/read.cgi/gamedev/1063274576/

>>803
ttp://www.plustarnet.com/aspil/Programming/ID3DXSprite.htm
PCで描画と内部処理の非同期処理ってどうやんの?
http://pc5.2ch.net/test/read.cgi/gamedev/1020064462/
DirectInput8で、
マウスのデバイスを取得して、GetDeviceStateでマウスのデータを読んでいるのですが、
デバッガ上でブレークすると、マウスの操作がしばらく引っかかるような状態になってしまいます。

何か特別な設定が必要なのでしょうか?
ちなみにSetCooperativeLevelは、DISCL_FOREGROUND | DISCL_NONEXCLUSIVE、
Windows2000、VC++6.0を使用しています。

(以前、WinXPとVC.NETを使用した時は問題なかったような気もします)
すいません質問です。
WindowsXP,VC++6,DirectX9という環境で、フルスクリーンモードで動く
プログラムをAppWizardを使用しないで作ってみたのですが、マウスを
左上端あるいは右上端に移動してクリックすると、他のアプリケーションに
切り替わってしまいます。
こうなってしまう原因や対処方法などご存知の方がおりましたら教えてください。
ウインドウスタイルの余計なもを外し最大化しろ。
815デフォルトの名無しさん:04/04/19 18:47
DirectX9.0aと9.0bで、フルスクリーン時の扱い変わりましたか?
複数のDirectXアプリを起動させておいて、そのうちの一つをIDirect3DDevice8::Reset使ってフルスクリーン化させると、他のDirectXアプリが止まります。
9.0aに戻したくてもRuntimeはダウングレードできねえし。クサレMS。。。
正直が815がヘボイだけだと思われ
>複数のDirectXアプリを起動させておいて、そのうちの一つをIDirect3DDevice8::Reset使ってフルスクリーン化させる
一つのアプリが排他モード使ったら他のアプリは全部弾かれるんじゃないか?
>>815はどんなものをつくってんだ…
複数起動って…
SDKのサンプルをいくつも起動させて固まるかどうか試してみろよ。
お前のだけ固まるなら、お前のソフトが糞ってことだ。
>>815
>他のDirectXアプリが止まります。
どこで止まっているのか。
なぜ止まってしまったのか。
止まらなくするにはどうすればいいのか。
ほら解決した。
821デフォルトの名無しさん:04/04/19 22:10
やーどもども、815です。他人が作ったプログラムなんだよねえ。
オレが作ったプログラムならさっさと動くように変更するさ。
ところが一個はバイナリのみ。もう一個はソースはある、という状態。
とまっちまう方がバイナリしかないから、なんで止まるのかも不明なんだこりゃ。
9.0aまではそれでも動いていたからよかったんだけどねえ。
あーあ、なんでこんなクソプログラムをメンテしなきゃならねえんだ。
吊りおt
>>821
そんなのをいちいち質問しにくるなんて情けないな
ソースがなければメンテもへったくれも無いと思うが。
質問ー

dx9でテクスチャ貼って2Dゲーム作りたいんだけど、
画像1枚ですむものをわざわざ2枚以上用意するのが面倒なので
テクスチャを256色ビットマップで読み込んでパレットを作成して
1Pカラー、2Pカラー、・・・、4Pカラーってな感じのことをやりたいんだけど
こういうことって出来るのでしょうか?
できる
827デフォルトの名無しさん:04/04/20 14:26
DirectX9,VC++.NET,windowsXPでゲームを製作しております。
背景をグラデーションにしたいので頂点変換済みバッファで
// 各頂点の位置
t[0].p = D3DXVECTOR3( 0.0f, 0.0f, 10.0f );
t[1].p = D3DXVECTOR3( 640.0f, 0.0f, 10.0f );
t[2].p = D3DXVECTOR3( 640.0f, 480.0f, 10.0f );
t[3].p = D3DXVECTOR3( 0.0f, 480.0f, 10.0f );
// 各頂点の色
t[0].color = D3DCOLOR_ARGB( 255, 5, 18, 190);
t[1].color = D3DCOLOR_ARGB( 255, 5, 18, 190);
t[2].color = D3DCOLOR_ARGB( 255, 255, 255, 255);
t[3].color = D3DCOLOR_ARGB( 255, 255, 255, 255);
な感じに初期化しました。
自分のノートPC(一年ちょい前のもの)だと問題なく表示されるのですが、
自分のデスクPC(3年近く前のものだがドライバは最新にした)や、
知り合いのPC(新しいものや古いもの)だとClear()で指定した色が表示されます。
頂点バッファが使えない環境があるとどっかで見たので他にも同じような頂点を作ってやってみたのですが
前者が表示されないPCでもまったく問題なく表示されました。
この現象はどのような原因が考えられるでしょうか?
どなたかわかる方いましたらよろしくお願いします。
>頂点バッファが使えない環境があるとどっかで見たので
3Dデバイスで頂点バッファが使えなかったら、
どうやって描画すればいいんだ?
>>826
テクスチャフォーマットにD3DFMT_P8が使えるビデオカードを挙げてみろよ、知ったか君。
830827:04/04/20 14:37
>>828
そういわれましても(^^;
そういう問題がないならないで全くかまわないわけでして…
>>829
アタマカタイネ
>>831
そんなビデオカードはありません。

論破完了。
>>831はD3DFMT_P8を使わなくても何らかの方法で色違いを実現できるって言ってんだろ?
真偽はともかく>>832は「頭が硬い」の意味をググってこい
>>833
ですから、そんな名前のビデオカードはありません。
別の方法で実現できるのは当たり前。
パレットでは出来ない。
それだけの話。
てーか、色違いテクスチャ自分で生成すりゃいいのに。
ハードにパレット機能ついてなきゃヤダヤダとかごねる、パレットオヤジとかいそうですが。
禿げどー
色違い作るくらいフリーのドローソフトでできるっしょ
てか今の時代パレットで色違いなんてやっても
安っぽく見えるだけじゃないかな
おまいら色違いのリソース用意してんの?
初期化時に生成するんじゃなくて?
>>838
その辺は各々の好みでいいと思うが…
プログラムで色を加工すると
日焼け・赤ら顔・ゾンビ化を避けられんだろ
DX8.1用の自作ゲームをDX9に移植してたら、ウィンドウモードのとき
Zソートされなくなって画面グチョグチョになってしまうようになったんだけど
原因がさっぱりわからん…_| ̄|○
こんな現象出た人いない?
フルスクリーンモードに切り替えると正しく表示されるんだけど、
もう一度ウィンドウモードにすると元に戻っちゃうし…
とりあえずドライバを更新汁
最近DX触り始めたんですが、WINAPIを使わずに、例えば
大きさ可変の自作のメニューウィンドウなんかを作りたくなったとき、
・自分で頂点登録してDrawPrimitive
・大きさ変えるときは必要な部分の頂点をいじって表示(面倒な手続きが色々必要そう)、
とかかなり面倒くさいことをしなきゃならないんでしょうか。
GDIだと普通に矩形領域を塗りつぶす関数とか、
角の丸まった矩形描画とか、いろいろ便利な機能があったんですが・・・
DirectXの場合、こういったことはどうやってやるものなんでしょうか。
色違いのリソース用意したら容量倍以上にならない?
1キャラ1Mで16キャラ16Mとすると
4Pカラー分用意したら16×4=64Mだぜおい
16Mで済むものを64Mってどうよ
Zソートって普通Direct3D側がやることじゃないよな。
ビットマップの表示ならID3DXSpriteを使って一発でできるぞ。
>>844
必要なもんだけローディング。
まーさか16人対戦とかありえないわけで
いまどきHDD容量が64M食ってもどーでもいいしな。
ダウソに時間かかるってのはちと辛いかもしれんが。
>>844
256色パレットカラーでキャラテクスチャ持って
ステージ開始時に32ビットに展開する手もあるよ
展開作業はロックしてシコシコ
格闘ゲームの絵、512x256x32を2枚くらい
リアルタイムに展開しても60fpsは余裕だろ。
透明部分だけランレングス圧縮しただけでも容量は半減するし
そこで富豪的プログラミングですよ。
PSで(
853デフォルトの名無しさん:04/04/22 13:44
トランスフォーム済み頂点のz値を0より大きくすると
一部環境でなぜか表示ができないです。
何か特別な設定がいるのでしょうか?
まずZバッファはどういう設定になっているのか記せ。
855デフォルトの名無しさん:04/04/22 17:09
Zバッファの設定ですか。
どこを書けばいいのかよくわかりませんが、適当に…
m_D3DPP.EnableAutoDepthStencil= TRUE;
m_D3DPP.AutoDepthStencilFormat= D3DFMT_D16;

g_pD3DDevice->SetRenderState( D3DRS_ZENABLE, TRUE);
くらいでしょうかzバッファに関するものは。
色々試してみたのですが1.0fは大丈夫でした。
さっきまで駄目だったような気がしたんですができました。
5.0fだともう他の環境では表示されませんです。
自分のPCだと大丈夫なんだけど…
0.0f〜1.0fのみ表示されるのが普通なのでは?
トランスフォーム済みの場合は、自分でクリッピングを行わないと、
範囲外に出た場合に、描画される保証はない。
858デフォルトの名無しさん:04/04/22 17:26
1.0fが表示されたときにテクスチャアドレスのように1.0までかと思ったのですが、
ヘルプのサンプルでz = 10.0fとか使われてまして。
もし1.0fまでとしたら0.0f〜1.0fはどこの距離(?)を指すのでしょうか?
>>858
深度バッファの範囲
860デフォルトの名無しさん:04/04/22 17:28
>>857
現在やっているのは画面外へでることはないものです。
640*480なのですが必ずその中にしています。
それでも環境によって表示できなくて…
トランスフォーム済みの場合は、Zが10.0fはあり得ない。
0.0f〜1.0fはZバッファの深度。
>>860
Zバッファが範囲外なら描画される保証はない。
863デフォルトの名無しさん:04/04/22 17:37
皆様ありがとうございます。
m_D3DPP.AutoDepthStencilFormat= D3DFMT_D16;
としてますので深度というのは16bitってことですよね。
これは座標とかに直すと(?)どんな感じなのでしょうか。
この今表示できた変換済み頂点のほかに未変換済み頂点で表示してる奥行き(z=9.0f)のある物体があるのですが、
頂点変換済みのzを0.2fにしたときはほぼかぶってしまったのですが
0.5fにしたときは完全に表示できました。
>m_D3DPP.AutoDepthStencilFormat= D3DFMT_D16;
>としてますので深度というのは16bitってことですよね。
深度バッファが何ビットとかは関係ない。
16だろうが24だろうが0.0〜1.0になる。

>これは座標とかに直すと(?)どんな感じなのでしょうか。
ProjectionのFarとNearの間が0.0〜1.0になる。

>未変換済み頂点で表示してる奥行き(z=9.0f)のある物体がある
これはワールドでの座標。
トランスフォーム済みのZ値はワールドとは無関係。
あくまでカメラが向いている方向の深度を、0.0〜1.0で表しただけ。
865デフォルトの名無しさん:04/04/22 18:04
ありがとうございます!
トテモ参考になりました。
変換済みと未変換は完全に別物と考えた方がいいのですね。
お世話になりました〜
最近DirectXを勉強し始めたものなのですがちょっと気になったので質問させてください。
上で変換されてる頂点と未変換の頂点の話がでていますが、
混同して使う場合、変換されてる頂点は0.0fか1.0fしか普通は使えなくないですか?
nearが1でfarが100だとしたら変換済みのz=0.5fがワールド座標でのz=50.0fってことじゃないんですよね。
カメラの位置が原点で向いてる方向がz方向だったらz=50相当になるのかも・・・?
0.0fならゲームメニュー画面だったりで1.0fなら背景 は使えそうですけど。
0.0fか1.0f以外はどのような使い方ができますか?
>>866
> カメラの位置が原点で向いてる方向がz方向だったらz=50相当になるのかも・・・?
なりません。
>>866
>nearが1でfarが100だとしたら変換済みのz=0.5fがワールド座標でのz=50.0fってことじゃないんですよね。
>カメラの位置が原点で向いてる方向がz方向だったらz=50相当になるのかも・・・?
数学の前に算数は大丈夫なのかと・・・。
それとも単にボケただけなのかどうなのかはっきりしろ。
>>866
深度バッファは0.0〜1.0に対して均一ではない。
near寄り10%が深度バッファの90%を消費してしまう。
870866:04/04/22 22:42
>>868
正確には99の半分っていいたいのですか?

>>869
じゃあやっぱり混同しては0か1しか使え無そうですね。
>>869
>near寄り10%が深度バッファの90%を消費してしまう。
マジで!?
それでも16Bitあればそこそこ段階確保できるんじゃないか?
深度がどう決定されるかは、パースペクティブの設定次第。
そのくらい計算すればすぐに分かるだろうに。
>>870
計算すりゃいいじゃん。
どうせ「なんとなくそれっぽい」でいい処理なんだろ?
0.0fか1.0fしか使えないって何よ?

現在では、市販のほとんどすべての 3D アクセラレータが、
z バッファリングをサポートしており、Z バッファが最も一般的な深度バッファの種類になっている。
しかし、Z バッファにも欠点がある。使用する数学的処理が原因で、Z バッファに生成される
z 値は、Z バッファの範囲 (通常 0.0 から 1.0) 全体に均等に分布されない傾向がある。
特に、遠くのクリップ面と近くのクリップ面の間の比率は、z 値の不均一な分布に強い影響を与える。
近くの平面の距離に対する遠くの平面の距離の比率を 100% とした場合、深度バッファ範囲の 90% が
シーンの深度範囲の最初の 10% に費やされる。娯楽や風景のシミュレーション用の典型的なアプリケーションでは、
比率 (遠くの平面 / 近くの平面) がどこでも 1000 から 10000 の間である必要がある。比率が 1000 の場合、
深度バッファ範囲の 98% が深度範囲の最初の 2% に費やされ、比率が高くなるにつれて分布状態が悪くなる。
これによって、遠くのオブジェクトでサーフェイス ディテールが隠れてしまうことがある。これは、
特に 16 ビット深度 (最も一般的なビット深度) バッファを使用する場合に顕著である。
そこでWバッファですよ。
素(ry
とりあえず、Zのニアクリップ - ファークリップ間が
どう頂点変換後のZの0.0f〜1.0fにマッピングされるのかは確かめておいたほうがよいと思ー。
意外とみんな気にかけてない。
877デフォルトの名無しさん:04/04/22 23:22
サイコロのように全面テクスチャが張られている立方体は
DrawIndexedPrimitive一回かDrawPrimitive六回のどっちがいいですか?
テクスチャあるので結局24頂点になりインデックスバッファの利点がないような気もしますが
一回で描画できるので悩んでます。
というかインデックスがうまくいかず六回で書いちゃおうかと思ってたりするわけですが…
DrawPrimitiveで1回がいいかと
面白くないゲームに限ってry
>というかインデックスがうまくいかず六回で書いちゃおうかと思ってたりするわけですが…
DrawPrimitive使ってるんなら
製作を進める前にそれをちゃんとできるようにしといたほうがよくないか?
俺はxファイルに頼ってるけどな
>>うまくいかず
めちゃくちゃ馬鹿っぽいのでどうにかして下さい。

24頂点でもなんでも、普通に正しいコストを払うのは悪くないと思うけどな。
あとIndexedならTRIANGLELISTでも0,1,2, 2,1,3のようにすれば
HWのキャッシュもきくんじゃなかったっけ。HWTnLの頃の話なんでどうでもいいか。
>>878
可能なんですか?
>>880
ちゃんとできるというのはどういうことでしょうか。
DrawPrimitiveはよくないからDrawIndexedPrimitiveを使えるようにしろという意味ですか?
3Dソフトがサパーリなのでxファイルはあまり使わないです(^^;
立方体くらいなら作れますが、テクスチャ張るのが難しいです…
>>881
馬鹿っぽいと言われましても…
うまくいかないのがそんなに馬鹿ですかね(;´Д`)

いまいちわかりませんがDrawIndexedPrimitiveを使った方がよさそうなので
色々調べなおして動作させるようにしたいと思います。
>>881
>>あとIndexedならTRIANGLELISTでも0,1,2, 2,1,3のようにすれば

そんなのあったのか、知らなかった・・・。
>うまくいかないのがそんなに馬鹿ですかね(;´Д`)
これはどううまくいかないのか書かず、
全てをうまくいかないという一言で片づける馬鹿さ加減のこと。
「うまくいかず」はなく、これこれこのようになると言う状況を書くべき。
うまくいかないという言葉は、質問するときのNGワード。
>>877
DrawPrimitive6回って、本当の立方体だな、それは。
どんなサイコロでも面取りくらいしてあると思うぞ。
>>884
申し訳ありませんでした。
一応俺としてはインデックスバッファの数字の順序(?)が悪くちゃんと表示されない、
というのを「インデックスがうまくいかない」といったつもりなんです。
DrawPrimitiveとDrawIndexedPrimitiveのどっちがいいのかを聞くのが本題だったので
DrawIndexedPrimitiveのエラー内容は特に書かなくていいやと思っちゃいまして。
今後は気をつけます。
887デフォルトの名無しさん:04/04/23 15:27
DX9のサンプルプログラムで、WinMain関数の最後に、

UnregisterClass( "D3D Tutorial", wc.hInstance );
return 0;
}

と書いてありました。
今までは、UnregisterClassを使わずにreturn 0;だけしか書いてなかったのですが、
これは必須なのでしょうか?
MSDNに書いてあるから読め。
889880:04/04/23 18:10
>一応俺としてはインデックスバッファの数字の順序(?)が悪くちゃんと表示されない、

これからDrawPrimitiveなりDrawIndexedPrimitiveをメインにして開発していくなら、
今のうちに苦手は潰しといた方がいいんじゃないかと思ったんだが。
まぁ気軽にプログラミングしたいんなら後回しでもいいかも。
890デフォルトの名無しさん:04/04/23 19:31
>>888
読んだけど、必須かどうかわからないんですが
本当に読んだのか? 解説の項をもう10回ほど嫁。
でも DrawIndexedPrimitive の各パラメータ、紛らわしいよリファレンスの説明が
似たようなのが2つあるし
おれもハマったけど

ちなみに使用される頂点範囲の設定、
ルーズに設定した場合ときっちり設定した場合と
ラデとゲフォで挙動違うので注意な
どっちがリファレンスと同じ動きしたかは忘れた
>>892
MinIndex
[in] この呼び出しの間に使用される頂点群に対する最小の頂点インデックス。
StartIndex
[in] インデックス配列の中で頂点の読み取りを開始する位置。

この2つだっけ?俺もハマったなぁ…
>>893
0入れとけば問題なし!・・・と考えてみた!俺は!
俺もちゃんとは理解してないが、
MinIndex = この呼び出しの間に使用される頂点群のインデックスのうち、最小のもの。
が正しい気がする。

point3d vertex[5];
int    index[] = { 0,1,2, 1,2,3, 2,3,4 }; // 三角形3枚
ってときに、二枚目の三角形を描くときは
MinIndexは1(=min(1,2,3))
StartIndexは3

であってる?
違う。
あってる。
898デフォルトの名無しさん:04/04/24 14:52
開発はしていませんがアプリを起動させたところ

Directx Graphics Error 0x82000003

というエラーをはかれたのですが、対処法をご教授願いたいのですが。。。

スレ違いでしたらすみません。。
なんのアプリを
900デフォルトの名無しさん:04/04/24 14:58
アプリ名は「クレイジータクシー」です。
環境は

DirectX9.0a
Geforce4Ti
WindowsXP

です
PCゲーム板池
DirectXに関してはこちらの方のほうがプロが多いと考えて書き込みさせていただきました
失礼しました・・・
903デフォルトの名無しさん:04/04/24 15:06
しょうもない質問ですみません。
WindowsXPでVC++を使ってるんですが、
DirectDrawを使うことは可能なんですか?
904デフォルトの名無しさん:04/04/24 15:11
可能です
905デフォルトの名無しさん:04/04/24 16:09
不可能です
8の日本語ドキュメントをダウンロードしようと思ったのですが、
どうもファイルが展開されないんで、どうしたものかと思っていたら、
サポートされているOSの欄にXPが載ってませんでした。
XPだと、8の日本語ドキュメントは展開できないのですか?
ぶっちゃけありえない
たぶんDLミス、もう一回DLし直すが吉
>>907
以前7の日本語ドキュメントを展開しようとした時もできなかったんです。
何度もダウンロードし直しても結果は一緒でした。
Error creating process
指定されたパスが見つかりません。とエラーが出てしまいます。
909デフォルトの名無しさん:04/04/24 16:40
>>904-905
意地悪しないで教えてください。
>>909
それすら判断できないなら
プログラム書く前にPCについて勉強する方が先かと
回答は>>910が正しい
912903:04/04/24 18:21
WindowsXPにはDirectX8が最初から入ってるから、
その辺がどうなのかなぁと思ったんだけど。
DirectX7のSDKを入れればOKってことなのかな?

完成したものがXPの上で動くのは当然だと思うけど。
>>912
>WindowsXPにはDirectX8が最初から入ってるから、
これはランタイム。8だろうが9だろうが関係ない。

>DirectX7のSDKを入れればOKってことなのかな?
好きなバージョンのSDK入れれば使える。
914903:04/04/24 19:02
強力に参考になりました。さんくすです。
がんばってみます。
915デフォルトの名無しさん:04/04/24 20:47
>>906
>サポートされているOSの欄にXPが載ってませんでした。
マジレスすると。
8の日本語ヘルプが書かれた頃にはXPは発売してなかった。

それとXPは8.0ではなく8.1
916デフォルトの名無しさん:04/04/24 21:17
描画する物体の大きさで鮮明さが違ったりするのでしょうか?
たとえばワールド座標で1.0*1.0の物体を近くからみて描画したときと
10.0*10.0を遠くから見たときの違いです。(両方とも画面上では一緒の大きさに見える場合)
一応自分でやってみたのですが特に違いは見られなかったのですが、
もしかしたらやり方が違ったのかと思い質問させていただきました。

プログラミングを始めてからは市販ゲームなどをやりながら画面をよく見るようになったのですが、
某3Dゲームで小さい物体もものすごく鮮明に描画されているのをみて驚きました。
実際今その描画が気になるのが長方体が近づいてくるというもので、
速度が遅いのと斜め上から見下ろしているのもあり、ふにゃふにゃ動いてるように(?)見えてしまいます。
速度をあげるとそれなりに綺麗に見えます。
もし何か描画の仕方でありましたらアドバイスお願いします。
テクスチャのmipmapあるいはモデルのLODかなあ
テクスチャのmipmapって有って当たり前なの?
必要があれば作るし、無ければ作らないだけ。
なんだよ当たり前って?
>>916
(||丿`;´ ||)丿なななな
弾幕シューティングにmipmapは不要だしな。
LODも不要だし。

でもみんなやればできる子なんだよね。
不要かな?
2DSTG叩きは止めて下さい。
DirectX使用者の裾野を広げているのは確かなこと。
叩きではないと思うが
誰か >>903
DX9SDKにも DX7,DX8のヘルプが付いてくる
と教えてやる奴はおらんのか?
>>925
??
Documantation フォルダに入ってますね。
論点がずれてる
パンツがずれてる
もうすぐ黄金蟲の季節ですね
最近じゃ一年中アフォがいるからあまり変化ないよ
933デフォルトの名無しさん:04/04/26 09:40
ほらね
こういうのがすぐ、勝手に刺激されて飛びついてくる
DX7にはDX6のヘルプも入ってます
そろそろ次スレの季節ですかね。
tiny.xって異様に軽いんだけど何でよ?

自前ワンスキン3000triモデルより軽いんだけど
テクスチャサイズとか小さくしても全然勝てん
俺なら600ポリゴンで作れるな
んじゃ漏れは500
じゃ俺は499
498
こんな展開は497い
山田君、座布団496枚とって
>>938
ドミナント(スキン最適化)使ってるからじゃないの?
www.3d-files.net/win/tools/dominant
3DSMAXならいくらでも調整して最適化出来るけど。
その手のプラグイン探してみまつ。サンクスコ
948デフォルトの名無しさん:04/04/27 12:35
>>938
塗る面積がでかい方が処理が重いと思う。
ポリ数なんてあてにならねぇとおもうんだけど。どうよ?
Tinyはサンプルの中じゃポリ数多いけど一度に塗る面積はすごく少ない。
>>948
つまり縮小すれば動作が速くなると言いたいのか?
SkinnedMeshでTinyを豆粒にしてみろ。
自分がいかに大馬鹿か理解できるだろう。
フィルレートが物凄く低い&ソフト頂点なら有り得る鴨
なんかN88BASICのPAINT文思い出した
スキンメッシュのモデルは1頂点にかかるウェイトの数が多いとカナリ重くなるっすよ。
もちろん環境にもよるけどね。
モデル作成する時にウェイトマップをきっちり区切って、
頂点にかかるウェイトの数(の平均)をなるべく少なく抑えるべし。
953デフォルトの名無しさん:04/04/27 16:12
>>949
俺の環境
Radeon9600SERIES 解像度1152X796
豆粒時約240Fps(Farクリップ限界)
拡大時約170Fps(Nearクリップ限界)
確実に速くなってるじゃん。
大馬鹿はてめぇだ。ブッ殺。
954953:04/04/27 16:26
さらにサンプルのMultiAnimationでtinyを10体近く出しても
100Fpsで動作することから考えても。

速度の影響具合は、ポリ数より塗り面積と考えるのが正しいと思うがどうよ?
>さらにサンプルのMultiAnimationでtinyを10体近く出しても
10体では分かりづらいので、とりあえず50体出す。
Sを押し続けて、最大まで小さくする。
面積の影響が大きいのであれば、これで劇的にFPSが変化するはずだが?
3Dデバイスの場合、影響するのは面積よりも、テクスチャサイズ。
テクスチャの大きさは負荷に比例するため、Mipmap使用時は近いほど不利。
面積だけならポリゴンの計算に比べれば、とるに足らない負荷。
昔は物体がデカいほうが遅くなったはずだけどな。
もうフィルレートなんて問題にならないのかな
頂点計算とフィル(テクスチャ転送やポリ塗り)、
どちらでもビデオカードの限界に達したら遅くなるよ。
>>955
それ、ありえないポリ数出してフィルレートの遅さが目に付かなくなっただけ。
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) < 次スレまだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/
''´:::::::::::::// /::i::::::::::l:::::::/!:::::://:/-i/;;;;ヾ !| !::::::::/,_ ソ、!:::ノ::::::::/:::ノ::::!
"::::::::::/:::/ /::::!::::::/,!::::/:l:::::/,;;::''テ''::::Oi゙ ゙' !::::://'ー、、l::/::::/::イ:::/、!:l
::::::::/:::::/ ./::::::!:::/!∧::i:::|:/!'''、 l :::゚: /   /// ::(/l、/:::ノ:/,'/ 、 !'
::::/:::::::/ ./:::;;::ヾi::ツ:::ヾ:::゙'::|   、>::=''-  /'  ,,゚_,,/ "/ '-!'´、"  l `'、
///:::/ /::::l!::i::::::l::::::::::::::::ヾ            `゙' 7::::::ヾ:::::ヽ   !  ',
/i/i'!:::'ー-':::::l:!::l::::::ヽ::::::::_,!,,.!ヾ-- 、      '    /::::::::::i_、::::iヽ  l   ',
  '´`ー--':、_;;::ゝ‐'''">"   `ヽ、 \   --  ,. : ''゙゙゙゙ヽl、!i `i::! i  ー-'
   ,-=ニニ゙''ー.、  /       \ `''ー-、,. : '´       | ヾ! !
.  /    `ヽ、`ソ         `ヽ / !, /       !  ヽ .|
次スレ立つ前に埋めたてようと思います・・・兄さん・・・


。  。。              GPU、DirectXなどのパソコンのCGの技術も険しい
         。ρ。       山にさしかかっている、ううっ!出るっ!!
         ρ         ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
         mドピュッ
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  )
     ./  _  ゝ___)(9     (` ´) )←>>1-1000
    /  丿ヽ___,.───|彡ヽ ―◎-◎-|
    _/ )          (   Y ̄ ̄ ̄ ̄)
   (__/           \____/

963デフォルトの名無しさん:04/04/28 07:31
   __(^^) <ペイピッポォ 糞スレと化したピー
  /__ \
  | |   |  |
  (_) (__)
964デフォルトの名無しさん:04/04/28 13:16
>>963
お前、荒らしてた奴だろ?
寒すぎ、二度と顔見せんな。死ね。
DirectX10はSDK配布しないらしいね。
SDKとして配布するのはDirectX9.0dまでとか。
www.microsoft.com/japan/msdn/directx/x10release
www.3dscene.uk/akabeamo/aten
>>965
なんで?
そもそもSDK配布している理由って何だっけ?
開発会社だけに公開でも大勢には影響しないのかもしれないが。
>>965
どっちのページも出てこないぞ
バグ情報の収集
>>967
表向き Windowsデベロッパーとゲームマーケットの活性化
裏向き >>969 & インテルとクライテリオンにゲーム開発市場をとられたくなかった
971デフォルトの名無しさん:04/04/29 13:01
グラフィック処理でビデオカードに任せられる処理と任せられない処理って
どういう風に判別してるんだろう。
いまいちOSとドライバがどんなやり取りをしてるのかが想像できない。
教えてエロい人
ter
1000取れた!!!!!
974デフォルトの名無しさん:04/04/29 15:52
>>971
ヘルプに書いてあるだろう、おまえは盲目か?
>>974
盲目の人がグラフィック処理の話をするとは
禅問答のようだな。
   . :::';;;;: . .     ..,,,;;:
   . . :;;;;;:.:;;,,    ..:.;;;;.:
   :;;'''  .:';;; . .  .:.:;;;;;':. . .        .,,,,;,,...,,
      .:;;;' :   .:;;;;; .: ,,,;;;,,,   ,  .:;;;';;''' ''';;;;,,
     . :.;;;;' . .:   ;;;;;;;;'''' ';;;:.:.. ,;: . .    ''''''"
     ';;:;'     '''';   .:.';;;;,,;;.
                 '''  ,.:.:';;;;,,,,
             ,、―-、    .;.';:;.:.: ;;;;;;:.;.;...
   -、_      (_二ニ=っ,、;;;:.:;.:;...:.:...'''''''''''
     `‐-、_  (  ´∀)f、 `''、:..:.:. .:
         `-,ノ   つ; /
         (〇  〈-`'"
         (_,ゝ  ) `‐-、_
           (__)     `'‐-、,_..
                        `‐-、._
977get
>>973
?
藻前ら DirectPlay はどうですか?いけてますか?
980デフォルトの名無しさん:04/04/30 03:47
>>979
めちゃいけです
981デフォルトの名無しさん:04/04/30 04:18
      ./          _,、r-'''''""~   ミ_  ヽ
     /      _,、;;;、r-'ミ;;,,         'i  ヘ,
    /'''''''" .r==彡"~ __   '''i、,        ')  'i,        
   /    ./     丶●、           |   |  
   /彡   ./        ~''''    :::''''''-::;,,_ /l    |
  r/    /             ::::  _   ''リ '    |  
  /    ./        , -   ::;;::: '●ヽ, ./     |  
. / /  /     :::'''"  l ;;;,   ::|::'  ~~ヘ./     .| 
/ 彡l   |    ::"     ヽ...,,, |     ./      .|
巛 |  ‖     ヽnニ''--、:::: ''''''~    丿      / < めちゃ生けです
 \|ヘ  |       ヽロヘ \:::::|    ./      丿  
   ヽヘ lヽ      ヽニニゝ-'''~  /      /   
     /ヽ\       ;:::::/  /      ./  
 _,,/   \     ::::/--フ"      /
うし、頑張って勉強しよう
牛、頑張って食べよう
>>983
ひどいよ、カエルくん
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・#) < で、次スレまだ〜?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        |  愛媛みかん  |/
986 ◆Manna2uCLg :04/04/30 17:15
よーし、パパ次スレ立ててきちゃうぞ〜
うおっ! ほんとに立ててやがる。ありえねえ。
988 ◆Manna2uCLg :04/04/30 17:33
鬱だ氏のう DirectX (Part 13)
http://pc5.2ch.net/test/read.cgi/tech/1083313796/

ほれ。
以下、セントリノで

>>987
なぜありえんのじゃ?
釣られるな
990
埋め
1000
埋め
http://www107.sakura.ne.jp/~siawase/sonotagallery/chounai.jpg
エロ画像をひっそりと貼る俺w
995デフォルトの名無しさん:04/04/30 23:13
1000トリーノ いんてるは逝ってる!
1000
997デフォルトの名無しさん:04/04/30 23:15
みんな専用ブラウザ使って荒らしを透明アボーンしようぜ。
なんか最近ペイピッポォとかいうのがきてる。
1000
1000
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。