【C++】 DirectX初心者質問スレ Part22 【C】
at TECH
1:デフォルトの名無しさん
09/02/27 21:03:32
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part21 【C】
スレリンク(tech板)
2:デフォルトの名無しさん
09/02/28 01:42:24
URLリンク(www1.axfc.net)
ポリゴンを表示したのですが、
実際に画像を読み込んだサイズで表示できません。
(画像が256x256なら表示も256x256)
どこの設定が悪いのでしょうか?
それと上下左右のキーで1ピクセル単位で動かそうと
しているのですが、こちらも上手くいきません。
どういう風にすれば良いのでしょうか?
3:デフォルトの名無しさん
09/02/28 02:31:15
頂点フォーマットはD3DFVF_XYZRHWってことでいいのかい?
4:デフォルトの名無しさん
09/02/28 07:51:47
URLリンク(www1.axfc.net)
>>3
頂点フォーマットはD3DFVF_XYZではダメなのでしょうか?
z の指定がおかしい事に気づき、1ピクセル単位で動かすのは可能になりました。
ただ未だに実際のサイズでの表示が上手くいきません。
現状では256x256の場合は231x231で表示されてしまっています。
5:デフォルトの名無しさん
09/02/28 11:44:28
directx9.0bがインストールされているPCって何年前くらいのですか?
学校のパソコンが全部9.0bなのでD3DX関数を使ったアプリを起動すると
d3dx_xx.dllがありませんと出ます
6:デフォルトの名無しさん
09/02/28 11:50:05
>>4
ポリゴンの位置座標をワールド空間で扱うなら、サイズもワールド空間に変換しないとだめね。
(スクリーン上での幅が、ワールドではいくつになるか計算。)
元々のポリゴンの幅が2.0(-1.0〜1.0)だから、(ワールド幅 / 2.0)倍ね。
D3DXMATRIXA16 matMod;
D3DXVECTOR3 p1, p2;
CalcScreenToWorld(&p1, 0, 0, 0, 640, 480, &matView, &matProj);
CalcScreenToWorld(&p2, 256, 256, 0, 640, 480, &matView, &matProj);
float worldWidth = p2.x - p1.x;
float worldHeight = -(p2.y - p1.y);
D3DXMatrixScaling(&matMod, worldWidth / 2.0f, worldHeight / 2.0f, 1.0f);
matScale = matMod * matScale;
単に等倍表示しただけなら、正射影にすれば、CalcScreenToWorld とかいらなくなるわよ。
D3DXMatrixOrthoOffCenterLH( &matProj, 0, vp.Width, vp.Height, 0, 5.0f, 100.0f );
D3DFVF_XYZRHW でもできるけど、SetTransform とか使えないモードだから注意ね。
7:デフォルトの名無しさん
09/02/28 11:54:19
d3dx9_37.dll
に入っている代表的な関数は何がありますか?
8:デフォルトの名無しさん
09/02/28 12:23:38
関係ない
D3DX関数を使っていると
November2007でコンパイルしている場合d3dx9_37.dllが必要
August2007でコンパイルしている場合
それより後にでているd3dx9_37.dllがあったとしてもダメでd3dx9_35.dllが必要
9:デフォルトの名無しさん
09/02/28 12:43:31
D3DXがスタティックライブラリだった最後のバージョンってOctober2004くらいだっけ?
どうしても気になるならそっち使えばいいんじゃね
10:デフォルトの名無しさん
09/02/28 13:16:10
>>6
拡大率の方にも必要だったのですね、この方法で出来ました。
ありがとうございます。
拡大回転もやりたいので正射影ではダメなんです。
それでもう一点気づいたのですが、
CalcScreenToWorld使ってるとX軸やY軸の回転で、
見えない所が出てしまうんですね…。
スクリーン座標や拡大率を保ったまま回転させて、
画像の全範囲を表示する方法はあるのでしょうか?
11:デフォルトの名無しさん
09/02/28 13:16:59
>>9
December2004もスタティックでいけました。
12:デフォルトの名無しさん
09/02/28 13:55:21
>>10
ポリゴンが欠けるのは、回転した部分がニア平面より手前に来るからね。
CalcScreenToWorld の引数 fZ を それぞれ 0.5f にすればとりあえず直るわよ。
13:デフォルトの名無しさん
09/02/28 14:25:00
>>12
なるほど、0か1かでしか考えてなかったのがダメだったのですね。
本当に何から何まで本当にありがとうございます。
おかげさまで思い通りの挙動をさせる事が出来ました。
14:デフォルトの名無しさん
09/02/28 16:17:58
Y軸回転のみするモデルに穴があり、そこだけヒットを無くし
穴から落ちるような処理を作りたいのですが
当然、穴も回転するのですが
回転後の穴の座標を取得するにはどうすれば良いのでしょうか?
15:デフォルトの名無しさん
09/02/28 16:20:15
すみません、Hitの方法は
16:デフォルトの名無しさん
09/02/28 16:22:56
また間違えて書きこんでしまった……。すいません。
Hitの方法は、Y軸回転のみするモデルはAABBであたり判定を行い
穴の部分は球でのあたり判定を行うつもりです。
2重の当たり判定を行い、穴から落ちるような処理を作ろうとしています。
17:デフォルトの名無しさん
09/02/28 17:37:10
球の中心座標をモデルのローカル座標に直して
モデルと同じ回転行列を掛けるだけじゃ?
18:13
09/02/28 22:20:37
度々すみません。
回転や拡大の中心座標を変えたいのですが、
ポリゴンの場合どの部分がそれに当たるのでしょうか?
19:デフォルトの名無しさん
09/02/28 22:29:32
>>16は解決したわけ?
20:13
09/02/28 22:40:39
>>19
一応念の為、>>16は私ではないです。
21:デフォルトの名無しさん
09/02/28 23:30:05
0が中心位置
22:デフォルトの名無しさん
09/03/01 09:52:34
>>19
返事が遅れました。申し訳ありません。
>モデルのローカル座標に直して
という意味がわかりません……。
しかし回転、移動の変換行列をかけてみたら解決できました。
ありがとうございます!
もうひとつ質問なのですが、
この場合って、モデルのローカル座標の実際の数値を調べて、
中心位置を出さなければなりませんが、
他にスマートな方法はあるのでしょうか?
あたり判定用のモデルを読み込むとかですかね?
23:デフォルトの名無しさん
09/03/01 10:10:35
データの中身をみないで結果が割り出せるとは、どんな魔法のことだ?
24:デフォルトの名無しさん
09/03/01 11:53:16
モデルを作った人間ならどこが中心かなんか分かるだろう
もしくは、この位置に穴を開けてくれとプログラマーがデザイナーに頼むもの
25:デフォルトの名無しさん
09/03/01 14:53:06
二つあるマトリクスから、その二つの回転角度を得るのってどういう計算すれば取る事出来ますか?
スケールはないものと考えます。
宜しくお願い致します。
26:デフォルトの名無しさん
09/03/01 14:57:16
二つのベクトルが成す角度の求め方なら昔高校でやったような気がするけど思い出せない……
27:デフォルトの名無しさん
09/03/01 15:56:10
>>25
// 行列が2つあるとしたら
D3DXMATRIX m, n;
D3DXMatrixRotationY(&m, D3DXToRadian(20));
D3DXMatrixRotationY(&n, D3DXToRadian(50));
// m から n への回転行列 ( inv(m)*n ) を作って、
D3DXMATRIX im, imn;
D3DXMatrixInverse(&im, NULL, &m);
imn = im * n;
// それをクォータニオンに変換して
D3DXQUATERNION q;
D3DXQuaternionRotationMatrix(&q, &imn);
// 回転角を求めれば終わり。
D3DXVECTOR3 axis;
float angle;
D3DXQuaternionToAxisAngle(&q, &axis, &angle);
angle = D3DXToDegree(angle); // ほぼ30ね。
28:27
09/03/01 17:27:43
というか、m,nをそれぞれクォータニオンにした方が速いわね。
D3DXMATRIX m, n;
D3DXMatrixRotationY(&m, D3DXToRadian(20));
D3DXMatrixRotationY(&n, D3DXToRadian(50));
D3DXQUATERNION qm, qim, qn;
D3DXQuaternionRotationMatrix(&qm, &m);
D3DXQuaternionRotationMatrix(&qn, &n);
D3DXQuaternionInverse(&qim, &qm);
D3DXQuaternionMultiply(&q, &qim, &qn);
D3DXVECTOR3 axis;
float angle;
D3DXQuaternionToAxisAngle(&q, &axis, &angle);
angle = D3DXToDegree(angle);
29:25
09/03/01 21:24:13
>>27
有難う御座います。
30:デフォルトの名無しさん
09/03/01 22:56:49
DirectMusicでBGMを流すと同時に効果音を鳴らすってできますか?
今やっているのですがどうも片方しかできなくて。。。
31:デフォルトの名無しさん
09/03/01 23:03:18
HRESULT CDXMusic::PlayMusic(DWORD index)
{
// 演奏中であれば戻る
if(m_performance->IsPlaying(m_segment[index], NULL) == S_OK) {
return E_FAIL;
}
m_performance->PlaySegmentEx(m_segment[index], NULL, NULL, 0, 0, NULL, NULL, NULL);
return S_OK;
}
楽曲を3つ読み込ませて再生させているのですが
1を再生中に2を再生すると1が消えてしまいます
原因エスパーしてもらえませんか;;
32:デフォルトの名無しさん
09/03/01 23:16:13
何故まずヘルプを読まない?
使い方を確認しない?
33:デフォルトの名無しさん
09/03/01 23:42:15
すみませんヘルプ読みました
要するにDirectMusicは
プライマリ セグメントは、一度に 1 つだけ演奏できる。再生のためにプライマリ セグメントを挿入するときは、演奏中のセグメントが終わった後でそのセグメントを演奏するように指定したり、現在のプライマリ セグメントを置き換えたりすることができる。
一方、セカンダリ セグメントは現在のプライマリ セグメント上で演奏され、任意の数のセカンダリ セグメントを同時に演奏できる。
DirectSoundはDirectMusicみたいにしなくても普通に同時に再生できるってことでしょうか?
(入力フォーカスが移動する際に、アプリケーションはバッファの再生と停止を繰り返す必要はない。)
34:デフォルトの名無しさん
09/03/02 06:50:45
>>33
DirectSoundは波形を直截保持しているからDierectMusicのように面倒なことをしなくても
同時に再生できるよ。
35:デフォルトの名無しさん
09/03/02 11:17:18
HLSLでシェーダを書いているのですが、このポリゴンを「加算合成」するのか「半透明描画するのか」はシェーダ側では決められないのでしょうか?
ついで
>>9>>11
スタティックな頃には、Xファイル周りで致命的なバグがあるのでやめたほうがいいです
でかいXファイルを読むとメモリー破壊されます(DirectX付属のサンプルソースですら)
36:デフォルトの名無しさん
09/03/02 12:04:45
>>35
頂点単位で?それともテクニック単位で?
37:デフォルトの名無しさん
09/03/02 13:26:09
>>36
お返事ありがとうございます。
どちらでも構いません。
できれば双方教えていただいてよいでしょうか?
38:デフォルトの名無しさん
09/03/03 08:50:33
s
39:デフォルトの名無しさん
09/03/03 09:03:47
DirectMusicでoggファイルを複数同時再生する所まで成功しました
テストでDirectMusicクラス(oggをwaveに変換してDirectMusicで再生)を
統括しているクラスをコンストラクタ・デストラクタを繰り返していたのですが、
20回に1度くらいの割合でデストラクタ時に落ちてしまいます
デバックしたのですが
URLリンク(appleloader.bbsnow.net)
のような結果が出て調べたのですがお手上げです・・・
ソース上げたのでよろしければ見ていただけませんか
URLリンク(www7.uploader.jp)
GameLib.h
_Lib_DXMusic.cpp
GameTitle.cpp
に書いてあると思います
よろしくお願いします
40:35
09/03/03 11:57:44
昨日から>>35の件について探し回っているのですが、それっぽいものが一向に見つかりません。
どなたかわかる方いらっしゃいましたら、アドバイスお願いいたします
41:デフォルトの名無しさん
09/03/03 12:52:25
テクニック内でレンダリングステートを変更して
半透明用テクニック、加算合成用テクニックを作るとかじゃだめなの?
42:デフォルトの名無しさん
09/03/03 13:20:39
>>41
お返事ありがとうございます。
HLSLのテクニック定義の部分でレンダリングステートが変更できるのですか?
その方法が、まさに知りたかったものだと思われます。
technique Test
{
pass P0
{
VertexShader = (vsTexture);
PixelShader = (psTexture);
}
pass P1
{
VertexShader = (vsNoTexture);
PixelShader = (psNoTexture);
}
}
現状こんな書き方なのですが、レンダリングステートを書き換える記述法(が書いてあるMSDNのページとかでもいいです)を教えていただけないでしょうか。
よろしくお願いします
43:デフォルトの名無しさん
09/03/03 13:23:26
失礼しました。>>42です。
テクニック内でやればいいんじゃないか?というのをヒントにしてMSDNを
探し回ったところ、即座に
URLリンク(msdn.microsoft.com)
こういうページを発見することができました。
ありがとうございました。
44:デフォルトの名無しさん
09/03/03 14:06:19
URLリンク(msdn.microsoft.com)
自分もその辺やろうとしてたんで探してみたけど、これとか?
45:デフォルトの名無しさん
09/03/03 15:41:42
>>44
素晴らしい、それでそれです。
一覧表がないなーと思いながら、C#版とかで「どうやらC#版の設定プロパティと名前が一緒らしいな」とか推測しながらいじってましたw
これで、描画周りが完全にプログラムから切り離せました。
嬉しい。
46:デフォルトの名無しさん
09/03/03 16:24:45
(MDXとXNAは過疎化が酷いのでこちらで質問させてください。)
MDXを勉強中のプログラマ(C++/C#)です。今は土日の趣味でやってます。
MDXは情報が少ないため、UnmanagedかXNAに移行を考えていまが以下の点で悩んでいます。
Unmanage C++がめんどい
XNA フレームワーク導入めんどい
出来ればMDX2.0リリースか、XNAがOS標準搭載にならないかと・・・
Xbox用途以外ではUnmanagedに進むのが妥当なのでしょうか?
同じような経験された方、最終的にどうされましたか?
47:デフォルトの名無しさん
09/03/03 16:28:09
いや、Unmanagedの話ばっかりしてるここで聞かれてもw
別によっぽどカリカリにチューンしたゲームを作りたいってことでもなきゃ、XNAでいいんじゃない?
ただ、それを不特定多数に売ったり、配ったりするつもりなら、XNAの実行環境のインスコを促すのは敷居がかなり高いとだけ。
48:46
09/03/03 16:37:06
>>47
早々のレスどうもです。
やっぱりXNAは敷居高いですよね。OSというかDirectXに標準搭載されれば敷居が低いのですが・・・
どうもありがとうございます。自分もUnmanaged方針に変えます。
49:デフォルトの名無しさん
09/03/03 20:56:10
両方やればいいんだよ
楽しいぞ
50:46
09/03/03 21:39:14
>>49
いや〜個人的にはそうなんですよね。C++/CLIでUnmanaged。
ただ、将来的に業務用ツール用にDirectX検討しているんですが、
フレームワーク導入は敷居が・・・(.net or vistaですら厳しい!DirectXって何って感じです。)
元Javaな人にはC#しか・・・
なんでもないです。愚痴ってすいません。
51:デフォルトの名無しさん
09/03/03 23:19:32
俺もツール作っててインタフェースはDirectXだけど、C#+MDXでやってる。
MDX自体は情報少ないけど、DirectX/C++からの脳内翻訳が効くし、
メモリリーク云々を考えるとマネージは外せないという結論に至った。
どうしても情報が無くて困った時はグーグルのコードサーチを使うといいよ。
web検索で2件とかしかでてこないような情報でもそれを使用したソースが
ズバリでてくる。ただライセンスには注意な。
52:46
09/03/03 23:30:31
>>51
レスサンクスです。
私も苦労の末(?)Unmaged脳内変換が出来るようになりました。
たいていは同じような書き方なのでなんとか。ほんと無駄な技術。
メモリリーク面倒ですよね。やっぱりC#楽ですよね・・・
ありがとうございます。けど10&11を見据えてUnmanagedがんがります。
53:デフォルトの名無しさん
09/03/04 00:52:59
そういえば.NETのコードは逆コンパイルできるから気を付けないといけない
ネットで見つけてきたコードは高確率で訴訟用に公開してる。このへんは誰でも気づくんだけど
注意しなきゃいけないのは元コードを自演転用で無料公開してる場合があるということ
54:デフォルトの名無しさん
09/03/04 07:56:15
>>52
メモリリークなんて起きるときは大抵どっかがおかしい
おかしいのに無理に進むと余計におかしくなる
別にメモリリークを解決してくれてるわけじゃなくて
単に落ちないだけだろ
55:デフォルトの名無しさん
09/03/04 08:11:47
c#はusingで破棄してくれから便利。
56:デフォルトの名無しさん
09/03/04 09:17:40
>>52
ちょっとDirectXと離れるかもしれんが
shared_ptr
CComPtr
を使った上でメモリーリークするのか?
この2つを使えば、メモリーリークなんて(循環参照くらいしか)ないだろう。
もし何かミスって出したとしても、DirectXまわりはデバッガがリーク量を丁寧に出してくれるし
通常のメモリーについても
URLリンク(marupeke296.com)
これで超簡単表示
C++はメモリー管理が〜とかいう人のほとんどは、shared_ptrとかそういうほぼ標準ともいわれているライブラリ群を知らないだけに思える
57:デフォルトの名無しさん
09/03/04 09:28:19
>>56
ほぼ標準と標準の間には大きな隔たりがあるんだぜ。
まずboostのインストールをしなきゃならん。
58:デフォルトの名無しさん
09/03/04 09:40:03
boostのインスコって、いまや公式いってEXEファイルDLしてきて、ダブルクリックすれば設定含めて全部終わるんだぜ
それが嫌だとしても、shared_ptrもCComPtrもテンプレートだから、単体ヘッダファイルを持ってきてincludeすればおしまい
もちろん標準とほぼ標準には雲泥の差があるが、リークが嫌なら5分くらいの手間はかけようよw
59:デフォルトの名無しさん
09/03/04 10:06:08
リークする貧相なプログラム技術を放置したままのほうがよっぽど危ない。
shared_ptrも万能ではないしまずはリークの検出修正が出来るように腕の磨くべき。
主観的にはboostみたいな非標準のものは出来る人間が楽をするために使うべきだと思う。
60:デフォルトの名無しさん
09/03/04 11:28:15
>> 39
oggをwaveに変換してセカンダリバッファにデータに渡したあと
一時的なデータを保持していた変数をSAFE_DELETE()してないからメモリがスタックしてるんじゃないか?
61:デフォルトの名無しさん
09/03/04 11:48:56
>>59みたいな人間が、C++使いとして恥ずかしいです…。
そんな「C++を使いたいなら、まずは基礎力をもっとつけろやwwww」みたいな排他的な姿勢はアホくさい。
C++自体、メモリーリークするわ、GCないわ、スレッドが言語標準じゃないわと「今どきの言語」に比べたら貧弱。
継承されるクラスのデストラクタにはvirtualをつけるのがお約束!なんていうくだらない「お約束」も大量にある。
それを「使う人間の基礎力が〜」とかに転嫁してどーする
62:デフォルトの名無しさん
09/03/04 11:52:15
ここ質スレなのにすぐスレ違いの自己主張を始めるやつが現れるよな
63:デフォルトの名無しさん
09/03/04 11:58:48
初心者スレで、初心者に「お前のプログラム技術が貧弱だからだ」とか言っちゃうんだもんな
それともDirectXのみ初心者で、プログラム技術自体は高い人間しか質問しちゃいけないのかっていう
64:デフォルトの名無しさん
09/03/04 12:10:35
だったらお前のスタンスで好きに回答しろ。
ただし別のスタンスで回答する奴もいる。
いちいち噛み付いて迷惑するのは質問者なんだよ。
65:デフォルトの名無しさん
09/03/04 12:11:36
言語なんか個人の自由
技量が無いなら使い手側に何のメリット無い、より高水準な言語を使っていればいい
66:デフォルトの名無しさん
09/03/04 12:27:34
Direct3Dにスプライトなど無い
67:デフォルトの名無しさん
09/03/04 12:39:17
つまらん!
お前の話はつまらん!!
68:デフォルトの名無しさん
09/03/04 12:54:51
カーソルの移動量を調べたいんだけど
APIの機能でカーソルの位置を調べて前のフレームとの差を取る方法だとカーソルが画面の端に来た時に移動しなくなって困るので
DirectInputを使おうと思ってるんですが、これAPIでは解決できませんか?
69:デフォルトの名無しさん
09/03/04 14:13:01
カーソルの絶対座標はどうでもいいのか?
1フレームごとにSetCursorPosで画面の真ん中に移動させれば大体の用は果たすと思うが。
70:デフォルトの名無しさん
09/03/04 14:27:34
>>69
ありがとうございます
その方法でやってみます
71:デフォルトの名無しさん
09/03/04 14:37:06
URLリンク(toruweb.web.fc2.com)
このサイトにあるDirectMusicによるogg再生のプログラムで
oggからwaveに変換した後セカンダリバッファに書き込むのですが
MidiとWaveの再生 / 終了処理と同じ処理をし、確保したメモリを解放します。
/* #define SAFE_RELEASE(p) if(p){p->Release();p=NULL;} */
SAFE_DELETE( lpWaveData );
とあるのですが
waveに変換してセカンダリバッファに書き込んだ後SAFE_DELETE()ではいけないのですか?
実際になってみたら落ちました
72:デフォルトの名無しさん
09/03/04 14:38:14
訂正:実際に書き込んだ後すぐにSAFE_DELETE()したら落ちました
73:デフォルトの名無しさん
09/03/04 15:41:08
ぶっちゃけストリーミング再生実装しないと
容量多いファイル再生すると落ちるよ・・・
そんなんも知らないの?
74:デフォルトの名無しさん
09/03/04 16:10:40
ソース
75:デフォルトの名無しさん
09/03/04 16:20:42
GPUを使ってサウンドエンジンを作るってどうやるの?
76:デフォルトの名無しさん
09/03/04 20:42:11
fxc.exeを使ってfxファイルをデバッグしてるんですが、コマンドプロンプトが使いにくいです。
このスレの方々はどうやってますか?
77:デフォルトの名無しさん
09/03/04 21:03:05
URLリンク(msdn.microsoft.com)
このEffectEditに相当するツールが、最新のSDKには入っていない気がするのですが
別名になって存在するのでしょうか?
それとも古いSDKからもってこないとダメでしょうか?
78:46
09/03/04 23:09:18
46です。
皆さん色々アドバイスありがとうございます。
Boostとか非標準は会社での導入は難しいですね・・・規約を含めた運用変えるのに年単位でかかります。
個人ならOKでも、チームや部門では色々大変なのです。
9x,NT->2000,XP->2003sとかですでにてんやわんやなんで。
(ある程度の規模の会社はどこも同じとおもいますがw)
もしかして純粋なソフトウェアハウスさんなら違うのかな?
CComPtrは知らなかったので調べてみます。
激しくスレチになるでこれで失礼します!
今日は雪がまた降って大変でした。
79:デフォルトの名無しさん
09/03/04 23:35:08
DirectXを使ったゲームを作るのに初心者(BCBで簡単なアプリが作れる程度)にとって最適な開発環境って何ですか?
VCとかVBとかBCBとか。
80:デフォルトの名無しさん
09/03/04 23:38:10
VC+イルリヒト
81:デフォルトの名無しさん
09/03/04 23:55:52
VC++ですか?>>80
値段的にもランクがあると思うんだけど、なんでも大丈夫かな?
高いのは購入できないので。
82:デフォルトの名無しさん
09/03/05 00:01:02
>>21
その 0 が頂点なのだと理解するのに時間がかかりました。
教えて下さりありがとうございます。
URLリンク(www1.axfc.net)
それでまた質問なのですが、
分割した画像をポリゴンで並べたら境目が出来てしまいました。
これを綺麗に表示するにはどうしたら良いのでしょうか?
83:デフォルトの名無しさん
09/03/05 00:23:30
>>81
Express editionでぐぐれ。 無料版がある。
つーかBCBは今となっては古いマイナー標準準拠度悪の三重苦なので、
DirectX抜きにしてもさっさとVCに乗り換えた方がいい。
ちなみに言語にこだわらないならたぶんC#とかの.NET系言語から呼び出す方が楽だと思う。
84:デフォルトの名無しさん
09/03/05 00:29:49
>>83
.NETって作ったアプリをインストールする環境にもフレームワークのインストールが必要ですよね?
ランタイムは極力不要な状態にしたいんだけどC#も似たような感じかな?
BCBはダメなのか。扱いやすいから気に入ってたんだけど残念。
85:デフォルトの名無しさん
09/03/05 00:34:21
>>82
テクスチャフィルタが掛けてあるから縁にアンチエイリアスがかかってる
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
としてフィルターを切るか
これだと拡大時に画像が荒くなるののでそれが嫌なら元画像にもよるけど
テクスチャアドレッシングモードを
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP );
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP );
とすれば消えるかもしれない
プロジェクトが入ってないからコンパイルしてないので結果は自分で見てね
86:デフォルトの名無しさん
09/03/05 00:47:34
>>85
こんな方法があったとは…、まさにビンゴです。
テクスチャの端を使わなかったり色々やってみたのですが、
上手くいかなかったので本当に助かりました。
87:デフォルトの名無しさん
09/03/05 03:31:51
プロジェクトを入れないならソースの頭に
#pragma comment( lib, "dxerr.lib" )
#pragma comment( lib, "dxguid.lib" )
#pragma comment( lib, "d3d9.lib" )
#if defined(DEBUG) || defined(_DEBUG)
#pragma comment( lib, "d3dx9d.lib" )
#else
#pragma comment( lib, "d3dx9.lib" )
#endif
#pragma comment( lib, "winmm.lib" )
と入れとくと見てくれる率があがるかもしれない
88:デフォルトの名無しさん
09/03/06 00:14:30
DirectX9.0SDKの最新を使ってPixelShader1.1などを使おうとすると、
ps_1_x is no longer supported
というエラーが出てしまいます。
DirectX9.0ではすでにps1.xがサポート外になっているのは知っているのですが、
作っているゲームは古いグラボでも動けるようにしたいものです。
この場合、
PixelShader = compile ps_2_0
と書いたHLSLファイルと
PixelShader = compile ps_1_1
と書いたHLSLファイルを両方用意しておかなければならないのでしょうか?
89:デフォルトの名無しさん
09/03/06 00:46:44
古いので動かしたいならシェーダーを使わないのが正解だろう。
90:デフォルトの名無しさん
09/03/06 01:10:12
ID3D10EffectPass::GetDesc(pDesc)
でE_FAILが返り、pDescに何も代入されずに返ってきます。
この場合どういう原因が考えられるでしょうか?
91:デフォルトの名無しさん
09/03/06 01:17:48
>>88
D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
92:90
09/03/06 01:49:17
D3DX10CreateEffectFromFile()でFXファイルを読み込んで、ID3D10Effectを作りました。ここではS_OKが
返ってます。その後D3D10_EFFECT_DESCを取得して中身をみてみると全てのメンバーが0でした。FXファイルを
fxc.exeでコンパイルしてみると、mainエントリーがないといわれます。なので文法的には問題ないと
おもっているのですが、、
こういう場合どうすればよいでしょうか?
93:デフォルトの名無しさん
09/03/06 01:52:12
なんか.xのアニメーションってやけにむずかしくね?
94:90
09/03/06 02:36:10
一応解決したようです。
FXファイルのエンコーディングに原因があったようなのですが、よくわかりませんでした。
同じ内容のFXファイルを用意して、日本語のコメントを全部消してセーブして読み込ませたところ
問題なく動作しました。それまでは日本語のコメントが山ほど入っており、それをセーブする際には
ユニコードでセーブするか?と聞かれてYESを選択してました。
これからはFXファイルに日本語コメントを使わないようにしようと思いますが、いったんFXファイルを
ユニコードでセーブした後変更する方法が分からないのと、いまいちなにが問題なのか良く分からないので、
どなたか理由がわかる方いらっしゃったら教えてください。
ありがとうございました。
95:デフォルトの名無しさん
09/03/06 10:01:27
日本語コメントなんて普通に使ってるが・・・
96:デフォルトの名無しさん
09/03/06 11:57:28
全角空白じゃね?
97:デフォルトの名無しさん
09/03/06 14:16:20
>>91
98:デフォルトの名無しさん
09/03/06 14:18:41
97の誤爆失礼しました。
>>91
ありがとうございました。
情報があまりになく、英語MSDNまで調べにいくことになりました。日本語MSDNにすらのってないですね。
これを考えると、常に「なるべく最新のPS、VSとしてコンパイルしたい」という気がしますね。
同じコードでも、ps11としてコンパイルするのと、ps20としてコンパイルするのでは吐かれたコードの効率が違いましたし。
そういうオプションもないかな?と思い探してみましたが、無いようです。
みなさんはVS20, PS20の決め打ちでHLSLを書いているのでしょうか?
99:デフォルトの名無しさん
09/03/07 02:22:42
DirectX10のコードを書いているのですが、ウィンドウのクライアント領域を全く
なくしてしまうと
Device->ClearDepthStencilView()
というコードが例外を出します。ID3D10DepthStencilViewをReleaseしようとしても
だめなようです。ID3D10DepthStencilViewをReleaseする前にチェックしないとだめなことって
どんなことがあるでしょうか?
100:デフォルトの名無しさん
09/03/07 02:28:10
ものすごく簡単な事だったらすいません。
家のパソコンはネットにつながっていないのですが、
買ってきたゲームがDirectX9以上が必要と書いてありました。
漫画喫茶で落としてインストールしようと思ったんですができません。
何か方法ありますか?
101:デフォルトの名無しさん
09/03/07 02:46:13
>>100
スレ違い
通常のインストーラはWebインストーラなので
DirectX End-User Runtimes (November 2008)を漫画喫茶で落として来い
もう二度と来るなよ
102:デフォルトの名無しさん
09/03/07 02:46:36
方法あります
本体をおとしてください
103:デフォルトの名無しさん
09/03/07 05:41:09
Xファイルのアニメーションについて詳しく書かれてるサイトある?
104:デフォルトの名無しさん
09/03/07 09:53:28
MSDNのサイトに書かれています
105:デフォルトの名無しさん
09/03/07 10:07:31
理論だけならまるぺけが詳しい
ただしソースは無い(あるけど記事に沿ったものはない)
そこを読みながら
結局SDKのサンプルのSkinnedMeshを1ステップずつデバックしながら
どこで何をやってるのか地道に理解するのが一番の早道
106:デフォルトの名無しさん
09/03/07 11:15:44
お手軽に動くソースを欲しがるから難しく感じるんだよ
どの順番でどの変数に何が読み込まれているのかをじっくり追っていけば
そんなに難しいもんじゃない
107:デフォルトの名無しさん
09/03/07 12:11:27
HLSLについてなんですが、固定シェーダ機能のアルファ設定を
AlphaBlendEnable = TRUE;
SrcBlend = SRCALPHA;
DestBlend = INVSRCALPHA;
このようにした場合、色成分はアルファ値に応じた混合がなされるのは分かるのですが、
混合結果後のアルファチャンネルの値はどのようになるのでしょうか?
現在のレンダリング結果に対し、過去のレンダリング結果の蓄積をアルファ合成し続ける
フィードバックエフェクト(残像っぽくなるやつで過去のアルファ値は0.5f〜0.9f)をしていると、
もともとがアルファ値1.0fのピクセル同士の混合後のアルファ値が1.0fではなく、少し低くなって
0.8fかそこらへんに下がってしまい、若干暗い絵になってしまいます。
108:デフォルトの名無しさん
09/03/07 12:39:48
α値がどうなるかはSetTextureStageState()で設定したとおりになる。
109:107
09/03/07 13:11:59
>>108
アプリ側で設定してやるんですね。
ありがとうございました。
110:デフォルトの名無しさん
09/03/08 15:36:04
とあるゲーム作成の参考書どおりに設定を行ったところ
1>LINK : fatal error LNK1104: ファイル 'd3dx9.lib' を開くことができません。
といったエラーが表示されます
サブシステムのパスは通しています
・インクルードファイル
C:\Program Files\Microsoft DirectX SDK (April 2007)\Include
C:\Program Files\Microsoft Platform SDK\Include
・ライブラリファイル
C:\Program Files\Microsoft DirectX SDK (April 2007)\Lib
C:\Program Files\Microsoft Platform SDK\Lib
ちなみにApril 2007となっているのは雑誌と同様にしているからです
111:デフォルトの名無しさん
09/03/08 15:40:21
>>110
実際にそのフォルダ見てみればいいじゃない。
環境によるかもしれないが、その下にx86って無いか?
112:デフォルトの名無しさん
09/03/08 16:09:55
ちょっと質問です。
Microsoft DirectX SDK (November 2008)、DirectX9 を使って開発を行っています。
ところで、作ったアプリを動かすための必要環境を、「9.0c 以上」 ではなく 「9.0 以上」 まで下げたいのです。
どうすればこのアプリは、確実に 「必要環境: 9.0 以上」 と言えるようになるのでしょうか?
たとえば、ピクセルシェーダ 3.0 を使ってしまうと 9.0c が必須になりそうなので 2.0 を使ったり、などはしています。
ですが、他の機能となると、どこまで使っていいのかが分かりません…。
SDK のバージョンを落とせばいいのかな?とも思ったのですが、どこまで落とせばいいのかも分からないし、
古すぎる SDK は簡単には手に入らないので、これも何か違っている気がします。
よろしくお願いします。
113:デフォルトの名無しさん
09/03/08 16:12:34
PS2.0でも9.0cが必須なんだが・・・。
114:デフォルトの名無しさん
09/03/08 16:58:27
ぶっちゃけ、古いSDKで開発するしかない
探せば簡単に見つかる
115:デフォルトの名無しさん
09/03/08 16:59:45
DirectX7お勧め。
116:デフォルトの名無しさん
09/03/08 17:21:49
古い SDK しかないですか…それっぽいのが見つかったので試してみます。
ありがとうございました。
117:デフォルトの名無しさん
09/03/08 17:33:12
みんな、Microsoft DirectX SDK (November 2008)のNovember 2008の部分が違うものを
3つも4つもインストールしてるんだぜ・・・
118:デフォルトの名無しさん
09/03/08 17:34:55
それ以前にどのOSとSPが、DirectXの下限バージョンなのかきちんと調べたのか?
ターゲットOSを明確にした上での選択なのか甚だ疑問。
119:デフォルトの名無しさん
09/03/08 17:44:06
つーかDirectX9世代なら気にせずwebインストーラー添付して「入れてね☆」とか出しとけばいい。
下のサポートを考慮するならDirectX7やDirectX8を考慮するべし。
120:デフォルトの名無しさん
09/03/08 18:02:25
DirectX9cならインストーラなど付けなくても、
WindowsXPのSP2以降と明記しておけばいいだけ。
それ以前なら既にセキュリティパッチが打ち止めになっていて、
SPすら入れない奴をそもそもサポートする必要性もない。
121:デフォルトの名無しさん
09/03/08 18:31:22
こんにちは、識者の方々、哀れな初心者をお助けください。
<聞きたいこと>
環境によって、表示される画像が1ドット多く表示される32ピクセル表示する命令なのに、33ピクセル表示される感じ。
なぜ、これがおこるのか?
この現象の回避方法は?
<詳細>
Vistaで2Dゲームを作成しています。
512×512のビットマップのうち、座標(0,0)から32×32のサイズの部分が画面の背景で、その32×32のサイズを画面に繰り返し描画しています。
開発マシン(Vista:解像度1280×800)では正常に表示されますがテストマシン(XP:解像度1024×768)で表示すると1ピクセル余計に画像が表示されていてしまいます。
開発はDiretX9で、表示はID3DXSprite::Drawでおこなっています。
下みたいな感じ
g_pSprite->Begin();
g_pSprite->Draw(pTexture,
&rect, //表示範囲
&D3DXVECTOR2(scale_x,scale_y), //拡大率
NULL,g_rotation, //回転
&D3DXVECTOR2(F(x),F(y)),
D3DCOLOR_XRGB(255,255,255)
);
g_pSprite->End();
変数とかは察してください(笑)
もし、なにかお分かりの方がいらっしゃれば、ぜひ、ご教授願います。よろしくお願います m(..)m
122:デフォルトの名無しさん
09/03/08 18:43:42
まずそれ以前に、SDKのヘルプに乗っているチュートリアルはすべて終わらせたのか?
123:112
09/03/08 18:53:21
いろいろとご指摘ありがとうございます。
諸事情で DirectX9 は是非使いたいのです。
Windows2000 以降対応にしたいのですが、2000 には初期状態で 7.0 しか入っていないので、DirectX のインストーラは同梱させる予定です。
ただ、2000 には 9.0c はインストールできないと聞いたことがあるので、9.0 で動くようにしたかったのです。
このあたりの情報は検索してもなかなか見つからなくて…正直自信ないです。
124:121
09/03/08 19:02:06
>112
一応みました。
ぐぐったりもしましたが、原因が分からず
質問させていただきました
125:デフォルトの名無しさん
09/03/08 19:16:47
>>123
9.0cは2000どころかD3DXのバージョンによっては98SEとかでも動くんだが。
126:デフォルトの名無しさん
09/03/08 20:52:46
2000でインストールできないってそれ割れOSなんじゃないの?
2kのは大分出回ったみたいだし
127:デフォルトの名無しさん
09/03/08 20:56:59
>>124
見るんじゃなく、一つ一つ動かして動作を確認しろ。
話はそれからだ。
128:121
09/03/08 22:07:38
>127
ひとつだけ、教えてください。
わたしが、示したコードはおかしなところがありますか?
わたしはおかしくないつもりだったのですが、
わたしのコードがおかしいから、動作を確認しろと
アドバイスをいただいているのかどうか、気になっています。
129:デフォルトの名無しさん
09/03/08 22:44:49
1部じゃなくて全ソース晒して方がはやそう
たぶん描画部分以外の問題の希ガス
あとID3DXSpriteは内部でレンダリングステートや
テクスチャーステージを勝手に変更してたりするから実際に見ないとたぶん分からん
130:デフォルトの名無しさん
09/03/09 00:50:29
>>111
ありがとう
131:デフォルトの名無しさん
09/03/09 01:21:33
>>128
スクリーンショットとって大きさ計ってみた?
132:121
09/03/09 10:12:40
みなさんアドレスありがとうございます。
>129
勝手にサイズを変えるんですか、なるほどです。
今出先でソース晒せないので家に帰ったら晒します
>131
いいえ、計っていません。こちらも家に帰ってから計ってみます!
133:121
09/03/09 11:33:40
>>132
一言もサイズとは書いてないですね
勘違いしました
すみません。
134:デフォルトの名無しさん
09/03/09 11:42:40
なんつーか、FILTERをLINEARにしてましたとかいうオチじゃなかろうな・・・?
135:デフォルトの名無しさん
09/03/09 11:51:02
ブレンドステートってどういうときに使いますか?
いまいち用途がわかりません。
136:デフォルトの名無しさん
09/03/09 11:52:59
αブレンドするときに使います。
137:デフォルトの名無しさん
09/03/09 11:54:55
ありがとうございます。
αブレンドと言われても全然わからない自分は、まだまた勉強不足ということですね。
138:デフォルトの名無しさん
09/03/09 12:01:01
まだまだというより、これから勉強始めるところじゃないの?
139:デフォルトの名無しさん
09/03/09 17:23:53
2Dのゲームプログラムを組んでます。
画面全体を揺らすプログラムを組みたいんですが、そういうサンプル無いでしょうか。
このAPI使えるよとかでも構いません。
表示してるテクスチャをすべて同時に動かすぐらいしか思い付かなかったんですが、
皆さんどんな感じで実装してるんでしょうか。
ドラクエでダメージを受けると画面が揺れますが、あんなかんじの演出を考えてます。
よろしくお願いしますm(__)mペコ
140:デフォルトの名無しさん
09/03/09 17:29:39
>>139
ウィンドー全体を揺らしちゃえよ
フルスクリーンでは無理だが
141:デフォルトの名無しさん
09/03/09 18:30:36
>>140
回答ありがとうございます。なるほど!参考になります。
フルスクリーンは、、、そうっすね。
142:デフォルトの名無しさん
09/03/09 21:10:29
>>140
バックバッファの内容全体を揺らせばいいんじゃないの?フルスクリーンとかも関係ないじゃん。
143:デフォルトの名無しさん
09/03/09 21:16:24
2D系でしょ
表示してるテクスチャをすべて同時に動かすでいいんじゃね?
144:デフォルトの名無しさん
09/03/09 22:23:06
いちばん簡単なのはテクスチャに描画してテクスチャを動かす方法だろ
他のエフェクトと兼用できるし
145:デフォルトの名無しさん
09/03/09 22:27:24
テクスチャーに描画するとき、サンプリングが利かなくなるからしょぼくなる
146:デフォルトの名無しさん
09/03/09 23:55:19
いや普通に利くだろ・・・
147:デフォルトの名無しさん
09/03/09 23:59:28
ドラクエでダメージ受けて画面揺れるのってステータスや文字表示部分だけだろ
そういう処理やりたいなら全体をまとめて揺らすよりも、個別で表示位置変える方が融通効くんじゃないの?
逆に文字だけは揺らしたくないとかってケースもあると思うけど
148:121
09/03/10 00:12:18
とりあえず、先にスクリーンショットの報告です。
スクリーンショット撮ってサイズを測ってみました。
結果、サイズ自体はただしかったです。
つまり、正しく32ピクセル表示しているのに
画像のサイズが少し小さくなって、33ピクセル分
表示されている感じでした。
テクスチャをロードした時に、すこし小さくなっているのでしょうか・・??
149:デフォルトの名無しさん
09/03/10 00:15:53
フィルタリングの設定見直せ
150:デフォルトの名無しさん
09/03/10 00:16:54
>>148
>>82,85
151:139
09/03/10 00:40:06
みんあーありがと!いろいろ参考になったよ。
揺らしたことないからテクスチャに描画して動かす方法で感じ掴んでみるー。
152:デフォルトの名無しさん
09/03/10 01:20:40
>>148
ID3DXSpriteはBigenで現在設定してるレンダリングステートを保存して
スプライト用に書き換えてから描画し
Endで保存したステートを復元している
たしか自動でフィルターもONになってたはず
スプライト->Beginのパラメーターで変更しないように出来たはずだが
ID3DXSpriteはあんまり使ったこと無いので嘘かも
ソース上げてくれたらチェックするが
153:121
09/03/10 01:47:31
みなさま、アドバイスありがとうございます。
やはり、フィルターの設定だったようです。
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
を付け加えることで、正しく表示ができました。
正直、まだ、半分くらいしか理解できていないので
これから、もっと精進して勉強していきます!
ちなみにみなさんは、どうやって知識を蓄えて行かれたのですか?
やっぱり地道にMSDNとかでしょうか?
ずばっと答えて下さるみなさんにあこがれちゃいます
154:デフォルトの名無しさん
09/03/10 05:14:53
ぶっちゃけ、こればっかりは長く続けて経験値を上げていくしかない
これだけ見ればOKみたいなサイトや書籍は存在しないので
基本は色んな場所から良いと取りすることになるんだけど
なにが「良い」のかを判断できるようになるにはやっぱり経験が必要
結局はいろいろ失敗しつつも自分であれこれいじっていくしない
155:デフォルトの名無しさん
09/03/10 11:09:52
>>153>>134
156:デフォルトの名無しさん
09/03/10 20:22:35
サンプルフレームワークで質問があります
ウインドウモードで起動し、ウインドウサイズを拡大していくと、フォントやGUI部分は同じ大きさなのに
モデルやスプライト等のサイズのみ大きくなっていくのですが、これはフレームバッファのサイズ自体が変化していくということでしょうか?
157:デフォルトの名無しさん
09/03/10 22:15:44
座標変換済み頂点を使ってるものは画面サイズに関わらず変化しない
頂点変換掛けてるものは射影行列が同じな限り
画面に対しての比率は常に一定、つまり画面が大きくなれば大きくなる
158:デフォルトの名無しさん
09/03/10 22:39:56
スキンメッシュアニメーションの読み込みと表示のサンプルきぼん
159:デフォルトの名無しさん
09/03/10 22:48:07
あのサンプルは解像度も変わってるよ
160:デフォルトの名無しさん
09/03/10 22:55:48
いま現在の自分のDirectX技術のレポートと
想定しているシステムのスケルトンプログラムを提出してくれたら
それにあった奴を書いてやるよ
使用目的も分からないとSDKのサンプルみたいな煩雑なコードになるから
161:デフォルトの名無しさん
09/03/10 23:01:15
>158
いいサンプルがSDKにはいってんべ
162:デフォルトの名無しさん
09/03/10 23:07:43
struct CUSTOMVERTEX
{
D3DXVECTOR3 position; // 頂点の 3D 位置。
D3DXVECTOR3 normal; // 頂点のサーフェイス法線。
};
の頂点のサーフェイス法線の意味がわかりません。
お願いします
163:デフォルトの名無しさん
09/03/11 00:17:44
複数ウィンドウ(親ウィンドウと子ウインドウ)のとき、
描画ループの順番はどうしたらよいでしょうか?
while(true) {
pParent->Clear(ARGB);
pParent->Begin();
...
pParent->End();
pParent->Present();
pChild->Clear(ARGB);
pChild->Begin();
...
pChild->End();
pChild->Present();
}
上記のようにするべきなのか、それとも
pParent->Clear();
pChild->Clear();
pParent->Begin();
pChild->Begin();
このようにするべきでしょうか?
164:デフォルトの名無しさん
09/03/11 00:45:40
ぶっちゃけどっちでもいいと思う
165:デフォルトの名無しさん
09/03/11 00:47:34
>>157
>>159
フレームバッファサイズが変わってそれに合わせて頂点変換されてるものの表示サイズも変わるってことでしょうか?
フレームバッファサイズを固定したままウィンドウサイズを変えることってできないでしょうか?
例えば、DXUTCreateDevice()で640x480のフレームバッファ、ウィンドウサイズを持つアプリを作り
それをマウス操作でウィンドウサイズを拡大、このときにフレームバッファサイズを固定したまま引き伸ばして
ウィンドウの形状の拡大させたいのです
166:デフォルトの名無しさん
09/03/11 00:58:22
伸ばした部分は黒枠でいいの?
167:デフォルトの名無しさん
09/03/11 01:46:03
サンプルフレームワークのBasicHLSLを使ったのですが、
640x480で起動直後はこのようになります
URLリンク(nagamochi.info)
これのウィンドウサイズを拡大すると、こんな感じに
URLリンク(nagamochi.info)
これをこのような形で拡大させたいのです
URLリンク(nagamochi.info)
拙い説明ですみません。
168:デフォルトの名無しさん
09/03/11 02:02:38
それはたぶん無理
DXUTの中身をいじれば出来るけどそれが出来たらこんな質問でないよね
荒業としてはUI部分だけ別のレンダリングターゲットに描画して後から合成とか
169:デフォルトの名無しさん
09/03/11 02:16:44
DXUT.cpp 3643行周辺でバックバッファ領域をクライアントサイズに変更してその後にデバイスをリセット
BassicHLSLからコールバックで登録したOnResetDeviceが呼ばれて
そこでGUI部分の表示位置、サイズを修正してる感じかでしょうか?
ここのバックバッファサイズをクライアントサイズに変更する箇所を無くすと
画面自体はURLリンク(nagamochi.info)になったのですが、
GUIコントロールの位置が表示されてる場所からずれてしまいました(ずれたのは表示位置の方なのですが)
170:デフォルトの名無しさん
09/03/11 02:36:39
ずれたのは
OnResetDevice内でバックサーフェイスのサイズにあわせて
SetLocationしなおしてるから
そこを消せばOKなんじゃない?
171:デフォルトの名無しさん
09/03/11 02:54:36
DirectX9で
ID3DXFont::DrawText
すると、文字の下と右っかわに
変なわくみたいな線がとぎれとぎれに出ます?
なぜ〜〜〜????
172:デフォルトの名無しさん
09/03/11 11:07:34
>>158
煽りでもなんでもなく、ほんとにサンプルに入ってるやつをぶっこぬくのが一番いい。
腐ってもマイクソといった感じの、すごいいいソースだった
173:デフォルトの名無しさん
09/03/11 12:32:16
質問です
Direct3D9のボリュームテクスチャに、GPUで直接レンダリングする方法が分かりません
ボリュームから特定の軸で分割したサーフェイスが取得できると思っていたのですが
マニュアルを見てもサーフェイスを取得する方法が分かりません
Direct3D10でのやり方は分かるのですが、もしかしてDirect3D9では出来ないのでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5395日前に更新/120 KB
担当:undef