【C++】 DirectX初心者質問スレ Part36 【C】
回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
現在の最新バージョンはDirectX 11です。
前スレ
【C++】 DirectX初心者質問スレ Part35 【C】
http://hibari.2ch.net/test/read.cgi/tech/1305885376/
スレ立て感謝です。
現在D3D11とDirect2DとDirectWriteを同時使用するためDXGIって何ぞや・・と勉強中。
DirectWriteサンプルのGabriolaフォントかっこよすぎワロタ。
実際の処理内容以上にすごいことをやっているように見えるw
DirectX-ゲームグラフィックス-プログラミング-NextCreator-CREATOR
マスタリングDirectXプログラミング
入門者向けだとどっちがいい本?
>>3 大きい本屋での立ち読みと、
アマゾンレビューを参考に選ぶべき
5 :
クリエイト:2011/10/22(土) 12:00:25.85
DirectX9で2Dのシューティングを作っていて、自機の表示をrhwで行っていますが、
位置を変える度にバーテックスバッファをロックして座標の変更を行うのは非効率だと思い、
違う方法を考えています。DrawPrimitiveUPを使えばロックせずに済みますが、勉強のためと速度のために
DrawPrimitiveを使った方法にしたいと思っています。
ワールド変換などの行列を使うのかと思いましたが、座標変換済み頂点なので出来ないと思いました。
どういった方法がありますか。
>>5 数回のDrawPrimitiveで一括描画できれば、upでもそうでなくても
2Dシューティングごときパフォーマンス足りなくなることはないだろう
7 :
クリエイト:2011/10/22(土) 12:13:57.97
パフォーマンスに問題は無いだろうと思いますが、
ビデオカードの扱いに慣れたいのでDrawPrimitiveを使いたいです。
>>4 大きい書店を回ってみましたがどこにもおいてませんでした(T_T)
>>7 座標変換済みでも、正射影描画でも
一括ロック&書き変え→一気にDrawPrimitiveすればよろし
ちまちまロックは効率よくないが
>>8 その大きな書店にある分かりやすそうなのを選ぶのはだめなん?
ここで質問するよりアマゾンレビューの方が参考になるとおもうなぁ
>>10 情報資格試験や読み物や言語の本ばかりでDirectXの本が全然置いてないんです(;_;)
三角形ストリップ1つに対してロック1回が最小?
幾つかのストリップをまとめて1回のロックでという訳にはいかないのかな?
13 :
クリエイト:2011/10/22(土) 21:18:12.24
>>12,
>>9 いくつかのストリップをうまくまとめて一回のバーテックスバッファの書き換えで済ます方法を思いつきました。ありがとうございました。
それでも毎フレーム一回はロックする必要がありそうです。
>>11 図書館に取り寄せてもらうか、自分に合わないのを覚悟して買って勉強する。
まずDirectXでなにをやりたいかによるんじゃないか?
タイトルだけみただけだが
上はグラフィックに重点を置いていて
下は全般的なDirectXくさそう。
個人的にはDirectXの入門書だったら
DirectX9 実践プログラミング( 2.0か1.0でいいとおもう )
11とかやるなら話は別だが入門なら9から初めていいとおもうし
その後Direct3D等々の専門書買うのがベストかと
DirectX臭そう、まで読んだ
読力なさ杉ワロタ
DirectX臭そう、だけ読んだ
だけ読んだ だけ読んだ。
だけ読んだ だけ読んだ だけは読んだけど結局どこだけ読めばいいんだっけ?
DirectX臭そう
てめぇらツボりすぎだろ
BAKA BAKKARI
24 :
デフォルトの名無しさん:2011/10/29(土) 14:35:11.37
だな
ふーん
Direct3DDeviceって何を表してるの?どの単位で作るものなの?
描画先毎?VRAM毎?GPU毎?
>26
頂点毎
28 :
クリエイト:2011/10/30(日) 18:57:41.55
テクスチャードクアッドをDrawPrimitive()で2D描画しようと考えていますが、
下記のコードで描画されません。ライティングとマテリアルの設定を変えてみても駄目で、頂点情報の指定で根本的に誤解があるのかもしれないので指摘お願いします。
ちなみに、サンプルからのコピペでXファイルを表示させることはできているので、初期化部分は合っていると思います。
STANDARD_VERTEX lm[4];
LPDIRECT3DVERTEXBUFFER9 vb;
LPDIRECT3DTEXTURE9 pTexture;
STANDARD_VERTEX newVERTEX[]={
{-1.f,0.f,0.f,0,0,-1.f,0xffffffff,0.f,0.f},
{1.f,0.f,0.f,0,0,-1.f,0x55ffffff,1.f,0.f},
{-1.f,1.f,0.f,0,0,-1.f,0x55ff44ff,0.f,1.f},
{1.f,1.f,0.f,0,0,-1.f,0xffffffff,1.f,1.f}
};
memcpy(lm,newVERTEX,sizeof(newVERTEX));
MY_VERTEX_RHW *v;
STANDARD_VERTEX *vv;
pDevice->CreateVertexBuffer(sizeof(STANDARD_VERTEX)*4,0,D3DFVF_XYZ| D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1,D3DPOOL_MANAGED,&vb,NULL);
vb->Lock(0,0,(void **)&vv,0);
memcpy(vv,lm,sizeof(STANDARD_VERTEX)*4);
vb->Unlock();
//ワールド、ビュー、プロジェクション変換省略。
pDevice->SetTexture(0,pTexture);
pDevice->SetStreamSource(0,vb,0,sizeof(STANDARD_VERTEX)*4);
pDevice->SetFVF(D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1);
pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
29 :
クリエイト:2011/10/30(日) 18:59:41.09
追記です。
DirectX9で
struct STANDARD_VERTEX{
float x,y,z;
float nx,ny,nz;
D3DCOLOR colour;
float tu,tv;
};
です。スレ汚し失礼しました。
>>28 SetStreamSourceの最後の引数のstrideは1つの頂点のサイズじゃね?
つまり*4がいらねぇんじゃないかな?
しばらくDirectXから離れてたから違ってたらごめん。
31 :
クリエイト:2011/10/30(日) 19:27:46.28
回答ありがとうございます。msdnで確認したところ確かに一つ当たりでしたので、*4を外したんですが、
やはりまだ描画されていません。まだ間違っているところがあるみたいです。
初期化処理って
パラメータセットの配列にゲームを実行可能なパラメータのすべての組み合わせを性能の良い順に詰めて
初期化が成功するまで配列を走査、全部失敗したらエラー通知
みたいな感じでいいの?
>>29 CULL_MODEどうしてる? XYZRHWだとY+が下でXYZだとY+が上方向とかになって時計回りが上下反転するとかありそうだけど。
xファイルを原点で表示しながら横にそのソースを埋め込んでみたりは?
ライティングも疑うならNORMAL消してやってみるってのもどうか?
SetTextureStageStateも疑いたいからDirectXSDKのTut05_Texturesあたりに埋め込んでみて出るかどうか試してみるとか。
あんま役に立たなくてごめん。
>>32 いいんじゃね?
動く最低条件から調べて後はあればいいなって機能が使えればそっち優先するようにするのでもいいし
34 :
クリエイト:2011/10/30(日) 20:21:10.04
>>33様
カリングNONEにしたら描画されました。感動しました。
仰るとおり、上下逆になったので調整が必要ですが。
本当にありがとうございました。
>>34 解決してよかった。
XYZRHWでシューティング作ってた人だよね?
XYZになったのならついでにXYZB1とかの行列インデックス使って
行列だけで自機や弾の移動とかやるのも面白いかもよ
STRIPだと縮退させない限りつながっちゃうからTRIANGLE_LISTでDrawIndexedPrimitiveになると思うけど
256個までの弾なら一度に描画できるようになる
(頂点ロックの代わりに行列の転送になる)
さらに自分でシェーダー書くなら4x4のfloatでなく2D平面の場合3〜4個のfloatだけでxyと回転(スケール)ができるよ
36 :
デフォルトの名無しさん:2011/10/31(月) 00:31:05.54
DirectXでオブジェクトを1回送っただけで複数のカメラから見た画像を1度にレンダリングできますか?
送るのは1回でもいいけど一度にレンダリングは無理だなぁ
VertexBuffer使いまわしで何度かViewMatrixだけ回転とかさせてそのたびにDrawPrimitive系でレンダリングになっちまう
>DrawPrimitive系でレンダリング
DrawPrimitiveの時点ではレンダリングなどされないんだが、何の話をしているんだ?
>>39 発言が下らないよ
どっちにしてもzバッファもめちゃくちゃじゃね
BackBufferWidth, BackBufferHeight
これはフルスクリーンの時はデバイスがサポートしてる値
ウィンドウなら自由(123などの半端な数でも可)ということでおk?
イエス
IDirect3D9に有効なDepthStencilFormatを列挙するメソッドがないとかおかしいだろ
どうやって調べるんだよこれ
有効なって何よ
IDirect3D9::CheckDepthStencilMatchで駄目なん?
初歩的な質問かもしれませんがお願いします。
背景に画像を描画する状態で、10〜20ほどの物体を個別に回転させたいのですが、
デバイスやスプライトはその数だけ生成する必要があるのでしょうか。
48 :
デフォルトの名無しさん:2011/11/01(火) 14:45:03.76
D3DFMT_D16の決め打ちでおk
だいたいこんな所でコケるしょんぼりシステムで派手なゲームがまともに動くわけない
さすがにD_16はないわ。
なんもできねー。
転売用にAmazon自動予約スクリプト使いたいけど、パソコンの台数と、回線の数、どっちが大事?
>>51 でも32だとクソ重くなるな
いまどきのグラボって速いところはクソ速いけど遅いところはちっとも進化してないな
塗りとかいまだにアフォかってほどおもいな
頂点色じゃなくてマテリアルのディフューズ色を使ってポリゴンを描画させたいのですが
pID3DDevice->SetRenderState(D3DRS_COLORVERTEX, FALSE);
これでは頂点色が使われてしまい
pID3DDevice->SetRenderState(D3DRS_COLORVERTEX, TRUE);
pID3DDevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);
これでもやはり頂点色が使われ、マテリアルの色は全く反映されません
ヘルプを見るとこれらのレンダーステートを設定すれば良いと思ったんですが
私の解釈が間違っているんでしょうか
ライティング無効にしてるとかじゃないの?
余計なこと考えずに、SDKチュートリアルを4番から真似てりゃできると思うけどね
表示キャラクタの移動量(dx, dz)から角度を計算したいんですが同じベクトル
または逆方向のベクトルの時にNaNになってしまいます(dxが0だと時々発生)
float angle;
D3DXVECTOR3 v(dx, 0, dz);
D3DXVec3Normalize(&v, &v);
angel = acosf(D3DXVec3Dot(&D3DXVECTOR3(0.0f, 0.0f, -1.0f), &v));
一応無理やり
if (!(ang < 7.0f)) ang = (va.z < 0.0f) ? 0.0f : D3DX_PI;
みたいにして対応してるんですがもっとスマートな方法はないでしょうか?
移動方向にキャラクタを向けたいんです
58 :
57:2011/11/04(金) 02:57:27.56
if (!(angle < 7.0f)) angle = (v.z < 0.0f) ? 0.0f : D3DX_PI;
でした
深夜のテンションでレスするとatan2じゃなくてacosfでいいのかな?
2Dなら単位ベクトルの成分でatan2するだけでおk
61 :
57:2011/11/04(金) 09:48:42.64
>>59-60 余計な処理もなく1行になりましたw
ありがとうございます
あ、ていうかノーマライズもいらないか
(x,z)==(0,0)の時だけ注意してatan2(x, z)でいい
自分で作るdirectxのゲームはフルスクリーン時でも簡単にキャプチャ取ったり
デュアルウィンドウの時はカーソルを隣のウィンドウに行き来したりしたいんですけど
ひょっとしてフルスクリーンで行うのは実は無理でウィンドウバーを消した拡大表示をするしかないですか?
ひょっとしてウィンドウモードの時って1ピクセルでも描画領域のサイズが変化したらリストアするべきなんですか?
>>65 バックバッファとウィンドウのサイズが常に一致することが望ましいならね
まあ、リサイズ時のデバイスのリセットを回避したいだけなら
デバイス作成時の既定のスワップチェインは無視して
ウィンドウに追加スワップチェインを割り当てると
リサイズ時は追加スワップチェインを作り直すだけで済むよ
ツール上のレンダリングを想定しててXP捨てていいならD3D11にするのがベストだけどね
67 :
デフォルトの名無しさん:2011/11/05(土) 18:10:59.46
へえ
68 :
55:2011/11/05(土) 22:03:11.27
>>56 2D描画なのでライティングは無効にしているんですけど、ライティング無効だと頂点色を使うことしかできないんですか?
頂点色を変えるのにいちいち全ての頂点の色変えるのもなあ、と思い、マテリアルのディフューズ色で出来たらと思ったんですが
できないっぽいですね・・・ 素直に全ての頂点色を変えようと思います
69 :
55:2011/11/05(土) 22:10:09.80
へえ
>>68 D3DTSS_CONSTANT/D3DTA_CONSTANTあたりで出来るんじゃねえの
使ったこと無いけど
72 :
デフォルトの名無しさん:2011/11/06(日) 10:40:44.70
(´・ω・`)無いけどね
そんな事するぐらいなら頂点色使うわ
74 :
デフォルトの名無しさん:2011/11/06(日) 19:15:57.63
頂点色を変えるのにいちいち全ての頂点の色変えるのもなあ
って何?
モデラーに無い機能実装して実機でしか見れない状況作って
仕事増やして自分の居場所を確保するとか涙ぐましいにも程がある
D3DXCreateTextureで生成したテクスチャに図形ソースのマスク後付けって出来ます?
ロックしてアルファ値に書き込めばいいじゃねえの
遅そうだけど
81 :
デフォルトの名無しさん:2011/11/07(月) 18:23:09.94
超初心者なんですが、Managedで勉強少ししたんですが、
C++で勉強した方が後々良いのでしょうか。
ちなみに、C#で正四面体を表示しようと
http://sorceryforce.com/manageddirectx/direct3d_box.html 上記のページを参考にコードを書いたのですがうまくいきません
スレ違いはわかってますが、できれば教えていただきたいです。
private byte[] vertexIndices = new byte[] {
0,1,3,
3,2,1,
1,0,3,
3,2,0
};
vertex = new VertexBuffer(typeof(CustomVertex.PositionColored),
4, device, Usage.None, CustomVertex.PositionColored.Format, Pool.Managed);
using (GraphicsStream data = vertex.Lock(0, 0, LockFlags.None))
{
CustomVertex.PositionColored[] vertices = new CustomVertex.PositionColored[4];
vertices[0] = new CustomVertex.PositionColored(1f, 1f, 1f, Color.Red.ToArgb());
vertices[1] = new CustomVertex.PositionColored(1f, -1f, -1f, Color.Green.ToArgb());
vertices[2] = new CustomVertex.PositionColored(-1f, 1f, -1f, Color.Blue.ToArgb());
vertices[3] = new CustomVertex.PositionColored(-1f, -1f, 1f, Color.Yellow.ToArgb());
data.Write(vertices);
vertex.Unlock();
}
indexBuffer = new IndexBuffer(device, 4 * 3 * 1, Usage.WriteOnly,
Pool.Managed, true);
using (GraphicsStream data = indexBuffer.Lock(0, 0, LockFlags.None))
{
data.Write(vertexIndices);
indexBuffer.Unlock();
}
83 :
82:2011/11/08(火) 00:03:36.60
なんか名前欄の名前がどっかでコピーしたものを
そのままペーストしてしまったみたいで、気にしないでください。
Managed Directxとかオワコン
SlimDXかXNA推奨
XNAは資料とかあるけど、SlimDXはほとんどないよね
ただのラッパーに必要な資料とは何ぞや
>>82 パッと見、vertexIndicesがbyte配列なのがまずいんだと思うよ。
short配列にするかint配列にしてsixteenBitIndicesをfalseにしてやってみ。
頂点ブレンドに関して、線形でやっていたのですが、つぶれに我慢できずデュアルクォータニオンにしてみました。
しかしねじれに関しては中々なのですが、曲げに関しては膨らんでしまうのがどうも・・・。
知人に、今はデュアルクォータニオンより良いブレンド方法があると聞いたのですが、どういうものなんでしょうか?
90 :
88:2011/11/11(金) 18:16:01.14
知人はモデラーでして、曖昧な上にプログラム的なことはさっぱりなのです
検索しても出てきませんし、知人の勘違いですかねぇ
>>90 モデリングソフトの話ならメーカー独自のワケわからんのがたくさんある
でも計算式が公開されてるわけではないんだぜ
曲げに関して膨らんでしまうのはブレンド手法うんぬんよりも
むしろデータの方に問題があるんじゃね。
どんな入力データでも破綻なく描画できる魔法のブレンド手法っつー意味ならないよ。
ところでここは初心者スレな。
上級者スレなんかあるのか
鬱出し脳スレも昔になりにけり
C++とDirectxSDKを落として参考書もそろえたのに、1週間経ってもエラーだらけで何も始められていない
何がいけないんだ・・・
誰か上級者スレ立てろよ
俺みたいなスーパーハイレベルプログラマになると
このスレの話題は初歩的すぎて暇つぶしにもならない
上級車は自己解決できるから、スレなど不要。
中級者は?
ハイパーかわいいスーパープログラマなオレも中級以上スレはあればうれしいな
会社でいまだにXP使わされてるやついるから9まででしかプログラムさせてもらえないオレに
テッセレーションとかの話題を見せ付けて癒してくれ
曲線の話ならもしかしたらいくつかのサンプル点から連立方程式を解けば計算式が出・・・無理無理w
サンプル点の最小の数としてとりあえず3つのP0、P1、P2があるとして
そこからコントロールポイントを各線に二つ生成して3次ベジェを作るとする
(3次はいろんなお絵かきソフトで使われてて馴染み深いから)
P1の両脇に生やすCPのの傾きは
sv = normalize( P2 - P0 )
もしくは
nv = normalize( P1 - P0 ) + normalize( P1 - P2 )
cv = P2 - P0
sv = cv - nv * dot( cv, nv )
とかやって長さは∠P1の角度をもとに線の長さの1/3〜2/3あたりになるようにし
3次元上に曲線を引いてみたら結構きれいにいったんだけど
それをPathとしてキャラを歩かせたりしたら
当たり前だが速度が一定にならず困ったもんだ。
ニコニコで有名なあのPV作成ツールのように時間軸も曲線で補間するしかないが
あれのパラメータでやると二分探索(Newton法)かBezierClipで求めることになるのかな
とかそういう話題でハイパーかわいいスーパープログラマ、オレを癒してくれ
3D技術の話はスレチ
ここはDirectXを応用する前段階の人が来るスレです
>>101 てか、こんな馬鹿な方法で1メーカーの1コンテンツを再現できるわけない
っていう予想も立てられずにやってみてる時点で無駄てか馬鹿
モニタの解像度より小さくできないゲーム(アプリでサイズを変更したら右と下が切れる)があるんだけど
これをキャプチャして縮小して再表示して遊ぶ、みたいなことはDirectXでできる?
常にフルスクリーンなアプリなの?
意味が分からん
今使ってるモニタよりゲームの要求してる解像度のが大きいということです
ゲームのクライアント領域が1024*768(無理やり小さくすると右と下がはみ出て描画されない)だけどモニタが1024*600しかない、という感じで
>>107 キャプチャ・縮小再表示まではできる
遊べるかどうかは君のパソコンのスペック次第だろうが・・・無理だろ?
でかいディスプレイ買うべきだと思うけど、きっとネットブックか何かだろ?
CreateFont関数って実用性ありますか?
ノベルゲームで使えるぐらい文字を表示したら遅かったりしませんかね?
ID3DXFontですね、すみません
>>110 bitmap画像用意する方法と比較検討したことがあるけど、速度面で大して有利でもなかった
ノベルゲームで使う分には申し分ないはずだけど、過去の資産があるなら乗り換えるほどじゃないよ
Direct3Dのベクターデータをプリンターに出力することってできますか?
レンダリング結果じゃなくベクトル?
まわりではポリライン使ってる人が多かったかも、ノーマライズしてるのだけ色分けしたりしてた
>>114 >レンダリング結果じゃなくベクトル
そうです。ベクトルデータを出力したいです。
四苦八苦しましたが、どうも無理な気がして質問してみました。
ポリラインですか。ちょっと調べてみます!
どういうふうに出力したいのか不明だし、それが分からない限り無理だろう。
初心者スレだし、質問者に正確さだとか詳細さを求めてもなあ
118 :
113:2011/11/17(木) 12:40:34.79
>どういうふうに
Direct3Dで描画してるんですが、
デバイス作成(CreateDevice)時にウィンドウのハンドルを渡しますよね。
プリンターの場合はウィンドウハンドルが存在しないのでデバイス作成できずに困っている状態です。。。
ほら、結局は話を聞かないで余計な気を回すと、こういうくだらない落ちになる。
>>118 発想の飛躍っぷりがすげー。
プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談。
そもそもD3Dを使わなきゃいかんほどのリアルタイム性が求められるような話でもないだろうから
それ用に設計された別のライブラリ探すか自力で組むかした方が早いと思うよ。
D3Dは3Dに関することなら何でもやってくれる魔法のライブラリ、ではないので。
単にサーフェイスへレンダリングした後、それをBltすればいいだけの話。
D3Dは何でもやってくれる訳じゃないが、今回のケースぐらい処理できる。
直前にアホが混ざってるけど。
デバイスコンテキストハンドルとDirect3Dのデバイスをごっちゃにしてるのかね
秒間60枚印刷するプリンタを想像してワロタ、パラパラ漫画とか作れそうだな
>>121 >>115見る限りベクター形式の(解像度非依存の)印刷用データを
D3D使って吐きたい、というように読めるんで
そういう方向には対応してませんよという意味での「魔法のライブラリではない」なんだけど。
物理的に印刷して遊べるゲームか
プリンタ何台必要なんだ
環境型ゲームで主人公がカメラ持ってて、写真取ると物理的にプリンタから出てくるとか。妄想妄想・・・。
126 :
113:2011/11/17(木) 18:19:10.50
自分の無知と言葉足らずのせいで混乱させてしまったようでスイマセン
「プリンターに出力」というのは紙を印刷するわけではなく
具体的には「仮想プリンタドライバに出力」するのが目的です
>>121 >それをBltすればいいだけ
Bltしちゃうとベクトルデータではなくなってしまいますよね?
D3Dにおけるベクトルデータがどれにあたるのかが分かってないですが。。。
>>120 勝手な推測ですが、あなたは私の目的を過不足なく理解してくれている気がします
>プリンタ(プロッター?)をD3Dデバイスとして扱おうってのは完全に用途外だし無理な相談
このトドメのひとことを言ってもらって諦めがつきました
頂いたレスにあるようにリアルタイム性が求められる部分ではないので
描画方法を変えるしかない、というのを前提に対策を考えようと思います
ベクトルが何か分からないってのはかなり問題、3Dの基礎から順番に学ぶべきかと
出力結果をどうしたいのかはっきりしないのに、
プログラムの組みようがないだろう。
129 :
113:2011/11/17(木) 19:57:43.80
>>127 >3Dの基礎から
その通りですね
現状のコードは自分が書いたものでなく、処理の流れを最初から確認していったら
初っ端のCreateDeviceで困ってしまったという情けない状態です。。。
GDIでの処理は経験あるので簡単にできるとナメてました
>>128 出力結果をどうしたいのかはハッキリしているので大丈夫です
ただ、D3Dを使わずに現状の処理を実現できるんだろうか、と途方に暮れています
最悪BMPデータで妥協するしかないかもしれません
3Dグラフィックスなんかで使う数論的な意味での「ベクトル」と
画像データの格納形式区分としての(ラスターに対する)「ベクター」は
言葉としては同じvectorだが全然別の概念なので注意な。
>>129 たぶんあなたに必要なのはベクトルや行列を計算するライブラリであってDirectXではない
Direct3Dってのは最終的にラスタライズする使い方がメイン、これに固執してもきっと遠回りになる
132 :
113:2011/11/17(木) 21:21:38.97
>>131 >たぶんあなたに必要なのはベクトルや行列を計算するライブラリであって
いえソッチじゃないです
>画像データの格納形式区分としての「ベクター」
こっちです
GDIでの画像処理の経験はあるのでそのへんの混乱はしてないです
日本語で表記するときベクターって書いたりベクトルって書いたりしちゃいますけど
まずはプリンタに出力したいものをディスプレイに出せ。
あとはプリンタのDCにBltすれば解決する。
ただそれだけの話だ。
134 :
113:2011/11/17(木) 22:01:11.82
>>133 >プリンタのDCにBltすれば解決する
BltしちゃうとBMPデータになっちゃいますよね?
最悪そうするしかないかと思っているんですが、
自分がやりたいのはベクトルデータの出力なんですよ。
かなり無理のある話だとは思うんですが。。。
プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示するデバイスだ
抽象的な話をしててもきりがない、具体的にプリンタの機種名出せよ
2Dのベクタ画像を3D空間中で処理して、その結果をまたベクタ画像として取り出したいの?
だったらビューポート変換までやった後の画面バッファから頂点位置取り出せばいけるんでない?
138 :
113:2011/11/18(金) 12:34:02.44
>>135 >プリンタもディスプレイと同じ、点の集合で紙の上に何かを表示する
いいえ違うと思います
プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
自分は仮想プリンタドライブに出力し、
ベクトル形式の画像ファイルを作るのが目的です(これができれば紙にも印刷できると思いますが)。
>>136 ありがとうございます
調べてみます!
>>137 そうです。MetaFileのようなベクトル形式のデータが欲しいです
そのデータを作るうえでD3Dを利用できないのかなあと暗中模索しているところです
おそらく結論は
>>120ってことになる気がしています。。。
>>138 >プリンタは処理するときに点の集合でなくベクトルデータとして処理しています
それはプロッタじゃ
>>138 プリンタの実装にもよるけど基本的に現行のプリンタは原理的にラスターではあるよ。
内部的にPostscriptやらHPGLやらのベクターデータを実装してるような機種もあるけど
いわゆるレーザープリンタとかインクジェットプリンタってのは最終的には全部ラスターに変換される。
ペンを使ってドローするタイプであれば確かに原理的にベクターだけど、それは
>>139の言う通り、普通はプリンタとは言わずにプロッタと言う。
なんつーか
>>135もあなたも自分のフィールドの知識だけで物事を断定するのは止めたほうがいいと思うよ。
っていうかもう結論出てるんだしそろそろスレチ。
141 :
113:2011/11/18(金) 18:22:37.79
>>140 そうですね、「プリンタ」だと間違いですね
140さんの言う通り、話題がプリンタになってしまっているんで、ここらで終了にして下さい
色々と教えて頂きありがとうございました
どこかにDirectShowのサンプルプログラム置いてるとこ無いですか?
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow
あたりはどうだ?
>>143 7.1には入ってるのか。7.0なんだけど入ってなかったわ。
んで、7.1入れようと思うんだけど7.0は消しちゃっていいの?
D3DXCreateTextureFromFileEx();でWidthとHeightに0を渡すと、
例えば元のファイルが96*48だったときには実際には128*64で読み込まれるではないですか
このとき元の画像は128*64に拡大されるのですか
それとも元の画像はそのまま左上に寄せられて、他の部分は何かで埋められてしまうのですか
埋立工事されます
どういった素材で埋め立てられるのですか
>>144 うちのv7.0には入ってるんだけど 入れるときにケチってカスタムでサンプルのインストール省かなかった?
めんどくさくてv7.0消さずにv7.1入れちゃったけど7.0のほうにあって7.1にないものってなさそうだし消しちゃってもいいんじゃね?
>>148 ありがとう。
7.0は元から入ってたわ。もしからしたらVC++入れるときに一緒にインスコされたのかな。
7.0は一応そのままにしてインスコしますた。
円じゃなくて半円の画像にすればいいじゃん
>>152 その方法だと回転しながら描画した場合にやっぱり干渉してしまいますね...。
画像を表示で前後関係がうまくいかないってことならわかるけど
メッシュだったらなぜそうなるのか分からない
あんまりいい方法じゃないかもしれんけど、クロスしてるメッシュ2枚をY軸でナイフ入れて4枚に分割するとかはどうだろう。
加算で描けば?
Zの書き込みはDisableで。
分割面が常に固定ならクリッピング使って交差面の前と後2パスとかで描けるだろうけど
例示されたエフェクトみたいなのならそんなにコストかけるようなもんでもないし素直に加算使っとけだな。
α付き交差ポリゴンを1パスでお手軽に綺麗に描く方法はいまんとこない。
まさか単純にZWriteとかZCompの使い方がわからんっていう話じゃないよな?
>>159 CharSetが0ってAnsiじゃね? そこをSHIFTJIS_CHARSETにして
FaceNameはフォントの名前の設定だと思うから"MS Pゴシック"とかそのへんだろ
リファレンスよめよ、、、
マジ神とか回答者をバカにしてるとしか思えんわ。
礼の言葉くらいきちんと言え。
そんなんでいちいち目くじら立てるなら初心者スレなんて見なけりゃいいだろ…
ここは紙スレですか?
IDirect3DDevice9からD3DPRESENT_PARAMETERSを取得する方法はないので自分で保存するしか無いってことでいいんですか?
スワップチェイン経由で取るがよい
あのDirectX9で2D描画したいと思っています
DrawPrimitive系の関数って実用的にはどう使われて居るのですか
DrawPrimitiveは遅いので呼び出しは一フレーム一度だけにしろと云われたのですが
そうなると複数テクスチャとか複数ポリゴンを扱うときに一体どうしろと云うのですか
あと3Dゲームでの実用についても知りたいです
>>168 Direct3D9って前提で話をするけど、余程カリカリにチューニングするってんでもなければ
大体「ポリゴン単位で呼び出すな」程度の認識で大丈夫。
1フレーム1回ってのは流石に現代では無理がある。
余程古いハードウェアを前提にするんでもなければ別に数十回DrawPrimitive呼び出ししても60fpsは出るよ。
もちろんまとめられるようなパスは可能な限りまとめるべきだけど。
一般的に見て一番早い描画法はなんなの?
インデックスバッハとかいうやつですか?
>>170 ありがとうござます
ポリゴン単位とはつまり長方形の板ポリ一つずつということで合ってますか
それと、まとめるというのは頂点バッファをと云うことですよね
もしそうならテクスチャも纏めなければなりませんか
ユーザ側で元画像を用意してもらい、また任意で板ポリの数を増やして貰おうと思っているのですが、
画像を纏めるのをユーザが負担すると云うのは考えたくないものです
>>171 一応インデックスバッファありの方が行列演算の絶対数は減るので
GPU的には早いとは言える。
正直それ以外のところで発生するボトルネック要因がいっぱいあるので
速度を理由にインデックスバッファを採用する理由はあんまないが。
>>172 板ポリ一つずつで合ってるよ。
100スプライトなら4頂点+6インデックス+DrawPrimitive*100ではなくて
400頂点+600インデックス+DrawPrimitive*1する方が良いっちゃ良い。
その場合はもちろんテクスチャも一つにまとめるにこしたことはないけど
パターン数が少ないようならパターン毎にインデックスバッファを用意しておいて
パターン毎にパスを切り替えるやり方でもいいかもね。
同じテクスチャ同士で頂点つなげてDrawPrimitiveならテクスチャの枚数分のオーバーヘッドで済むからもう十分じゃね?
すみません。.x形式でモデル&モーションを書き出しているのですが、
ツールが右手座標系で、プログラムが左手座標系なので反転させようとしています。
モデルはちゃんと反転できたのですが(x軸を-1倍)
ボーンの座標(中心位置)の反転(x軸を-1倍)が上手く行きません。
SkinWeights 項目のマトリクスの4_1(13番目)
FrameTransformMatrix relative 項目のマトリクスの4_1(13番目)
を-1倍してみたのですが、単純な回転モーションで確認しても変化が有りません。
ボーンの座標ではなくAnimationKeyに座標など全てが収まっているのでしょうか?
.x形式まともに使ったことないからはっきりは言えないけど
アニメーションキーが存在していてそれを使って再生しているのであれば
普通は非アニメーション状態の変換行列は無視される。
(じゃないと取り回しが色々と不便になるから)
なのでアニメーションキーを変換する必要はあるだろうね。
その場合、おそらくメッシュの法線も反転するけど。
179 :
177:2011/11/22(火) 14:57:57.57
>>178 >普通は非アニメーション状態の変換行列は無視される。
>(じゃないと取り回しが色々と不便になるから)
そうなんですね。その方が計算減りますよね。
ありがとうございました。 もう少し粘ってだめなら逆向きに作るとします。
180 :
デフォルトの名無しさん:2011/11/22(火) 21:51:29.16
すみません、質問です。
新しく接続されたコントローラー(デバイス)を認識して
DIRECTINPUTDEVICE8で取得したいのですが、DIRECTINPUT8::FindDevice()
が"クラスが登録さてません"というエラーを返してうまくいきません。
引数にはDBT_DEVICEARRIVAL→DBT_DEVTYP_DEVICEINTERFACEイベントの
DEV_BROADCAST_DEVICEINTERFACE::dbcc_nameとdbcc_classguidを渡しています。
もしかして使い方が間違ってるでしょうか?分かる方がいらしたら教えてください。
デバイス認識の試験にはコントローラを使用してます。
void CMain::TP2(int left_in_x,int up_in_y,int right_in_x,int down_in_y,float *left_x,float *up_y,float *right_x,float *down_y){
*left_x=(1/16*(left_in_x-1));
*up_y=(1/16*(up_in_y-1));
*right_x=(1/16*right_in_x);
*down_y=(1/16*down_in_y);
}
float
Tx_Left_X,
Tx_Right_X,
Tx_Up_Y,
Tx_Down_Y;
TP2(1,1,1,1,&Tx_Left_X,&Tx_Up_Y,&Tx_Right_X,&Tx_Down_Y);
うまく数字が変わらないんです
ホントはTP2関数を使ったら
Tx_Left_Xとかの値が変わってるはずなんですが…
とりあえず
1.0f/16.0f
こんな感じにしてみるとか・・・w
だね。/も*も左から結合されていくから1/16が整数演算でゼロになっているという話。
>>180 実行中に接続されたコントローラーを認識したいというのでもなければ
FindDeviceじゃなくてEnumDevices使えば?
>>182-183 ありがとうございました
レスした後にこれは文法の問題だと気づきました
DirectX関係無いですよね、スレチですすみません
HRESULT Render() {
if(SUCCEEDED(d3ddev->BeginScene())) {
RenderImpl();
if(SUCCEEDED(d3ddev->EndScene())) { return d3ddev->present(0, 0, 0, 0); }
else { ??? }
}}
EndSceneが失敗したらなにをするべきなんでしょうか
これって失敗したまま放置したら永遠にロックされたままになりますよね?
>>186 EndScene呼び出し自体は単にデバイスに状態を通知するだけなので
BeginSceneが適切に呼び出されている限り失敗することはまずないよ。
失敗するのはBeginSceneとEndSceneがきちんと組になってない時くらい。
なので、もしも失敗したのなら、やるべき事はコードパスを見直すことだね。
その時は多分ロックとか以前の問題なので。
>>184 ありがとうございます。
EnumDevicesは初期化時に呼びます。コントロ−ラーがなかった場合や
足りなかった場合に接続されたコントローラーを取得したいので
FindDeviceを使用しようとしてます。
FindDeviceで失敗したコントローラーでもEnumDevicesでなら列挙されることは
確認済みですがEnumDevicesは遅いので出来ればFindDeviceを使用したいと思っています。
原因分かる方いらしたらお願いします。
190 :
デフォルトの名無しさん:2011/11/24(木) 17:00:12.86
D3DXVECTOR3 vFace;
DWORD dwFaceIndex;
VERTEX *vertex;// 自分で定義した構造体
D3DXIntersect( BenkiMesh, &vRay, &vRayDir, &bHit, &dwFaceIndex, NULL, NULL, &Dist, NULL, NULL
UnkoMesh->LockVertexBuffer(ほにゃららREADONLY, (void**)&vertex );
vFace = vertex[dwFaceIndex].position;
UnkoMesh->UnlockVertexBuffer();
…みたいにして、D3DXIntersectで当たり判定みたいな事して、
LockVertexBufferしてポリゴンのデータを1つだけ取得して、
値を画面に表示させてみたらところどころに「-1.#R」ってのがあるんよ。
これ、一体どうしたら正しい値が入ってくるますか?
交差判定はBenkiMesh上でやってるのにLockVertexBufferで参照しようとしているのが
UnkoMeshなんだが、こりゃ同じメッシュを指してるっつーことでいいのかね。
あとそのコードには書いてないがbHitフラグはちゃんと確認してるか?
あとdwFaceIndexに戻って来るのは頂点インデクスじゃなくて面インデクスなのに
それでVertexBufferを参照しているのもおかしい。
193 :
デフォルトの名無しさん:2011/11/24(木) 18:32:07.44
交差判定もLockVertexBufferもBenkiMeshに対してでした。
LockVertexBufferは、bHitがTRUEを返した場合に行っています。
書き間違えてたよ。ご指摘、ありがとうね。
>>190投下の後でコードを見直してみたら、
BenkiMesh->OptimizeInplace( D3DXMESHOPT_ATTRSORT | D3DXMESHOPT_VERTEXCACHE, &lpdwAdjacency[0], 0, 0, 0 );
という行があったんだけど、(必要があって書いたコードだったはず。結構前だったから忘れちゃった。)
これが悪さしてるのかな?
194 :
デフォルトの名無しさん:2011/11/24(木) 18:36:58.87
>>192 言われてみれば…確かにそうですね。
直してきます。
ありがとうございました。
195 :
デフォルトの名無しさん:2011/11/25(金) 18:24:43.70
プリミティブ描画の時に
196 :
デフォルトの名無しさん:2011/11/25(金) 18:26:03.87
途中送信したすまん
プリミティブ描画の時にTRIANGLESTRIPにしたらカリングモードに関係なく全部描画されるよね?
全部描画されるの意味が「常にCullMode=None指定するのと同じって事だよね」という意味ならNO。
偶数番目の面のカリング順判定が入れ替わる(CW⇔CCW)だけでカリング自体の適用はLISTの場合と一緒。
なるほどありがとう
>>190です。
こんな感じに変更したら、
何か、うまくいっちゃったので晒していきます。。
D3DXIntersect( BenkiMesh, &vRay, &vRayDir, &bHit, &dwFaceIndex, NULL, NULL, &Dist, NULL, NULL );
if( bHit )
{
BenkiMesh->GetIndexBuffer( &lpIB );
BenkiMesh->GetVertexBuffer( &lpVB );
lpIB->Lock( 0, 0, ( void** )&pIndices, D3DLOCK_READONLY );
lpVB->Lock( 0, 0, ( void** )&pVertices, D3DLOCK_READONLY );
pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3]];
vUnkoPosition[0] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3 + 1]];
vUnkoPosition[1] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
pfVertices = ( float* )&pVertices[BenkiMesh->GetNumBytesPerVertex() * pIndices[dwFaceIndex * 3 + 2]];
vUnkoPosition[2] = D3DXVECTOR3( pfVertices[0], pfVertices[1], pfVertices[2] );
lpVB->Unlock();
lpIB->Unlock();
lpIB->Release();
lpVB->Release();
}
テクスチャ座標の誤差ってどうにかなりませんか?
ちゃんと質問しろ
ごめん
Direct3D9で頂点バッファを使ってテトラゴンを描画するとき、
2048*2048pxのテクスチャのx, y, w, h = 1344, 96, 48, 48の範囲を貼りつけたいのですが
頂点を
{0.0f, 0.0f, 0.0f},
{0.0f, 48.0f, 0.0f},
{48.0f, 0.0f, 0.0f},
{48.0f, 48.0f, 0.0f}
のように定義して、
テクスチャ座標を
{1344.5f / 2048.0f, 144.5f / 2048},
{1344.5f / 2048.0f, 96.5f / 2048},
{1392.5f / 2048.0f, 144.5f / 2048},
{1392.5f / 2048.0f, 96.5f / 2048}
こうすると元の画像と比べて横方向に広がるのです
http://www.dotup.org/uploda/www.dotup.org2316033.png 上半分がDirectXの描画で、下半分が画像をビューワで開いたものです
テクスチャでマップチップを表現するのが難しいってやつだな
フィルタとかかかったりするとサンプリングするとこがまたおかしくなってとなりの奴まで
描画に使っちゃったりして超うまくいかない
っていうかその画像なら1フレームでチップ全部必要になるわけじゃねぇんだから
あきらめて別のテクスチャにしろよ的な
マップチップで描画したいマップに関しては綺麗に表示させたいなら
テクスチャ1枚でなにやらやろうとするのは鬼門かもしれんな
環境や条件を絞った上でやればなんとかなるかもしれんが・・・
PCの設定によってうまくいったりいかなかったり
ま、ハードウェアの苦手なことはするもんじゃないよ(笑)
データの方に誤差も考えてマージン持たせるんだよ
>>202 そのコード片だけじゃ頂点とテクスチャのy座標の対応が逆なってるようにしか見えんけど
それと+0.5テクセルずらすんじゃなくて位置座標から-0.5ピクセルずらした方がいい
理由は忘れた
206 :
202:2011/11/27(日) 22:54:35.44
>>203 とりあえずフィルタはNONEにしてるのですが
つまり48*48の範囲の正確な描画はDirect3Dでは出来ないのですね
>>204 データというのはテクスチャの事ですか
そうなると厳しいですね……
>>205 特にy座標が逆になってるようにはみえませんが
浮動小数の形式上の誤差はなかなか逃れられんだろう。
208 :
202:2011/11/27(日) 23:05:06.31
なかなかと云うからには逃れる方法はあるのですか
>>206 >特にy座標が逆になってるようにはみえませんが
ん? Direct3Dのテクスチャ座標って上から下に向かうよ?
まあ読み込み時に逆なってるなら帳尻は合うのかもしらんけど
>>208 実用に足るかは知らないが、誤差のでない数字っていうのが有るのよ。
具体的には、少数点以下のビットの保持方法を把握しないと難しい。
少数点以下の数字をビットシフトすると、1/(2n)になるのは知ってるよね。
情報の教科書とかにかいてあったと思うけど。
そういう数字はごさがほぼでない。でも実用に足るかはしらない。
1/(2^n)だな。
横に広がるならProjectMatrixに入れてるアスペクトの問題じゃね?
ためしにテクスチャ張ってない正方形でも描いてキャプチャしてみて横に広がってたらそれ
画面作成時にタイトルバーの大きさが考慮されてなくてクライアント領域みてみたら
実は想定していたサイズじゃなかったってオチな
でもそれを解決してもなおこの問題は解決には至っていないと思う
なんか方法変えたほうがいいと思うんだよね
214 :
デフォルトの名無しさん:2011/11/28(月) 00:27:55.52
だよね
テクセル1.0は実質(テクスチャの軸あたりの総ピクセル数+1ピクセル)目なので
きっちりパーピクセル対応させようと思うと計算が面倒くさいよね。
>>210 なるほど、少し調べてみますん
>>212 テクスチャを貼らなければきちんとした48*48の正方形が描画されます……と思ってよく見たら横に伸びてますね
クライアント領域が640*480のウィンドウに正射影で
D3DXMatrixOrthoLH(&projection, 640.0f, 480.0f, 0.0f, 100.0f);
とやってますが
これでは問題があるのでしょうか
>>213 そこに関しての調整は既に一度躓いていて修正済みです
ちゃんとAdjustWindowRect使って領域計算してウィンドウ作ってるかとか
バックバッファとかビューポートのw,hがちゃんとクライアントレクトのw,h(640*480)になってるかどうかとか
>>216 横はいいけど縦は?
Ortho使ってアスペクト比が狂うってのはバックバッファ→ウィンドウ転送でサイズが合致してないか
どっかで余計な値掛けてるかくらいしかないと思うんだがなあ。
全体的に一様に拡大されてるってんならわかるけども。
Pixで実行時のバックバッファ内容をキャプチャして比較してみた場合だとどうかね。
219 :
202:2011/11/28(月) 16:36:04.73
>>217 GetSystemMetrics()を使ってDLGFRAMEとCAPTIONを適切な分だけ足してウィンドウを作っているのですが
AdjustWindowRect()の方が正確なんですかね
>>218 縦は正しく描画されます
とりあえずPixというものを初めて使ってみます
220 :
202:2011/11/28(月) 21:35:19.29
ああ……
221 :
202:2011/11/28(月) 21:38:59.30
ごめんなさい、こちらの凡ミスでした
どうやら頂点座標の打ち間違えだったようです。質問を認めるときに何故気が付かなかったのか解りませんが……
本当にありがとうございました。お騒がせしました
(#^ω^)ビキビキ
223 :
202:2011/11/28(月) 23:59:45.24
>>221 自分の凡ミスだと正直に報告した点については評価しよう。
今度逆ギレする時は名前欄ちゃんと消したかどうかを確認しとけよ。
では次の方どうぞ。
俺はそうは思ってなくて
実はやり方自体のまずさに気がついてこの方法での実現を断念したんだと思う
別にどうでもいい
何気に昔ながらの2Dゲー作るって結構知識いるんだよね
矩形ごとにDrawPrimitiveすると遅くて描画間に合わないし
テクスチャまとめると今度は横のチップの絵が出てきたりするし
フィルタかけるとすごくきったないしフィルタのONOFFはユーザ側の設定依存になるし
まあ、こんな程度だと思うけど
タイリングパターンとチップからでかいテクスチャを生成するんじゃダメなの?
メモリが無限にあるならそれでいんじゃね
ここで思考停止するのが凡人
ここからメガテクスチャを生み出したのが天才
昔ながらの2Dゲームが作りたいならDirectDrawでも使った方がよっぽどいいと思うが。
DirectDrawってまだあるの?
無いけど使える
>>233 詳しく教えてほしいな!
昔のソース引っ張りだしてきたらビルドエラー起こすもんで
DirectDraw7からDirect3D9へ引っ越し作業してたんだ
過去のコード使えるならその方がありがたい
GDI+でいいじゃん
BeginSceneって必ずEndSceneとペアなんですか?
ペアだと何か困るのですか?
>>236 どっちか一人にすると悪さをするので必ずペアで呼んであげましょう
>>234 233じゃないが、DXSDK(June 2010)からddraw.libが含まれてないそうなので
それ以前のSDKをどっかから探してインスコしてパス張ってやればいいんじゃないか
以前と挙動が同じかどうかはわからんが
>>238 ああそういう意味で「ないけど使える」って事か
ワールド座標をスクリーン座標とZバッファの値に変換する方法を教えてください。
出来ればこんな感じが良いです。省略した部分をどう書けば良いのかが分からなくって・・・
void Convert(D3DVECTOR3 &vectScreen,D3DXMATRIXA16 mWorld,D3DXMATRIXA16 mView,D3DXMATRIXA16 mProj,D3DVECTOR3 vWorld)
{
/* 省略 */
}
3Dでボンバーマンのようなものを作ってるんだけど3Dだと透視画法のように奥に行くほど小さく見えるじゃないですか
あれ微妙にプレイしづらいんで正規品の2Dボンバーマンの見た目にマッチするように奥行きと大きさを無関係に表示させたいんですけど
そういう場合はどう設定すればいいんですか?
正射影
理屈の上ではカメラから遠く離れた場所にオブジェクトを置き、
それに合わせて前方・後方クリップ面を遠く、視野角を狭くすればそういう効果は得られると思う。
ただZバッファがどうなるかは知らん。
奥行きの影響を限りなくゼロじゃなくてゼロにする必要があるならそういう関数があるのかな?
なければ射影行列を自前で設定することになるかも。
色々調べた結果、D3DXVec3Projectという関数がありました。
ちなみに242は私と違います。
とりあえず音鳴らすときはXAudio2でいいの?
頑張ってDirectMusicで作ったらヘッダがなくなってたし・・・
もうXPは切り捨てていいの?
XPからWindows8にアップデート出来るとかうんたらかんたら
>>247 おk。ただirrKlang楽だよirrKlang
ハード的にもXP積んでるやつは結構厳しくなってきたと思うしなぁ・・・
どうしてもやって欲しい人がXP持ちだとか言わないなら、もう切っても良い頃合いだと思う。俺はね
253 :
デフォルトの名無しさん:2011/12/05(月) 04:46:32.28
変える必要性を感じない
254 :
デフォルトの名無しさん:2011/12/05(月) 10:09:53.68
感じないね
ゲームパッドなんですが読み込んで普通に利用するのはわかるのですけど
逆にこちらから操作(プログラム上から押したことにする)って可能ですか?
パッド二つ接続してる状態でパッド1の操作をパッド2で操作出来るように
出来ないかなと思っています
生入力をゲームコマンドにマッピングするクラスをちょっと変更するだけでいいよ
>>256 アクションマッピングを使うってことでしょうか?
まだよくわからないので調べてきます
簡単に言えば、よくあるパッド入力→キー入力変換のソフトみたいな感じで
パッド入力→他のパッドの入力に変換したいのです
そんな簡単なものじゃないのかな…
パッドに入力があったらSendMessageでキーボードの入力イベントを送ればいいよ
>>255 関数ポインタで差し替えるとか、そもそもキーコンフィグがどうやって実現してるとか、
そういう話じゃないの?
え?勘違いですか、そうですか・・・・。
>>258>>259 ちょっと説明が下手で申し訳ないです
「Joy to Key」 じゃなくて 「Joy to Joy」 をやりたいなあと
パッド1のAボタン押したら、パッド2のAボタンが押された事になるみたいな
色々調べてみるとDirectXじゃなくてHIDとかで直接やらんといけないのかな
自分はスキル不足なので難しいのかもしれませんね
それは、同アプリ内で?別アプリに送る感じで?
SendInputってパッド情報おくれたっけ?
>>261 別アプリですね
別のアプリで反応出来るようにという感じです
調べてみるとキーとマウスだけという感じですかね
それはDXの範疇超えてる気がするんだけど。自分はわからん!
コントローラークラスでプロセス間通信すれば?
また、botでも作ろうとしてるのか?
いい加減に乞食に餌やるなよお前等
検索してもあまり出てきませんね
連射を作ってる人が近かったかなという感じです
確かに範疇超えてるみたいです
もう少し調べてみて諦めるか何かしてきます
ありがとうございました
ちなみに、別アプリというと怪しく聞こえるかもしれませんがbotではありません
それならパッドはいらないですから
単純に余ってるパッドをキーやマウスのように、メインのパッドにアサインしたいだけでした
キーボードで操作できないPCゲーなんて稀なんだから
パッドからキーボードでいいじゃん
268 :
デフォルトの名無しさん:2011/12/06(火) 23:31:35.00
いいじゃんね
いいじゃんね
HLSLでif文を使うと遅いらしいから、エフェクトインターフェース側でパスを切り替えて擬似的に実現しようと思うのだけど、
どっちの方が速いんだろう?
動的分岐じゃないならifでいい
そうなのかサンクス
アセンブラ出力して比べるのが一番確実
いいんじゃね
276 :
デフォルトの名無しさん:2011/12/09(金) 17:16:40.69
調べても分からない=まだ経験値が足りないんだ
二つめの街にいったところで古代竜と戦おうとしているようなものだ
277 :
デフォルトの名無しさん:2011/12/09(金) 18:28:52.63
ものだね
的確すぎわろた
このスレにお世話になり、おかげさまでゲームを公開できる寸前のところまで来ました。
ゲームの「動作推奨環境」のサウンドの表記について質問があります。
ゲームは DirectX 9.0c を使って開発しました。サウンドは DirectSound を使用しています。
DirectX 9.0cを使って開発したので動作推奨環境に『サウンド:DirectSound8.0以上』という
表記は確かに間違ってはいないと思いますが、現在あまり使われていない表記だと思います。
★『A列車で行こう レジェンドパック』仕様・動作スペック
http://www.artdink.co.jp/japanese/title/LEG/ALP/ALP_spec.html ⇒ 対応音源 上記OS及びDirectSound8.0以上に対応したサウンドカード
ちなみに比較的最近のパソコンのゲームは下記の表記になっています。
★STREET FIGHTER IV(PC版)の動作スペック
http://www.capcom.co.jp/sf4/IV/pc.html ⇒ サウンドカード DirectSound対応 DirectX 9.0c以上対応
★FINAL FANTASY XIV(PC版)の動作スペック
http://www.finalfantasyxiv.com/media/recom/jp/pc.html ⇒ サウンドカード DirectSound 互換サウンドカード(DirectX 9.0c以上)
「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
好きではありません。
自分なりに考えたのですが、『サウンド:DirectSound(DirectX 9.0c以上)』という表記が
一番すっきりしていると思っています。
皆様方は、どう思われるか意見を聞かせていただけないでしょうか。
以上、よろしくお願いします。
好きにしろとしか
>「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
好きではありません。
じゃビデオカードはどう表現してんの
281 :
279:2011/12/11(日) 15:37:46.83
>>280 「ビデオ:DirectX 9.0c以上」です
282 :
デフォルトの名無しさん:2011/12/12(月) 00:27:17.55
うちのビデオはマックロードです
ビデオカードはDirectX9の全ての機能に対応してなくても
DirectX9対応って書いていいことになってる
だからその表記では不十分だ
普通はVRAM256MB以上とか、SM2.0以上とか
そういうことを書くものだ
284 :
279:2011/12/12(月) 05:03:06.56
レスをしていただけてありがたいのですが、
>>280の発言で
サウンドの話題からビデオの話題にすり替わってしまっています。
僕が知りたいのはビデオではなくてサウンドのみについてです。
>>280の一行目で既に答えは出てるだろ。
グラフィック機能もサウンド機能もマザーボードの機能ではないのだし
歴史的に考えればオンチップであっても「カード」表記で問題ないと思うが
(むしろビデオやサウンドだけのが混乱する)
個人的に好きではないというのなら「そうですか」としか。
286 :
279:2011/12/12(月) 09:43:54.38
僕の望んでいない議論がされています。
>>279にて下記余計な2行を書いたことは謝ります。
>「サウンドカード」という表記は「オンボードのサウンドチップ」が存在するので個人的に
>好きではありません。
質問の核心は DirectX 9.0c の DirectSound 機能を使って作ったゲームの
動作推奨環境に『DirectSound(DirectX 9.0c以上)』という表記が適切で
あるかどうかということです。
よろしくお願いします。
DirectSoundの表記なんて今じゃ慣例以上の意味なんてねえんだから
その他大勢に従っておけよ
お前の好みなんてユーザーは知ったこっちゃねえんだよ
>>286 汎用的な記法が欲しいのだろうけど、色々言われてる通り、一通りではないわけだ。
だから、一番大きなパイだと思うものをくいなはれ。それが最適解だから。
289 :
デフォルトの名無しさん:2011/12/12(月) 19:07:52.55
(´・ω・`)
ゲーム作っているんですがクイックソートって必要ですかね?
必要なら、たとえばどんな時必要ですか?
>>290 マージソート使いたいけどメモリが無い時かな。
テストで使う分にはバブルソートでも意外といけるからね。
O(N*((N-1)/2))で安定だし、表記も楽だし。
>>291 何を実装するときソート使うの?
教えろ
>>292 Zソートとか、プライオリティキュー実装するとか。
噂だと、アルファ付きポリゴン関係とか。
整列が必要なゲームシステムとか。そのチェックコードとか。
例えば何かをチェックするときにソート済みという条件であれば簡単にチェックできるという事があり得る。
>>293 なるほど。
CGのキャラクターを動かすのにソートとかって必要ですか?
たとえば、キャラクターが前転する時とか。
DXでは、Zバッファがあるので、基本、3D描画周りでのソートはハードが勝手にやってくれる。
2Dだと、Y軸でソートして描画したほうが奥行きが出て自然になるかも。
3Dのビルボードにしたらハードがやってくれるので関係ないかもだけど。
>>295は勘違いしてるね
Zバッファはソートはしないよ。
描画の際にピクセルの奥行き値(z)を比較して描画するかどうかを決めるだけ。
だからZバッファ。
ソートとは考え方が異なる。
ハードウェア側でバッファ最適化のためにソートすることはあるかもしらんが。
>>294 メッシュの事前最適化とかアニメーションキーの格納順が最適化されてない時とかには
使うかもだが、リグアニメーション自体にはあんま関係ない。
ていうかもう少し問題のフレームを絞れ
ID3DXBufferはビデオメモリ内に作られるんでしょうか?
全部システムメモリだょ
ありがとうございました
外部から1ピクセル分ずつ送られてくる情報を1画像分集まったところで画面に表示、ってのをやりたいんだけど、
1画像分集まる→テクスチャ作る→表示する→テクスチャ破棄する→1画像分集まる→テクスチャ作る・・・
ってやるしかない?
もっと高速にやる方法とかあるのかな
ピクセルより圧縮した画像データを送った方が安定して早い気がする
302 :
300:2011/12/15(木) 00:41:42.01
>>301 レスあり
送る側はとりあえず置いておいて、送られた側の処理時間を短縮したいのだわ
ちゅーかなんでいちいちテクスチャ破棄すんのよ
UpdateTextureでGPUにアップロードするのが普通だでよ
304 :
デフォルトの名無しさん:2011/12/15(木) 17:32:17.80
DirectShowってオワコンですか?
WindowsSDKに統合されたんだっけ?
つまりDirectXももうすぐオワコンに...
Dx自体はそろそろ11.1が出るんだっけか。Win8でDx12だっけ??
win8のが11.1で、今後はDXSDKの提供ではなくWindowsSDKに統合らしいよ
そうなんだ。ほぇ〜。
エアロとかも標準でDx使ってるからそういう扱いになるのかな?ふむふむ。
月間DirectXじゃなくなったしな
Vistaでも動くのかな?
そうなんですか。DirectXって何なんだったんだろう?
拡張ライブラリだったのが標準に取り込まれたのだろう。
エフェクトインターフェイスのGetFunction()などで取得したハンドルは何に使うんですか?
すみません。質問です。
DirectX9.0c + VC++2008 を使って作ったプログラムが異常終了して
下記のメッセージが表示されました。
▽▽▽
xxx.exe の 0x00412924 でハンドルされていない例外が発生しました: 0xC0000005:
場所 0x010e0000 に書き込み中にアクセス違反が発生しました。
△△△
0x010e0000 は何か特別な意味のあるアドレスのような気がしますが、
このアドレスの意味を、ご存じのかたがいらっしゃれば教えていただけないでしょうか。
まるち死ね
質問失礼します。
DirectX初心者なんですが、当方、Sampleフォルダ等にあるソースコードを見ただけで目眩がするレベルです。
このWinMain関数の処理やDirectInput等を別のソースファイルに追いやって、C言語のmain関数のように簡易に記述することって可能でしょうか?
自分でラッパーライブラリを書いてそれ経由でDirectXの処理を呼ぶようにすれば自分の好きなようにできるんじゃないかな
もしこれからもDirectXを使い続けるつもりなら、結局はWinMainでウィンドウプロシージャで
ウィンドウメッセージがうんたらという書き方に慣れるほうが近道だとは思う。
あとDXUTは「地道ではあるが退屈な」処理を肩代わりしてくれる関数群だけど、むしろDXUTが
見通しを悪くしているということであればDXUTを使っていないサンプルから手をつけていくとか。
(Tutorialの最初のほう or DirectX11未満のサンプル or June2010以前のサンプルか忘れたけどどこかにあるはず)
簡易に記述することは可能か?という問いへの直接の回答は
>>319さんのそれですね。
それかネットから他の人が作ったそういうのがあれば探してみるとか。俺は知らないけどありそうな気はする。
今年の10月頃から少しずつ始めました。
初の質問ですがよろしくお願いいたします。
ダイレクト9必携 鎌田茂雄さんの本を読みながら勉強してる初心者なんですが、
ビルボードで2Dアニメーションさせたい場合(例えば炎が燃えてるとか)
Xファイルの側でアニメーションさせたのを読み込むのがいいのでしょうか?
自分まだ計算が苦手でしてビルボードのしている物体の、縦、横の拡大率が出来ていない子なので
あわせて教えていただいたら幸いです。
驚いたことにテクスチャのある範囲をビューポート指定して、同じテクスチャの別の範囲をUV指定して、
UV指定した箇所をビューポートしていした場所へコピーやエフェクトを掛けることが出来た
が、やっぱGPUが対応してないらしくまた別の範囲で同じことやるとノイズが表示されるようになった。
レンダリングターゲットの変更やテクスチャセットの回数を減らすために同じテクスチャ内でやってみたんだけど
ここらへんのGPUの仕様ってわかんないよね、、だれかこれならうまくいくって方法知ってる?
>>318 DXUTから入るのはちょっときついから、入門書おすすめ
>>321 2Dアニメーションは一枚の画像(bmpで書いといてddsに変換)に1コマずつ書いて、UVを切り替えながら描画すればいいと思う
xファイルは3D専用だから2Dは関係ない、ビルボードはサンプルコードがネット上に結構あるのでそれを参考にすればいいよ。
rawOvalやDrawBoxで書いた図形を回転させたいのですがどうしたらいいでしょうか?
>>325 それならDXライブラリのスレもしくは掲示板にいって聞くが吉
てか三角形もしくは線で書けばいいじゃん
なにいってるの
>>322 そんなの偶然に動いてるだけで、
イリーガルな操作、ダーティな領域って奴じゃないのか
つまり逆の発想で、本来やってはいけない動作が、
動いてしまうGPUドライバが少し存在する
って感じ
常識で考えて、テクスチャレンダリングの手法が出てきて
更に国外含めて、皆最適化を散々追求してるのに
聞いた事もない手法だろ?
328 :
デフォルトの名無しさん:2011/12/27(火) 13:46:14.92
>>326 >てか三角形もしくは線で書けばいいじゃん
これこそ何言ってるのか、さっぱりわからん。
三角形や線で描いた3次元図形をある軸まわりに回転させたいんだろ?
同時変換形の回転移動行列は自分で用意しなければならないみたいだね。
ここまで用意してくれると便利だけどね。
任意の単位ベクトルnの周りにθだけ回転させたときの回転行列は
コンピュータグラフィックがロボット工学の教科書にのっていると
思う。
DirectX9.0cのD3Dで質問です。
ワールドマトリックスの変換を自分でやりたいので
Direct3D側を無効化したいのですが
// pD3DDev->SetTransform( D3DTS_WORLD, NULL );
これでいいんでしょうか?
>>329 NULLじゃなくて単位行列を渡せばいいよ
自分でやりたい行列渡せばいいのにいったいどうしたことだろうか?
>>330 目から鱗〜。ただ無効化はできないってことですね。
>>331 レイピックをやりたいのでワールド座標を自分で出すため
D3Dでも変換したら二度手間なのかなーと思い。
レイピックはレイをモデル座標系に変換するのが普通だぞ。
モデル座標には板ポリ(トライアングルx2)しかなくて、板ポリが大量にワールド座標に置いてあるんですが、
これでもモデル座標でレイと交差判定したほうがいいんでしょうか。
普通はメッシュに大量のトライアングルがあるのでモデル座標でやらないと
いけないのだと思いますが。
板ポリが大量にワールド座標と言っているが、
それがローカルなのかワールドなのかを決定するのは自分の処理次第じゃん
その言ってる状態から、更に板ポリ群全体を回転やら移動やらさせるなら
最初に言ってる座標系は、ワールドと数値が重なるけどローカルになるわけじゃん
例えば、モデル座標の板ポリ1枚をワールドに変換してるつもりが
それはモデル形成処理の内&ワールド処理は無いって考える処理の仕方もあると言う事
つか、シェーダー使えば?
普通にワールド -> ビュウ -> 透視変換のプロジェクションマトリクス渡す事になるから
それにワールドマトリクス単体も渡して頂点シェーダー内で処理すれば良いじゃん
頂点バッファを頻繁にLOCKする必要がある場合の使用フラグに関する質問です
D3DUSAGE_DYNAMICで作ったバッファをD3DLOCK_DISCARDでLOCKして書き込むのと
D3DUSAGE_WRITEONLYで作ったバッファをフラグ指定なしで書きこむのは
一般的に、どちらが高速ですか?
宜しくお願いします
339 :
デフォルトの名無しさん:2012/01/04(水) 19:38:43.98
DDSファイルの画像のプレビューってWindows7では対応していないよな?
DirectX SDKを入れてDxtex.exeをDDSファイルに関連付けしても表示できない。
ただしDxtex.exeを起動してファイルオープンから開くと見える。
一説によると、レジストリをいじくると関連付けでファイルクリックから表示できるようになるらしいな?
普通にDirectX SDKのインストールだけで対応しろよな。
マイクロソフトはアフォですか?
irfanviewってフリーウエアで見れたと思うよ。
341 :
デフォルトの名無しさん:2012/01/04(水) 19:40:53.88
関連付けするとAPPCRASHが出るんですけどw
何、このOS?
342 :
デフォルトの名無しさん:2012/01/04(水) 19:42:01.83
>>340 うそー?さっき入れて試したらエラーになった。
OSはWindows7の64ビット版だけどね。
343 :
デフォルトの名無しさん:2012/01/04(水) 19:43:24.33
32ビットで関連付けアプリを動かすのってどうするんだっけ?
344 :
デフォルトの名無しさん:2012/01/04(水) 19:46:33.29
いまさら配布版のSDKが2010年版で止まっているからおかしいとは思ったんだけどな。
Microsoft DirectX SDK (June 2010)が最新版だろ?
うざす。
>>342 自分もwin7home x64
ウルティマオンラインのエンハンスクライアントに入ってるdds読めるんだけど。あるぅえ??
圧縮フォーマットかな??
346 :
デフォルトの名無しさん:2012/01/04(水) 19:50:15.75
単純に関連付けした場合にAPPCRASH。
Dxtex.exeフォームアプリ上のファイルオープンでは開く。
これ、前々からそんな雰囲気だったけどな。
DDSって言ってもDxtex.EXEでPNGから変換したDXT1。
3Dアプリ上ではちゃんと動いてる。
347 :
デフォルトの名無しさん:2012/01/04(水) 19:52:17.43
348 :
デフォルトの名無しさん:2012/01/04(水) 19:53:17.24
俺の今使っているPC以外では関連付けで開くのかな?
>>346 なんか怪しいものインストールした記憶はないかい?
関連付けが壊れるときって大体OSがマズくなってる時なんだよなぁ・・・。
irfanviewで「礼文」と書いてあるのを確認した。
351 :
デフォルトの名無しさん:2012/01/04(水) 19:57:41.60
2048×2048で、2MB固定ってDXT1のテクスチャパターンだな。
APPCRASHさせてデータパクろうってのはマイクロソフトに対するUCLウィルスか米軍ウィルスか、何なんだ?って印象。
352 :
デフォルトの名無しさん:2012/01/04(水) 19:58:13.54
出るじゃん?参ったね。
353 :
デフォルトの名無しさん:2012/01/04(水) 20:01:52.12
しょせんパクって書き換えたテクスチャデータで出元は米軍系なんだけどな。
本当に欲しいのはメッシュデータだろ?
三菱系とか、いくらでもチェックされてそうだよな?
354 :
デフォルトの名無しさん:2012/01/04(水) 20:03:54.60
参考になった。どうもありがとう。
355 :
デフォルトの名無しさん:2012/01/04(水) 20:15:48.77
障害モジュールの名前: MSVCR100.dll
って出てた。パスが通っていないのか?と思ってコピーしたけれどもダメだな。
x64のフォルダのDxTex.exeでもx86のフォルダのDxTex.exeでも一緒みたい。
・・・もしかしてバージョン違い?
356 :
デフォルトの名無しさん:2012/01/04(水) 20:26:58.89
PNGからDxTex.exeに関連付けしても同じエラーが出てるな。
・・・うーむ。
クソだな
もうDirectXなんて使うのやめよう
俺はunity使うよ
358 :
デフォルトの名無しさん:2012/01/04(水) 20:59:28.83
レジストリエディタregedit上でDxtexで調べたら、全部x86のファイルを参照していた。
エラーが出るので、x64フォルダのDxtex.exeを関連付けしても、レジストリ上に反映されないらしい。
・・・もしかしてx64とx86でレジストリが別なのか?
なぜx64のフォルダ上に実行ファイルがあるのに、x86フォルダ上のものを参照するように指定してあるんだろう?
359 :
デフォルトの名無しさん:2012/01/04(水) 21:05:05.26
MSVCR100.DLLは
今使っているPC上ではファイルバージョンが
10.0.30128.1
のものと
10.0.30319.1
のものがあった。
10.0.30319.1
はVC++2010に添付されていたものだな。
10.0.30128.1
はさっきのテクスチャを利用しているアプリにこっそりと添付されていたものだろうな。
Dxtex.exeがパス指定もなくある特定のバージョンのものを勝手に参照している可能性か?
勝手に総なめしているのか?と思って古いものを消しても、動かなかったようだ。
障害モジュールのバージョン: 10.0.40219.1
って出てる。いったい何を見てんだよ?内蔵して固定にしてしまったのか?
しかし問題点は、関連付けでのエラー問題に過ぎないぞ。
360 :
デフォルトの名無しさん:2012/01/04(水) 21:11:22.76
もしかして、ATIがドライバインストール時におかしな改変を入れているのか?
そうなのか!?ほんとうにそうなのか?
たとえばNVIDIAのVGAボードが特にないのでなんとも言えないが、本当にそうなのか?
しかもCCCインストール時になにかをインストールしているように見えるが、それなのか?
11.0>11.1に追加されたのってどこみればいいんだい?
irfanviewでddsは拡張パックを入れないと見れなかったと思う
365 :
デフォルトの名無しさん:2012/01/05(木) 19:29:27.33
へえ
366 :
デフォルトの名無しさん:2012/01/07(土) 10:23:05.22
ほう
DirectXの関数(D3DXも)って、内部でSIMD命令による128bitベクトル演算を行ってるでしょうか?
だとしたら、処理速度、堅牢性から、積極的に使用したいと思っています。
(対するOpenGLも気になります)
行っている。
D3DXMATRIXA16 time = 0.005056 : Gflops/sec = 2.903717
XMMATRIX time = 0.002452 : Gflops/sec = 5.986870
自作matrix4x4(SSE 32bit) time = 0.003341 : Gflops/sec = 4.393590
自作matrix4x4(FPU 32bit) time = 0.014704 : Gflops/sec = 0.998358
369 :
367:2012/01/09(月) 00:49:45.16
>>368 ありがとうございます!
自作されているとはすごいです。
それを上回るXNAのマトリクスがすごいですが、
D3DXMATRIXA16が遅めなのが気になりますね・・・。
RenderTargetのサーフェスとってきて
それをテクスチャにコピーしてスクリーンショット撮ろうとしてるんだけど
結構うまくいくけどたまにデットロックしてるのか
D3DXLoadSurfaceFromSurface
が終わらないって言う事が起こります
描画関数呼ばれないようにはブロックしてる
画面出力時に飛んでるのか…
別にRenderTarget(画面出力用のサーフェス)のSS取れればOKなのですが…
372 :
371:2012/01/09(月) 22:09:46.15
IDirect3DSurface9* back;
if(FAILED(_device->GetRenderTarget(0, &back)))
//エラー
D3DSURFACE_DESC desc;
back->GetDesc(&desc);
if(FAILED(handle->GetSurfaceLevel(0,&dest)))
//エラー
D3DSURFACE_DESC destdesc;
dest->GetDesc(&destdesc);
if(destdesc.Format!=desc.Format||destdesc.Pool!=D3DPOOL_SYSTEMMEM)
//エラー
if(FAILED(_device->GetRenderTargetData(back,dest)))
//エラー
そのあと
GetRenderTargetDataに変えてみましたら100%失敗するように…
handleはテクスチャのポインタです
これでうまくいかない…
エラー処理は省いてます
GetRenderTargetDataでエラーでてるっぽいです
エラー内容をちゃんと調べようよ。
エラーは出なくなりました
ウィンドウサイズが800*600だと表示部分も800*600だと思ってた…
その後取得できたサーフェスを
UpdateSurfaceでテクスチャのサーフェスにコピーする事はできましたが
この取得したサーフェスをReleaseするところで固まりました…
だいたい1/3程度の確率です
解決しました
デバイス作成の設定が変だったらしいです
http://headlines.yahoo.co.jp/hl?a=20120110-00000060-yom-soci 大阪の3放送局、看板やガラス壊される被害
読売新聞 1月10日(火)1時34分配信
大阪市内の3放送局で9日夜、看板などが壊される被害が3件、相次いだ。
現場にはコンクリート片が落ちており、府警が器物損壊容疑などで関連を調べる。
9日午後7時25分頃、大阪市福島区福島の朝日放送の警備員から「ガラスが割られた」と110番。福島署によると、
同社1階北西のショーウインドーのガラス1枚(縦3・8メートル、横1・5メートル、厚さ2・2センチ)にヒビが入っていた。
ガラス下にコンクリート片(縦18センチ、横10センチ、厚さ10センチ)1個が落ちており、警備員は通行人から「自転車
に乗った人が、何かを投げていた」と聞いたという。
また、同日午後8時頃、同市北区茶屋町の毎日放送でも社屋外のプラスチック看板が割られ、近くにコンクリート片
が落ちていた。同11時30分頃には、同市北区扇町の関西テレビの建物でも、ガラスが割られているのを警備員が見
つけた。
最終更新:1月10日(火)1時34分
読売新聞
板違い荒らしめ・・・
×荒しコピペ
○啓蒙活動
D3DXMATRIXとD3DXMATRIXA16ってどっちを使うべき?
XMMATRIX
節子、それDirectXやないDXライブラリや!
>>384 という感じに、これぐらいのレベルですので
初心者でもわかりやすいページを教えていただければ幸いですw
DXライブラリのスレで聞いてください。
DirectXの入門向けのWebサイトは内容古いものが多いんじゃないか?
普通に本買えよ
本を買え
チュートリアルじゃ不満かね
390 :
383:2012/01/11(水) 22:05:02.65
いや、ちょこっと趣味でプログラムはじめてみようとHSP使ってみたんですが、
ちょこっとマップチップ並べるだけで、滅茶苦茶遅くて・・・
どうも素の状態のHSPはCGの処理と配列の処理が遅いみたいですね
で、プラグインでDirectx仕込むものがあるんですが、
どうせならHSPで覚えるんじゃなくて、Cで覚えて行った方がいいかなと思いまして
で、変に自分だけで探して偏った知識を身につける前に
一般的に広まっている開発環境を聞いておいた方がよいかな?と思いました
のちのち、行き詰まった時に調べやすく、サンプルなども探しやすいものがあれば・・・
色々、ワガママを言ってすみません
>>390 方向性が見えない
マップチップで常識的な速さ出すには地味な技術が必要だぞ
マップチップが時代にあってないっつーかそんな感じだと思っていい
このまま2Dでいきたいならドカっと絵を貼ってしまったほうが
いくらか見栄えがいいゲーム作れるぞ
っていうかマップチップってメモリ節約技術だろ?
いまはSTGだって背景に動画流してたってまだメモリ余るのに
お前何やりたいわけ?
>>391 箱庭ゲーみたいなものを作ろうとしおりまして
画面上に自分中心にしてxyz=32:32:16のマップチップを並べて
彷徨きまわる所まではHSPで出来たんですけどね
HD5770のビデオカード、ノーウェイトで実用ギリギリの速度なんですよ
これから先、NPCやらMOBやらオブジェクトなど置いたら恐らく
遊べる速度じゃなくなると思いましたので・・・
しかし、今どきのSTGって背景動画流していたんですね・・・
カルチャーショックうけましたw
マップチップいいんじゃないの?
800×600 の画面として、縦横10画面分のフィールドを作るのに 8000×6000 分の画像を作れと?
店を5件建てるのに、5つも店の絵を描くのも面倒だし、全く同じ絵をコピペするのも格好悪いし、1回描いたら変更面倒だし、
マップチップ並べた方がまだ見栄えがいいかもよ。素材を作る人が別にいるのならいいけど。
地味な技術が必要なのは同意。
チップじゃなくても2D横スクアクションの同じ木が一定間隔で並んでる・・・みたいなのでもいいんだろ?
そんな概念で作ったらいいじゃん
395 :
デフォルトの名無しさん:2012/01/13(金) 13:19:48.80
質問いい?w
どうにかアニメーションや当たり判定は出来て、箱庭アクションゲーは作れました。
で、起伏のある地形を高さの値をとってキャラを動かすことはできたのですが、
どうしてものめり込んでしまうんです。あとアニメーションが合わない。
物体であれば誤魔化せるんですが、キャラだとやはり不自然です。
IK法とか「斜面、ボーン、directx」とかのクエリで検索してみても、情報はほとんどない。
これは俺の考え違いで、もっと簡単な方法があるものなんでしょうか?
それともプロのゲーム屋は、商用ライブラリを使っていて、個人規模のゲームプログラミングでこのあたりまでやるのは無謀なんでしょうか?
道筋や大体の方向性だけでも分かる人がいたら教えてください。
「ゲーム IK」とかでググったらそれっぽい情報が出てくるけど少ないか
本格的にやるなら本を買うのが楽じゃないかな?高いけど
WinGDIのSetPixelみたいに、テクスチャの色を直接書き換えたいんですが、どうすればいいですか?
D3DLOCKED_RECTを使ってD3DLOCKED_RECT::pBitsの値を書き換えたら一応色は変わるんですが、
テクスチャの画像自体を書き換えてるわけじゃなく、あくまで色が変わってるだけみたいで、やりたいこととは違いました
よければ、画像から読み込んだ場合の画像のデータ自体はどこに格納されているのかを教えてもらえると助かります
>>397 そのpBitsに格納されてるけど…
テクスチャの色が変わるって画像書き換えとどう違うの?
>>398 例えば画像全体を赤色に書き換えたつもりでも、元の画像に赤を加算合成したような画像にしかならないんです
調べてもイマイチ参考になるページがなくて、試行錯誤で無理やりやってたからデータ型を間違っていたのかも…?
現在はロックしたあと以下のように書き換えてます
unsigned short *p = (unsigned short*)lRect->pBits;
p[y * (lRect->Pitch / 2) + x * sizeof(unsigned short)] = unsigned short(D3DCOLOR_XRGB(r, g, b));
400 :
デフォルトの名無しさん:2012/01/13(金) 18:53:00.88
スレ違いかも知れないが
ソーシャルゲームって殆ど2Dだと思うんだけど
どうやって効率よく描画しているんだろう
そもそもソーシャルゲーに効率のよい描画なんて必要ないんじゃね
っていうか
リアルタイムで動かしちゃダメだよね
結構リアルタイム性のあるアクションゲームとかあるじゃない
初歩的なことで申し訳ないんですが、現在DirectX9.0cを手に入れたいと思っているのですが、
これは海外の公式サイトから落とせるSDKで構わないのでしょうか?
最新版を入れても互換性で動くよ。ヘッダさえあればね。
韓国の原研職員ら 液体ナトリウム研修 福井
韓国原子力研究所の職員ら6人が16日、日本原子力研究開発機構の国際原子力情報・
研修センター(敦賀市)で、液体ナトリウムの取り扱いに関する研修を始めた。20日まで。
韓国は、福島第1原発事故後、原子力政策の積極的な推進を明示。
平成40年に高速炉の原型炉(出力60万キロワット)、52年頃に商業炉(同120万キロワット)の運転開始を予定している。
また、ウラン・プルトニウム混合酸化物(MOX)燃料の装荷と増殖実験は、今後の米韓原子力協定の見直しで決まる。
昨年秋には、ナトリウム試験ループ施設を建設。将来的に世界中から研修生の受け入れを計画しているという。
http://sankei.jp.msn.com/region/news/120117/fki12011702140004-n1.htm
中韓露が高速増殖炉に手を出しても
なぜか騒がない日本の反原発団体
原子炉がこのスレに何の関係が?
ここは日本ですが?
日本の国民の中には、外国の事情がある程度分かっている人を除けば、
放送内容を信頼している人がまだいることは確かだ。一方で、ネット
住民たちのほぼ全員が、放送番組には政府の意図が色濃く反映されて
いることを知っている。自分の国がどういう国かということが、よく
分かるようになってきているのだ。
>>412 そりゃ君の住んでる国のことか?
ここのサーバは北米だし、運営者は東南アジアなんだが
在日が必死すぎてワロタ
これが世界一の速さだ!スーパーコンピュータ『京』のスゴさを開発現場から徹底解明
http://live.nicovideo.jp/watch/lv77717027 【会場のご案内】
2012/01/19(木) 開場:18:50 開演:19:00
科学技術立国ニッポンが世界に誇る、
“世界最速”スーパーコンピュータ『京』。
一体どんなもので、どういう現場で開発されているのか!?
ニコ生が徹底的にレポート。
理化学研究所と富士通が共同で開発中の『京』は、
しれつな開発競争が続くスーパーコンピュータの
計算速度の世界ランキングで、
2位の中国(毎秒2566兆回)、3位の米国(同1759兆回)を大きく引き離し
2期連続で世界一を獲得。
その計算速度はなんと毎秒1京回(1兆の1万倍)。
スパコン『京』が本格稼働されれば、
幅広い分野で複雑なシミュレーションが短期間で可能になり、
生命科学や医薬、新物質、防災・減災、宇宙などの分野でも期待される。
なぜそんなに『京』は速いのか?
もはや人知をはるかに超えるその速さで『京』はどこに向かうのか?
今回のニコ生では、スパコン『京』の開発現場である、
理化学研究所・計算科学研究機構(所在地:神戸市)にお邪魔して、
『京』の実機と一般人は滅多に踏み入ることができない舞台裏を徹底レポート。
スレ間違えたかと思った
koreahahidoi
HLSLでTANGENTとBLENDWEIGHTを同時に持つ頂点構造体を設定する
状況というのはありえないでしょうか?
スキニングを行うときはNORMALしいてはTANGENTが変わるわけで
スキニング前のTANGENTを設定しても意味がないと思うのですが。
MSDNのどっかにバンプマップ+スキンメッシュのコードがどっかにあった気がする
>>420 tangentもbinormalも一緒に変換しないと法線マップはれねーだろ
>>421-422 ありがとうございます。
normalが決定すれば、tangentもbinormalも決定すると思っていたのですが、
それは間違いでしょうか?
私は、normal以外は必ずしもいらなくて、tangentなどは変形が必要
ないモデルにおける事前計算値くらいに捉えていました。
それで、どうせスキニングするなら、
HLSL側でbinomalとtangent計算したほうがいいんじゃないかと、
思って
>>420を書いたのです。
fpsの数値で質問があります。
while( msg.message != WM_QUIT ){
if( PeekMessage() ){
TranslateMessage();
DispatchMessage();
} else {
Clear();
if( SUCCEEDED( BeginScene() ) ){
EndScene();
}
Present();
}
こんな感じのループを使うとfpsがだいたい60くらいになるのですが、
VisualC++のアプリケーションウィザードを使うとfpsがすごく速い数値(1000くらい)になるのはどうしてですか?
>>423 >normalが決定すれば、tangentもbinormalも決定すると思っていたのですが、
しねーだろ
tanとbinはuv座標からしか出ないだろ
tangentspaceは法線をテクスチャ上の座標に変換するためのもんだぞ(たしかwハンパな知識ですまんw)
じゃなきゃ凹凸わかんねーじゃん
HLSLは
スキンメッシュで出来た行列をtan、bin、norにそれぞれかけて移動してやるみたいな感じだった気がするぜたしか
嘘いってたらすまんこ
>>426 ありがとうございます。私勘違いしてたみたいです…。
一応、検証して頂くために今使ってるtangent binrmalの計算を書きます。
このコード、そもそも間違ってるのでしょうか?
float3 tangent;
float3 binormal;
float3 c1 = cross(input.Normal, float3(0.0, 0.0, 1.0));
float3 c2 = cross(input.Normal, float3(0.0, 1.0, 0.0));
if (length(c1)>length(c2))
{
tangent = c1;
}
else
{
tangent = c2;
}
tangent = normalize(tangent);
binormal = cross(input.Normal, tangent);
binormal = normalize(binormal);
>>427 フレーム管理をしないで60くらいの数値です。
DirectXは自動で60くらいに合わせてくれるのですか?
もし自動で合わせてくれるとしたら、その機能をなくす方法はありますか?
ん〜わけわからんくなってきた…。
調べてきたら、やっぱり
>>428あってるような気がしてきました。
誰か下の記述の誤り指摘お願いします。
TBN(tan,bin,nor)ってのは俺俺xyz軸。
TBNにUVが必要なのはheightmapからの変換。
それはUV座標間のheightの勾配を取得してnormal計算するため。
normal=Y軸が決定すれば直交するXZ決定する。それが
>>428 頂点構造体にTBも含める方法は、VRAM消費増だが、
>>428にかわり、mul(input.binormal, (float3x3)skinning);
mul(input.tangent, (float3x3)skinning); ですむ?
もし
>>428の方法が正しいとすると、頂点構造体にTBを含める方法と
>>428ではどちらが重いと考えられるでしょうか?
>>429 CreateDeviceに渡すD3DPRESENT_PARAMETERSのPresentationIntervalを弄る。
具体的に何を指定するかはドキュメント見れ
>>430 notmal が決まればXZ平面は決まるが、X軸Z軸は決まらない
>>431 ありがとうございます。
一通り指定してみましたが
指定したものによってはエラーが出たり
40くらいに下がりました。
ほかに変更しなければいけないところはありますか?
D3DPRESENT_INTERVAL_IMMEDIATE 指定すればモニタの周波数がん無視でpresentでのウェイトは無くなるんだっけ?
ノーマルマップなんてシェーダーが出てきた頃に
見栄えが良い処理の中で、一番簡単に出来る処理だと思ったんだけどな
タンジェントベクトルは、ノーマルマップのU方向と揃える(且つ法線と直角)
そのタンジェントベクトルと法線から外積で従法線を求める
この3ベクトルを基底にした変換を行う(ライト等を接空間へ)
でタンジェントベクトルは、ポリゴンの三頂点座標とUV値から求める
(UVのU方向を求める、詳しくはググッてくれ)
で高さ(ハイト)マップでなく、ノーマル(法線)マップな
シェーダーでサンプリングして取り出した値は法線が入ってる
(0〜1の値になってるから、2倍して-1をして、-1から1に変換する)
でピクセル毎に、接空間へ変換したライトとノーマルマップの法線で
ライティングをする事を、ノーマルマップシェーダーと言う
もう10年近く昔の技術なんだけどな…
>>436 >(UVのU方向を求める、詳しくはググッてくれ)
質問者が知りたいのはここだけなんじゃね
簡単じゃねぇよ
接空間を求めるのがやばいぐらい難しい
ばっちりそのものの回答が載ってるのはあの天才が書いた
3Dグラフィックス数学の本しかみたことない(日本のしか読まないからかも)
ちなみに仕事で組めって言われたときは接空間を求める式は
その本の式をまるパクリしたw
それとそれを扱うのもやたらと面倒臭い
スキンメッシュなんて絡んでくるとわけわかんなくなる
シェーダ何枚書く必要あるんだ?って思った
DirectXの関数にないのかなぁ?とおもったらあったけど
http://msdn.microsoft.com/ja-jp/library/cc372824.aspx D3DXComputeTangent 関数
使ったことねぇけどずいぶん昔からあるじゃねぇかぶっ潰す
本を読んで理解出来ず、まるパクリするレベルだと
やばいくらい難しいかもね
式まで載ってる本を読んで、スキンメッシュも理解してるなら
わけわからない事もないだろ
オペレーターちゃんは開発者をきどらない方が良いよw
>>440 じゃ、パパッとスキンメッシュ+バンプの入ったHLSL書いてみなよ
2chのレスに収まる範囲のはず
暗記してるのと理解してるのは別だろ
会社行ってソース見れば改造でも説明でもしてやるよw
それからバンプマップとノーマルマップは全然別の技術だからな
その間違いしてる時点で理解してねーの丸出しだよ
あと概要だけ言うと、スキニング時に頂点を動かしたら法線も再計算する
その法線をトランスフォームする行列をタンジェントにもかけるだけ
(うちのシェーダーは法線とタンジェントの頂点情報で、バイノーマルはクロスで出す)
つまり、スキニングが理解出来てれば、ノーマルマップをプラスされた所で全然問題ない技術同士なんだけどなw
>>442 だからその処理HLSLでここに収まる行数でかけるって
やってみろよ
できねーなら黙ってろよ低脳
みんな仲良く
コピペ君は、説明してるのにソースが無いと駄目なんだねw
まるパクリしてやばいぐらい難しいとかわけわかんなくなるとか言ってる奴は
説明してる人間より低脳なのは間違いないしそちらが黙るべきなのは真実
みなさん、DirectX11プログラミングにはどのバージョンのVC++を使われていますか?
VC++2010が最適とかありますか?
スレッドにシェーダー記述が収まる事と、理解して使いこなせてる事は
まったく別の事
それを頓珍漢に要求してる時点で、コーダーレベルの必死君にしか見えない
大方、会社のソースを家に持って帰ってきて
秘守義務違反をなんとも思ってない最下層オペレーターなんだろw
単にそんな簡単ならHLSL部貼ってみろって言ってるだけで大した要求してないのに
いざ出せっていうとこの騒ぎ
馬鹿だな馬鹿
できねーならレスつけんなよ
お前、邪魔
>>447 普通に新しいやつ使えばいいと思う
PCスペックが微妙なせいで2010が重くて、
2008を使っている人はいると思う
理論のすり替えだなw
HLSLをアップする事と理解している事は、まったく別の事
あと文章がおかしい
>単にそんな簡単なら
以前のレスのどこに簡単と記述してある?
>HLSL部貼ってみろ
お前が会社のコードを家に持って帰ってきてるモラルなしだから”貼る”だけなんだろw
>大した要求
モーション情報と頂点フォーマットは会社の独自技術が多い
そんなのをアップ出来るわけねーだろ
>いざ出せっていうと
なんだ?”いざ”ってw
出す前提で顔真っ赤にしてるのはお前だろ
よっぽど”開発者きどり”ってのが頭に来たのか?w
なんの話をしているのかすら分からないが、451が組めないのだけは分かった
Tangentってシェーダーで生成するもんなのか?
シェーダでやるのはmulするだけだろ?
>>452 絶対組めないよねこいつ(
>>451)
そんな長文書く暇があったらシェーダの1つぐらい組んだらいいのにねw
>>439 楽しく喧嘩してるとこ悪いんだけど、その3Dグラフィックの本ってなんていう本?
>>456 3Dグラフィックス数学
でググレば出るだろ?
>>457 ああ、「3Dグラフィック数学」のことか。それなら読んでた
日本人が書いた3Dグラフィック数学の本があるのかと思って。勘違いでした。
>>458 じゃあ、なんで接空間の出し方わからないの?
>>458 自分もバンプマップの実装で困ったとき、2ちゃんで教えてもらったその本を参考にさせてもらった。
懐かしい。
>>459 自分は質問者とは別人です
接空間は随分前に自分で実装したのがあるんだけど、もっといい方法があるかなら調整したいから気になった
軽くググっても他の人どうやってるか見つからなかったので
やってることはこの本と同じ感じなんだけど、みんなこうやってんのかなと。
それにしちゃググってもヒットしなさすぎだし。自分だけ無駄なことやってんじゃないの(不安)みたいな
こんなレベルでゲーム会社入れるの?
川西さん亡くなっとるやないけ…
どの川西さん?
MSの川西裕幸亡くなったのか
しかも事故かよ
ご冥福
ご冥福で検索してよかった。かもしれない。慣習化してるからいいのかな。
お悔やみ申し上げます
マジか
お悔やみ申し上げます
直接あったことはないけどね
DirectX使ってると必ず名前目にするよね
ただでさえ酷かった開発関係の日本語情報の放置プレイが一層酷くなるのか?
日本のプログラマの裾野が無くなっちまうよ
惜しい人を亡くしてしまった・・・。
なんかすげー悲しい。
残念だな・・・・
ネット上であまり反応無いのもびっくりだわ
すみません。質問です。
WndProc と MsgProc の違いって何ですか?
Window Message Procedure として動作する関数の名前としてよく使われる。
略し方の差だろ。
これでいいのかな
Windows7proでDirectX9を使っています
ディスプレイは1920x1200と1280x1024のマルチです
ウィンドウとフルスクリーンの切り替えを行う際
D3DPRESENT_PARAMETERSのWindowedをFALSEにして
ウィンドウ1280x720からフルスクリーン1920x1080に変更してまたウィンドウ表示に戻すと
7の機能であるタイトルバーなどの透過が無効になってしまいます
フルスクリーン時のサイズが1280x720など小さい場合には発生しません
D3DPRESENT_PARAMETERSのWindowedがTRUEの場合にこの現象は発生しません
発生原因、出来れば対処法はないでしょうかよろしくお願いします
.ni 7 / \ ご冥福をお祈りします
l^l | | l ,/) / /・\ /・\ \ .n
', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /)
/ 〈 | (_人_) | | U レ'//)
ヽっ \ | / ノ /
/´ ̄ ̄ ノ \_| \rニ |
`ヽ l
480 :
474:2012/01/26(木) 21:24:57.09
誰か分かる方いらっしゃらないですか
>>480 プログラミングの半分は楽しいデバッグ作業。自分でやろう
わかんねえ
>>474 D3DCAPS9::GuardBandLeft あたりだったかな…最終的な頂点座標の限界
自信ないや
485 :
474:2012/01/27(金) 10:42:53.51
シェーダ言語がデバッグできなくて値がどうなっているのかわかりません。
32bitテクスチャを入力し、{0,0,255,255}のピクセルを指定する時、
int4 pix = tex2D()でpix.aは255、float4 pix =tex2D()ではpix.aは1.0に
なりますか?
また、16bit*2にわけて値を取得したいのですが、
int value1 = pix.rgでvalue1は0、int value2 = pix.baでvalue2は65535
になりますか?
というか結局やりたいことは
32bitのfloatを、テクスチャのrbのみの16ビットに劣化保存させ、
それを16bit相当のfloatに復元する、ということなのですが、
それを教えて頂けないでしょうか。
整数型であれば、R = depth;B 256.0 * depth;をして R + G / 256.0で
復元できるようなのですが。
なんでXファイルのサポートやめちゃったんですか??
方言が多いからなんじゃないかな
【中国BBS】2030年に韓国が日本を抜く? 反対意見が多数
中国大手検索サイト百度の掲示板に、「2030年に韓国のGDPは日本を追い越すって本当?」というスレッドが立てられた。
これに対して反対意見が多数寄せられている。
● スレ主:八戒窘6
アジア開発銀行のデータによれば、2030年に韓国のGDPは日本を追い越すらしい。
● せんとう
どんな予測も多少なりとも正確ではない所があるが、今回の話はあり得なさ過ぎる。
● satay醤
本当にデタラメだな。アジア開発銀行によるレポートだって?じゃあバンク・オブ・アメリカや欧州の銀行の結論はどうなのよ?
● 佚名野菜地
アジア開発銀行ってのは、韓国人が開いているのか?
● Joseph19969
俺の妄想では、2100年日本人の1人当たりのGDPは46万ドル、韓国は8万だな!
● o落葉不知秋o
その頃までに韓国という国が残っているかどうかも分からないぞ。
● 梨花陰凉
死んでも信じない。
● MakiのLove
なんか最近、韓国のニュースが多くね?
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0128&f=national_0128_091.shtml
491 :
488:2012/01/29(日) 03:06:31.92
>>489 そういうフォーマットは扱いにくいですよね・・・。
しかし標準を一切設けないようにしたとは(汗)
25日、YOMIURI ONLINEが配信した『情熱と郷土愛の赤・各務原キムチ…岐阜・各務原市』という記事に
「日本人が最も食べている漬物はキムチ」との一文があり、ネット掲示板で物議を醸している。
同記事では、「平成22年の野菜・果実漬物の生産量873万トンのうち、キムチは191万トンで約22%を占め、
浅漬の155万トンを上回る(食品需給研究センター調べ)」とあり、キムチと日本人の関係についても
「キムチやコチュジャンの味に日本人の舌はなじんでいる」と書いている。
この記事を受け、ネット掲示板では「日本人が最も食べているのは梅干しではないのか?」
「漬け物くらい自分の家でできるのだから、市販の生産量と実際に消費された量は違う」など、
「日本人が最も食べている漬物はキムチ」とした一文への批判が殺到した。
また、記事中の「キムチやコチュジャンの味に日本人の舌はなじんでいる」とした部分にも違和感を感じたユーザーは多く、
「そんなもの人それぞれだろう」「キムチなどの辛いものが食べられない人って結構いると思うけど…」
「なんでキムチをこんなにごり押しするの? 気味が悪い記事だ」など、疑問の声が相次いでいる。
ネット掲示板では、キムチよりも日本人の舌になじんだ漬物として、梅干し、たくあん、浅漬け、
野沢菜などの名前が挙がったが、記事と同じように「キムチこそが日本人の舌にもっともなじんだ漬物だ」と主張するユーザーはほとんどいなかった。
http://news.livedoor.com/article/detail/6226414/
DirectXはXNAでポリゴンを表示したことがあるくらいの初心者ですが
Nicortというソフトはデスクトップに文字を表示しています。
こういったことはどうやったらできるのでしょうか?
あれはDirextXなんかつかってたか?
WPFじゃねーの?
あ、そうですか。
なんか起動したときにDirectXを使います。みたいな
メッセージボックスが出てきたので。
どっちも使ってると思ったけど
497 :
デフォルトの名無しさん:2012/02/01(水) 05:30:59.11
ディスプレイの周波数と同期とるのやめたら平均990fps出てワラタ
クビチョンパ公認かよ
内容見てねぇな
質問させてください。
visual studio2008でC++、DirectX9.0cを使用し、シューティングを作っているのですが、
実行環境によって敵機を大量に出したときに激しく処理落ち(fps60→fps30)してしまいます。
処理落ちする環境
・windows7 + GTX470
・windowsXP + GTX460
処理落ちしない環境
・windows7 + 9600GT
・windowsXP + 9600GT
処理落ちしない環境があるということは重いコードを書いているからではなく、
グラボがDirectX9.0cに対応していないという認識で合っていますでしょうか。
また、上記の処理落ちする環境での処理落ちを改善する方法はありますでしょうか。
よろしくお願い致します。
機体はポリゴンなのそれともテクスチャなの?
>>501 レスありがとうございます。
敵機はxファイルを使用したポリゴンです。
その構成でポリゴンで処理落ちって、省電力モードでもなければなんだろう・・・。
GTX(フェルミ)コアのシリーズは、GPGPUによる計算(スパコンのような)を目指していて
ゲームに向かないと聞いた事がある
なのでDirectX11初期の頃にNVIDIAはRADEONに押されまくって
ようやく出したGTXシリーズも、ゲームのベンチマークでRADEONに負けまくった
って聞いた事もある
テッセレーションの処理が大量にあるような(CPU <-> GPU)ケースは
RADEONより有利とか、そもそもRADEONと目指している所が違う
(GPGPUによる、現状のスパコンに迫る機能を、低コストで提供)
とか言ったアーキテクチャ解説を見たような
つまりピクセルフィルレートとか言ったゲーム向けは
GTと言った旧シリーズやRADEONが有利なんじゃないかな
あー良く見たら、GTX460もGTX470も、価格レンジは一番ロウスペック帯じゃん
それそんなに性能良くないよ、ひと昔の前のハイスペック帯のグラボに余裕で劣るよ
9600GTって9800GTXの直ぐ下のモデルだよね
結構ハイスペックだったような?
ベンチではそれらよりも460のほうが余裕でハイスコア
単にCPUが足りてないだけと思う
メッシュのインスタンス化とかでググればいいと思う
タイマーの分解脳がうんこってるだけじゃないかと予想
去年の正月にi7 870+GTX470マシンを買ったばかりなのに
もう時代遅れかよorz
511 :
500:2012/02/02(木) 11:54:37.86
みなさんレスありがとうございます。
>>507 一応、上記の処理落ちする環境の1台のCPUはi7 860ですし、
処理落ちしている状況でタスクマネージャでCPU使用率を調べてみましたが、
20%にも満たない状態でした。
>>508 Sleep()で寝すぎているとかそういうことでしょうか。
頭悪くてすみませんが、詳しく教えていただけないでしょうか。
かいつまんでいうとtimeBeginPeriod(1) を初期化処理当たりで実行してみてかわらなかったら関係なかったということで
DirectX9で.fxファイルを使ったエフェクトを勉強しているのですが
fxファイルによるエフェクトを複数重ねる、ということは出来ないでしょうか
というのもすべてのポリゴンで共通なスキンメッシュ用のfxファイルと
それぞれで使い分けたい視覚効果的なfxファイルを分割できないかと思うのです
ひとつのfxファイル内に条件分岐で各々の効果を分けるのは出来るんですが
そうではなくて上記のように分けたい部分だけ分割できるような方法があったら
「このワードで検索しろ」とか大味な回答でもいいので教えてください
お願いします
動的に変えるってこと?
517 :
514:2012/02/04(土) 12:16:30.13
>>516 私でしょうか、動的に、ということではなくソース分割のようなことがしたいわけです
@頂点シェーダ.fx AピクセルシェーダA.fx BピクセルシェーダB.fxがあったとして
モデルAは@とAを適用モデルBは@とBを適用、という感じにしたいということです
あるいはC頂点シェーダがあって@でスキンメッシュの計算を行っているのなら
CにPOSITIONやNORMALを入力できれば@では考慮すべきBLENDINDICESやBLENDINDWEIGHTを排除して物を考えれると思うのです
今は@AB(上に順ずるなら@の中でCも)を内包した.fxファイルをひとつ用意してモデルA,Bに応じてフラグで分岐してる状態です
fxファイル内で行ってるアウトプットを次のfxファイルでインプットとして受け取るにはどうしたら良いか
そもそもそういうことが出来る仕様なのかどうか、ということになるでしょうか
え?課題っていうほど特殊なことなの?
俺は普通に複数のI3DXEffect使ったり複数のパスやテクニックでやってたけど
それって何か問題あったりするの?
シェーダプログラムを全通り作ればよい
命令と定数があるだけだから1万種類つくってもメモリは数MBですむでしょう
俺もいろいろ工夫してみたけど
頂点ストリームで必要な分だけ送るぐらいなもんで
後はシェーダで関数化に力いれるぐらいで
他はベタ書きで全通り作ったわ
たしかプロジェクトで200個ぐらいになった糞ゲだったけど
シェーダマクロを作って切り替えてるよ。
いっそ柔軟性のあるコンパイラを自作した方が早いかもしれないけどね。
うん、シェーダ生成用ツールプログラムを作って、開発者側は組み合わせの柔軟性を享受できるようにして
実コードは
>>520-521が言うように全組み合わせをぶち込んで走らせてやればイイと思う。
DirectX11ならシェーダー内で仮想関数使えるからこの手の問題は気にしなくていい。
525 :
514:2012/02/05(日) 10:31:47.84
>>518-524 ありがとうございます
要は
>>523さんの言ってることを内部的に出来ないか、と言う事ですね
単純コピーで書くとひとつを直すと他も全部直すという事になりますが
>>523さんの言うような仕組みがあればそれのロスは大幅に削減できますね
あるいは
>>518さんの紹介にある手段を利用するか、これが今のところ私の初期のイメージに近いです
>>522さんの話は今の私にはわからないので(
>>523さんと同じことかな?)勉強します
今回の場合、実行速度やメモリ量は度外視の話なので現実にはそれらと
シェーダプログラム自体の作成効率などを天秤に掛けた上で方法を選択すべきでしょうね
プログラムも量が少なければ関数化などしないですしね
おそらく意見の多い全通り作ってしまうというのがそういう意味で一般的なのだと思います
簡略化(文章量としての軽量化)を重視してそういう風には深く考えていなかったのでとても参考になりました
DX11はDX9は確かに古いですが出来ることに関しては当時のハードをはるかに上回る物を秘めていて
最近のハードでも動作を再現し切れないものがあるのに今急いで移行する必要があるのか、と考えています
ただ下位互換とは違うのかもしれませんがそれに似た要素を多く含んでるようなので
注目はした方がいいのかもしれませんね
長文レス失礼しました、多くの意見が頂けてとても参考になりました、ありがとうございます
気が向いたら
>>478のことも思い出して頂けるととても助かります
デスクトップ上に直接文字を描画してスクロールテロップとして流したい
とかいう用途にはDirectXは使えるのでしょうか?
朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社は朝8時過ぎから25時半まで工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。
528 :
デフォルトの名無しさん:2012/02/06(月) 10:38:30.45
>>526 君にはまだDirectXは早いようだな
やろうと思えばDirectXじゃなくても出来るぞ。そのぐらい。
529 :
デフォルトの名無しさん:2012/02/07(火) 05:36:40.17
DirectX11に対応してないグラボは問答無用で切り捨ててOK
その場合、WindowsXPも切捨てってことですよね??
531 :
デフォルトの名無しさん:2012/02/07(火) 22:33:57.05
当たり前だろ何年前のOSサポートする気だよ
でもWinXPの人って半分以上いません??
たくさんの人に使ってもらいたいのならDX9だな
でも、デバイスロスト関係の面倒がなかったり(9の最後のほうでなくなったけど)、
ハードウェアPCFが標準で使えたり、DX11のほうがイイなぁ、と思えることあるんだよね。
あ、モデルフォーマットやアニメーションを自分でやらんといかんのがクソめんどくて、
一気に敷居が上がった気もするが。
535 :
デフォルトの名無しさん:2012/02/07(火) 23:43:05.55
面倒なら楽になるソフト作ればいいじゃない。
それが俺たちプログラマ。
敷居が上がったぶん産廃並のゴミを垂れ流すクソガキが減って良いと思われる。
>>535 マリーアントワネットかとオモタw
なるほど、自分で作ってナンボだよね。
>>534 9のサイトでなくなったってそのあたり詳しく教えて
サイトじゃなくて最後だった
Vista以降で利用できるD3D9Exデバイスが基本的にデバイスロストしないって話じゃね
Direct3DというよりWDDMの仕様に伴う挙動だと思ったけど
D3D9無印デバイスだとVista以降でもデバイスロストをエミュレートするんだっけ?
■K-POPは大赤字だった
http://economy.donga.com/total/3/01/20120206/43816231/1 収入 7億9400万ドル
支出 10億1780万ドル
収支 2億2380万ドルの赤字
6日韓国銀行国際収支統計によれば、昨年我が国の個人・文化・娯楽サービス収入は7億9400万ドルで、前年に比べ24.7%増えた。
関連統計の集計が始まった1980年以来、最も多い金額だ。
しかし、今のところは文化産業で入ってきたお金よりも、出て行ったお金がさらに多く、個人・文化・娯楽
サービス収支は相変らず赤字を見せている。個人・文化・娯楽サービス支出は10億1780万ドルだった。
この結果、個人・文化・娯楽サービス収支は-2億2380万ドルで、
今まで一度も黒字を出すことはできていない。
DirectXでも文字列描画って遅いんですね。
びっくりしました。
そりゃ文字列描く機能無いから
自分のやり方が悪いのにまるで他人の責任みたいに言う奴って、
ずっと成長しないままなんだろうね。
そうやって教えてやる必要すらない訳だが
>>539 ありがとう。
EXならデバイスロストしないってことなのか。
GPUに漢字ROMでもない限り速くはならない
GPUにROMって、だったらVRAMにイメージを展開しておけばいいだけの話になるだろう。
もうアホすぎて話にならない。
それはソフト処理なので遅い
DX9は文字出すAPIがあって重宝したけど、
DX11ではなくなってるんだっけ?
文字はテクスチャで用意して切り換えながら描画するのがベストかね?
なかなか良さそうだな
自前でDirectWirteと組み合わせてたけど、DX10経由だから結構ごちゃごちゃなんだよなぁ
もっとも次から直接呼べるようになるんだっけ
DWrite<->D3D11は、Metroサンプル読むと共有サーフェイス使わなくても済むようになってるね
Vista/7にはバックポートしなさそうだけど・・・
Vistaはサポート切れだからどうでもいいけど7は何とかしてほしい
freetypeとか使ってる人いる?
小さいフォントだとGetGlyphOutlineがクソ汚いんで使ってる
DirectX9からDirectX11まで共通で使えるDirectX用フォント描画専用の
ライブラリをMITライセンスかBSDライセンスで誰か作って公開してください
お願いします
自分で作って公開すれば解決。
がんばれ。
D3DXFont
【中国BBS】ドイツ車が良いと思っていたけど、日本車も良いね!
「前はドイツ車がいいと思っていたけど、日本車もいいね!」というスレッドが立てられた。スレ主のこの意見に対して様々な感想が寄せられている。
● スレ主:日月宗近
アメリカとオーストラリアでの販売額は日本車が1番みたいだし。
● satay醤
日本車はボディが薄い。だからぶつかるとすぐに変形する。でもその分軽くて燃費がいい。
● 老太太説相声
↑どんなに変形しても韓国よりはいい。
● CF歩槍狂人
そうだね。ドイツ車はエコじゃない。
● dr007haha9
ドイツ車はいいよ〜。日本車そのものは悪くはない。
● 強力檸檬鯊
車全体の安全性は、フレームと全体の構造にかかっている。外側の厚みは関係ない。
ドイツ車の外側は日本車よりも平均で1から 1.5ミリ厚いが、ユーロNCAPの衝突テストでは日本車の成績はドイツ車よりも常に上だ。
日本車の衝撃吸収力が勝っているということだ。でも中国で生産する日本車は質の悪い材料を使い手抜きしている可能性は排除しない。
● 戈登謝徳華
ドイツ車の方が日本車よりも良いというのは紛れもない事実。
● ◇只愛羅莉◇
日本製のものって好きだな。使い勝手がいいし。なんでボイコットしなきゃいけないのかね。エコならそれでいいじゃないか。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0210&f=national_0210_110.shtml
>>文字
DX9ならグラボ最大のテクスチャに書き溜める方式が良いと思うが、
DX10以降がまったくわかんね。余計な事しないほうが早い可能性もあるし。
先輩・・・(C++の単位落とすのは)まずいですよ!
今気づいた誤爆
XファイルをDrawIndexedPrimitiveで描画できるようになったのですが次にアニメーションをしようとしたら今度はConvertToIndexedBlendedMeshというのを使ってボーンを考慮したメッシュに変換みたいなことをしないといけないみたいです
もしかしてアニメーションさせる場合はまたメッシュに入れて変換後にDrawSubsetで表示しないといけないですか?
それかConvertToIndexedBlendedMeshに換わるものを自分で作らないといけないですか?
XファイルをDrawIndexedPrimitiveで表示してみようっていうのはほとんど意味のない行為ですか?アニメーションはXファイルの中に入れるみたいなのじゃなくて別管理で作成します。
そんなの実装方法によるだろ
しかもアニメーションは別ファイルってことは独自フォーマットなんだろ?
だったら自分がやりたいように組めばいいじゃん
565 :
デフォルトの名無しさん:2012/02/16(木) 01:58:40.36
テクスチャーとかメモリを使う場合なんですけど
失敗するまで使っていく方針でいいんでしょうか?
MSDNではこんななんですが・・・
>リソースを作成し、"メモリー不足" のエラーをチェックしたうえで、
>テクスチャーを縮小するようにしてください。
はぁ? なに言ってんのお前
頭悪すぎしゃね?
そんなもんCでマロックとか使うときと同じだろうが低脳
雑魚すぎ、基礎からやり直せゴミ
【中国BBS】日本と韓国のことを悪く言うのはやめようぜ!
「日本と韓国の事を悪く言うのはやめようぜ!」というスレッドが立てられた。
スレ主のこの意見に関して中国人ネットユーザーが議論を交わしている。
● スレ主:vdesign2010
嫌韓の人はみな出まかせを言っては韓国を罵る。そんなことをするより、中華振興を考えるべきだ。
韓国の悪いところばかり挙げて、まるで中国が良いみたいな言い方だ。よその国を貶めることはもっとも恥ずかしいことだ。
韓国のことを悪く言うのは中国人の心の小ささを示すことになる。われわれの国にはまだ多くの不足があるのだから、
韓国のことを悪く言う資格などない!
● 逆天弑神の幻想
日本はまずまずだろ。挑発的な右翼以外は。悪く言っているのは右翼たちだ。右翼もどきの人が一番罵るに値する。
韓国はもっとも恥知らずで罵るに値する。
● 福田空
頼むからスレ主は日本と韓国を並べて語るのをやめてもらえないか?スレ主の意見には一理あるけど、
オレは韓国に行ったことがある。そして心から韓国が嫌いになった。理由は言わないが、みんな分かるよな。
● 金鋼山勇士
スレ主の意見に対してはとりあえず何も言わないでおく。だが、韓国人と韓国に対して
オレが抱く嫌韓の情は誰も阻止することはできない!俺のハンドルネームがその立場を表明している!
● 暴風幻想
韓国が自己満足のために内容の乏しい発言をしなければ、韓国を相手にすることはないのに。
● 星辰之涙
韓国はキライで日本が好き。事実に基づいて発言すればそれは客観的意見だ。
事実に基づいていなければ、それは罵(ののし)りになる。オレは罵ったことはないが、客観的意見を述べている。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0215&f=national_0215_037.shtml
>>564 実装方法が「Xファイルにアニメーションは別ファイル」だと思うのですがそれを問われるとどう答えていいのか困ります
またアニメーションが別ファイルなだけでボーン入りXファイルのことは独自フォーマットとは言いませんよね?
その上で だったら自分がやりたいように などと言われても何も情報が増えていないので困ります
>>566 同じ人でしょうか、これも同じ雰囲気に感じるのですが
ひし形の面積を求める式は「対角線×対角線÷2」でいいのでしょうか、と聞いたら
「はぁ? なに言ってんのお前
頭悪すぎしゃね?
そんなもん平行四辺形と同じだろうが低脳
雑魚すぎ、基礎からやり直せゴミ」
と答えてるようなもんだと思うんですが
569 :
デフォルトの名無しさん:2012/02/16(木) 09:02:22.63
メインメモリ系のmallocに失敗する状況なら起動しないようにします
MSDNは続きがあって
>たとえば、テクスチャーの上位ミップレベルを削除することが考えられます。
とか言ってます
VRAMはシェーダ、圧縮やUMAの関係で空き容量とCreateしたいリソース容量が等価ではないのは分かるんですが
環境の派生状況が、なにげに厳しいことになっているので
どうしていますか?
アプリ仕様と最低動作環境を調整する。
すいません、質問させて下さい
頂点シェーダに渡す際の引数の構造体なんですけど、
struct VS_INPUT
{
float4 Pos : POSITION;
float2 Tex : TEXCOORD0;
float3 LocalNormal : NORMAL;
float4 Col : COLOR0;
float4 W : BLENDWEIGHT;
};
こんな感じなんですけどfloat4 Col : COLOR0;の位置を変えると
真っ黒になったり真っ白になったり、ていうかそもそもマテリアルのディフューズ色が反映されないんですけど
これって何かと揃えたり連動させなければいけないのでしょうか?
572 :
デフォルトの名無しさん:2012/02/17(金) 14:03:11.16
書き忘れました、DirectX9です
573 :
デフォルトの名無しさん:2012/02/17(金) 22:12:26.48
DirectX使用のサンプルゲームダウンロードして画像オブジェクト編集しようと
ペイントで開いて線書き足そうとしてもかけないんだけど何故ですか?
画像はbmp形式です。消しゴムや、塗りつぶしは何故か出来ます。
わかりません
>>575 頂点宣言はこんな感じでしています
D3DVERTEXELEMENT9 vtxElem[] =
{
{ 0 , 0 , D3DDECLTYPE_FLOAT3 , D3DDECLMETHOD_DEFAULT , D3DDECLUSAGE_POSITION , 0 },//位置
{ 0 , 12 , D3DDECLTYPE_FLOAT3 , D3DDECLMETHOD_DEFAULT , D3DDECLUSAGE_BLENDWEIGHT , 0 },//重み
{ 0 , 24 , D3DDECLTYPE_FLOAT3 , D3DDECLMETHOD_DEFAULT , D3DDECLUSAGE_NORMAL , 0 },//法線
{ 0 , 36 , D3DDECLTYPE_FLOAT2 , D3DDECLMETHOD_DEFAULT , D3DDECLUSAGE_TEXCOORD , 0 },//テクスチャ座標
{ 0 , 44 , D3DDECLTYPE_D3DCOLOR , D3DDECLMETHOD_DEFAULT , D3DDECLUSAGE_COLOR , 0 },//デフューズ
D3DDECL_END()
};
何か間違ってるでしょうか・・
それとも、描画時に必要何かをしていないのでしょうか
SetMaterialメソッドでマテリアルの登録をしているのですが
あ・・ひょっとしてこれ、
D3DXLoadMeshHierarchyFromXで作成したものにシェーダを使うには
それ専用の頂点宣言が必要だったりするんでしょうか
>>576 位置情報ってシェーダー側がfloat4なのに構造体宣言は宣言はfloat3相当じゃないか?
アラインメントがズレまくりの予感。
あ、ほんとだ。
だろ
>>578 やはり頂点宣言とシェーダ側の型は合ってなければいけないのでしょうか?
あるサイトのサンプルで、頂点宣言はfloat3なのにシェーダではfloat4で受け取ってたりしたので
そういうのもアリなんだと思ってたんですが・・
あと、実はこれ最初頂点宣言にBLENDWEIGHTを入れてなかったんですね
にも関わらずスキンメッシュが成功していたので、ここは関係ないのか・・・と思ってたんですが
それはたまたま上手くいっていたってだけなのでしょうか
もう一つ、最初の方はテクスチャのUV座標も上手く出力してくれずテクスチャも貼れてなかったんです
四苦八苦して、よく分からないけど表示されるようになったんです
でも何が原因でテクスチャが出なかったのか、そしてなぜ表示されるようになったのか全然わからなかったんですが
この辺からなにか可能性のある間違いとかって、分かりませんでしょうか・・
583 :
デフォルトの名無しさん:2012/02/19(日) 04:08:08.93
初投稿失礼します
今DirectXでRokdeBoneのスキンメッシュアニメーションを出力してみたのですが
うまく出力されてないみたいでMASHVIEWで表示しようとすると Unable to load the specified file
というエラーが出てしまい XファイルのMASHの変数名などをいろいろかえてみたのですがうまくいかず・・・
どなたか対処法知っている方お願いします
>>583 MASHが何か分からない意味不明
ゴミみたいな書き込みでレス消費するんじゃねえよゴミ
頭の悪いゴミは失せろ
>>583 英数字もまともに読み書きできない奴がプログラム?
お前みたいなヴァカがいるからゆとり世代ってバカにされるんだろ、回線切って家から一歩も出るなよ迷惑。
586 :
阿呆発見 晒しage:2012/02/19(日) 17:08:57.09
馬鹿には無理
588 :
デフォルトの名無しさん:2012/02/19(日) 18:23:24.50
分かる人だけって・・・そういうの差別だと思います
分かる人も分からない人もみんなレスしていいと思う
いいと思うね
592 :
デフォルトの名無しさん:2012/02/19(日) 21:12:25.23
Twitterのほうで教えてもらえたのでもういいです
>>590-591 >回答する人も、質問する人も必ず読んでください
>4.余計な雑談は不要ですよ
596 :
デフォルトの名無しさん:2012/02/19(日) 22:18:13.43
ネトウヨうぜぇ。日本人で一番嫌われてるよな。
ネトウヨ 「キム・テヒですか、あの竹島っていう領土を占拠している国の女優さんをですね」
ロート社員「はい」
ネトウヨ 「CMに使うってことはロート製薬さんは」
ロート社員「ええ」
ネトウヨ 「竹島は韓国の領土って認めるんですね」
ロート社員「いえ、そういったことはお答えできませんので・・・」
ネトウヨ「何で答えられないんですか、韓国領土って認めるんですか」
ロート社員「申し訳ございません、お答えできません」
ネトウヨ「じゃあいいです、反日企業のロート製薬は今後一切買いませんから
これからネットで拡散したり、デモやビラ配りをたくさんやりますんで」
http://www.youtube.com/watch?v=Y_yNdVqdb1E
スレチのコピペするやつに不幸が訪れますように
ほんとうぜーわ
D3DXCreateTextureFromFileExでノベルゲーム用の縦長の立ち絵を読み込みたいんですが、
引数いじっても、途中で切られるか・横に引き伸ばすかで四角(2の累乗?)になってしまうのですが、どうすればいいですか?
どうするもこうするもぴったりの画像用意しろよ
どっちにしても余白は詰められない
メモリ上には512x1024だかそんなサイズでおかれる
ドカンと真ん中に配置してあげなさいよ
>>604 何とかできると思って調べてました。
画像を合わせるか、あらかじめサイズ調べてwideth heightを大きめに指定、で取りあえず表示できそうです。
ありがとうございました。
606 :
603:2012/02/26(日) 10:23:50.32
不特定の人がいろんな画像を表示できるようにしたくなったので、
D3DXGetImageInfoFromFileで縦横の長いほうをD3DXCreateTextureFromFileExに渡すことにしました。
正方形である必要はないと思うけど・・・?
2の累乗であればいいわけよ
608 :
デフォルトの名無しさん:2012/02/27(月) 11:11:43.14
ツール系なのか?
ならCImageからLockRectが便利だと思う
IDirect3DTexture9::LockRect
#include <atlstr.h>
#include <atlimage.h>
CImageは、開発版としてBMP/DIBとか使いやすい画像系式にでも変換して
リリース版、配布版では使わないようにすれば
互換性とかも気にしなくてよくなるよ
あとアライメントはパフォーマンスにガチで影響するから重要だと思う
便利だね
マルチスレッドで画像が動くタイプのローディング画面作ったんですが
60fでPresentするとローディング中Present切った場合に比べて3倍の時間かかります
何かいい方法ないですか?
やはり動かない1枚絵を1回だけPresentするしかないでしょうか
>>610 無駄に排他処理入ってるとか?
排他処理結構コストかかるぞ。
他に考えられるのはCPUがシングルコアだとか。
ロード画面を30fpsにするとかもいいんじゃない?
>>611 CPUは4コアですね
排他処理は作成したスレッドの頭と最後で1回しか呼んでない
>>611 30fpsは3倍から2倍まで改善しました
>>612 それは、あれかな。
スレッド動いてる間は排他処理で他の処理が止まってるってことかいな?
>>614 いいえ
メインループ(ローディング描画はここ)と読み込みスレッド(データ読み込みはここ)両方動いています
問題の切り分けでPresentとロードの関係まで分かってるんだよなぁ。
うーん・・・何だろうな、fps落としたらかなり改善されたんだから関係は絶対あるっぽいね。
メモリ不足とかはない?
うーん。ディスクアクセスがボトルネックになってるとかではないのかなぁ。
なんか帯域足りてないような気がするようなしないような・・・。
うーむ。
ロード中に描画しているから負荷かからないことはないのはわかっているんだけど
3倍はさすがに負荷かかりすぎだろってことでいい方法ないか質問したんです
実際同じような事やったことありますか?
その時のローディング時間の増え方教えて欲しいです
Presentで描画待ちかかってるときにロードでグラボにアクセスしようとしてなんかおきてるとかね?
仮に読み込みを一切関係ないただのループにしてみたらその現象はなくなる?
>>619 スレッド作ってPresent切った場合とスレッド作らずメインループ中で読み込んだ場合の読み込み時間は一致してます
>>620 同じ実行ファイル内のスレッドで同じグラボへのアクセスだから
2コア使えないだろうから一致してたら逆におかしいんじゃないか?
>>621 メインループ内で読み込む場合は初期化から帰ってくるまでメインループに復帰しない(Present呼ばれない)ので
スレッドを作ってPresent切る場合とほぼ同条件なので一致するはずです
メインループ内で読み込むほうがスレッド作ってないので理論上ちょっと早くなるかもしれないですが
原因わかりました
D3DPRESENT_INTERVAL_DEFAULTだからとフレーム処理してないのが原因でした(余裕があるときは60回以上Present呼ばれてる?それともPresent待ちの時に他のスレッドまで止めてる?)
D3DPRESENT_INTERVAL_IMMEDIATE用に書いたフレーム処理をしたらうまくいきました
ご迷惑をおかけしました、ありがとうございます
スレ違いだったら申し訳ないが…
Xファイルのフォーマットについてご教示願いたい。
RokDeBone2で吐いたXファイルを自前でパースして、
独自フォーマットにしようとしてるんだが、
XファイルのAnimationKeyの移動区分の値って、具体的にどんな値が入るんだ?
関連付けられてるフレームの移動量だと思ってたんだが、
まったくアニメーションさせていなくても値が0ではない。 これは一体…。
申し訳ないが、ご教示宜しくお願いいたします。
Windows8CPでいろんなゲーム走らせたけど軒並みfpsが上がってるな
何が起こってるのか
DirectXに都合のイイ改良があったのかな??
>>623 あれからずっと考えてるんだけど、
マルチスレッドならPresentの影響受けなくない?
排他まわりがどうしても気になる。
もしまだ見てたらロードしてるデータの種類(txt、jpg、x等)とそれぞれの容量をざっくりでいいから教えてもらえたら嬉しい。
検証してみたい。
>>627 なんで受けないと思うの?
マルチスレッドは魔法かよw
>>624 それはいわゆるボーンの長さが入ってると思うよ(RDB2の場合)
>>629 恐ろしく簡潔で明快な説明だ。
すっきりしたよ、ありがとう。
蛇足だけど、
RDB2の方言(FrameTransformMatrixが一個ずつズレる)ので色々と混乱したくさい。
>(RDB2の場合)
このヒントが無かったら、今頃…。
>>628 質問者の言う通りなら垂直同期待ちの間、ディスクI/Oも止まってることになる。
待ってるってことはその間パソコンは色々暇なはずだ。
なんでディスクI/Oまで止まるんだよ。
ナウローディング描画のスレッドAが止まってる間にロード処理のスレッドBが止まってんの?
時間軸で見たらこんな感じだろ。
A:動動動動停停停停動動動動停停停停動動動動停停停停
B:動動動動停停停停動動動動停停停停動動動動停停停停
何の同期だよw
>>631 2コア動作はどう考えてもしないだろ?
したら1コアで処理を小分けにして実行するしかないんだよ
1フレにかかる処理と描画が間に挟まるから
最大まで時間をうまくまわして確実に待ちの時間を最小にしたとしても
ローディングの時間+1フレにかかる処理と描画時間xローディング中に処理したフレーム数
になるはず
スレッドを2つにしてもアクセスしてるメモリが同じだから
魔法はおきない
結局処理を小分けにして実行してるだけ
これがわからないならマルチスレッドなんて使わないほうがいいんじゃない?
っていうかよほどの馬鹿でもなきゃ理解できるだろ
すみません。 木や草など透明色が有るポリゴンが層を成すメッシュは
ポリゴン1枚ずつに分解してソートして描画しないと、正常な奥行きで描画する事は不可能なのでしょうか?
>>632 631の書き方が悪いだけで質問者の主張どおりなら
A: 動 動停停停停動 動 停停停停 動 動停停停停
B:動 動 停停停停 動 動停停停停動 動 停停停停
ってことじゃねーの、って631は言いたいんだろ
Aが描画と垂直同期ならBはAが垂直同期待ちしてる間Bのターンずっと回ってこねーのかって話だ
632はケチつけるならその程度のこと理解してから書き込めよ
理解してるつもりならお前の言ってる事はおかしい
これを踏まえて質問者の出した結論のひとつなら描画前の処理が軽いほど読み込みに時間がかかるってコトだぞ
そもそも最初の質問がこれだろ
この場合632がpresentが他のスレッドまで止めるかそこで処理を占有するって言う根拠を示せば解決するんだよ
おれは知らんから後は博識な632に任せる
>>635 >Aが描画と垂直同期ならBはAが垂直同期待ちしてる間Bのターンずっと回ってこねーのかって話だ
だからそれは
>1フレにかかる処理と描画が間に挟まるから
>最大まで時間をうまくまわして確実に待ちの時間を最小にしたとしても
って書いてるじゃん
638 :
635:2012/03/04(日) 16:00:57.74
>>623の発言の解釈によるのかもしれないけど
「同じ60fps」で動いてるプログラムに意図的にフレーム処理(これ一般的な言い回しなの?描画待ちのこと?)
を入れる場合と入れない場合でロード時間変わるって言ってるんだから
そこのコストは関係ないんじゃないか?
632の言ってるのは同じ内容60fpsで表示するより30fpsで表示する方が読み込み速いに決まってるだろって話でしょ
フレーム処理って言い回しをおれはしないし検索しても一般的ではない言葉の気がするからその意味次第でおかしなこと言ってるのかもしれんが
馬鹿にも教える気概はあるみたいだからおかしかったら指摘してよ
仮にそういう考えなら
そもそも
>>627の
マルチスレッドならPresentの影響受けなくない?
って発言自体がおかしい
脳髄から腐ってるレベル
この仕組みでは2コア使えませんって脳みそがなかったんだろう
コード書いて試してみろようるさいな。
D3DCOMPILE_SKIP_OPTIMIZATIONのフラグを立ててD3DX11CompileFromFileから
ピクセルシェーダを作成すると、そのピクセルシェーダでは何も描画できなくなるんですけど、そんなもんなんですか。
float3 GetColor(float2 TexCoord) {
return ColorTexture.Sample(TextureSampler, TexCoord).rgb;
}
float4 PSMain(in float2 TexCoord : TEXCOORD) : SV_Target {
#if 1
// 1ピクセルも出力されない
float3 color = 0;
color = GetColor(TexCoord);
return float4(color, 1);
#else
// これはOK
float3 color = 0;
color = ColorTexture.Sample(TextureSampler, TexCoord).rgb;
return float4(color, 1);
#endif
}
こんな感じで自分で定義した関数でテクスチャを読み取ろうとすると、駄目になります。
上のコードではどこかがまずいんですかね。
D3DXCreateFontで作ったフォントをクラスで管理しててて
コンスとラクタ、デストラクタで作成と破棄をやるみたいにしてるんだけど
1つ問題があって、デバイスがリセットさせるとフォントも作りなおさないといけないわけで
今はクラスのResetメンバー関数をわざわざ呼び出すようにしてる
でも再作成という当たり前の動作をいちいち外部から呼び出してもらうクラスってのはオブジェクト指向的におかしいよね
クラス内部でデバイスがリセットされたかどうかを検出する方法ってないのだろうか?
>>643 デバイスロスト後のリセットやら何やらが不要なDX11への移行はできないかな?
>>643 シングルトンでリセットカウントを変数で管理して、リセットしたらインクリメントかデクリメントする。
で、フォントクラスが持ってるリセットカウントの数字と比較して違ってたらリセットするとか。
もちろんリセットしたらフォントクラスの方のリセットカウントも更新しないといけない。
で、この場合はブールはやめたほうがいい。
うーん。OOPはむずかしいなー。
647 :
デフォルトの名無しさん:2012/03/06(火) 01:55:55.45
どういうときにデバイスのリセットするんだ?
解像度変えるときとかだったら最近のモルピグみたいにランチャーで変えるようにしとけだいいやん。
ahodana
649 :
645:2012/03/06(火) 03:02:27.08
インストールするために、DXSDK_Jun10.exeを起動すると
若干文字化けしたインストールウィザードが起動して、インストールの最後に VisualC++ runtimeのインストールに失敗してしまいます。
原因らしいことが書いてるところも、文字化けしていてよくわかりません。
どうすればインストールできますか?
>>650 俺も昔なった記憶があるような・・・
その時は何度か再起動したらうまくいったとおもう。
Direct2D上で使用するDirectWriteについて質問です。
テキストエディタの表示部分のようなコントロールを作りたいのですが、肝心の描画部分でつまづいてしまいました。
改行などを含む特定の文字列から、本来必要な幅と高さ(スクロールの必要がないサイズ)はどのように取得すればよいでしょうか。
それと、ウィンドウの幅で折り返しをさせたい時にはどのような処理をすればよいでしょうか。
よろしくお願いいたします。
地道にフォントサイズから計算するだけ。
それ以上でもそれ以下でも無い。
WindowsXPでコンパイルできたものを、Windows7proに移動させて再コンパイルしたら下記のエラーが出ました。
fatal error C1083: include ファイルを開けません。'D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include': Permission denied
何が原因か教えて下さい。
開発環境は、VC++2008EEで、インクルードとライブラリのパスの設定はしています。
まずパーミッション確認しろよ
>>654 管理者として実行すれば動くだろうけど
普通はそんなの出ないけど
インストールしなおしてみたら?
ココで聞いていいのか分からないんだが(スレ違いなら誘導してもらえると・・・)
昔つくったゲームを久しぶりに動かしたのですが(5年ぐらいぶり)
環境が違うのかIDirectMusicPerformance8のInitAudioで5秒程度止まる為
初期化で4〜5個初期化するだけで、ゲーム起動がものすごく遅くなりました。
原因が分かりそうな方、いないでしょうか・・・
DirectX SDK June 2006にて作成
現状のPCはwindows7でメモリ8Gとかの割と良いスペックの奴です。
DirectSoundで最低限音は鳴る様になったのですが、鳴った位置で左右の音量変化、距離で全体の音量変化させる方法が解かりません。
もし解かりやすい解説ページなどが有れば紹介しては頂けませんでしょうか・・?
WindowsVista以降
DirectSoundとかはエミュレートしてるだけなので
綺麗に動くかわからないよ
>>658 3D座標使うならLPDIRECTSOUND3DBUFFER8でぐぐり
男は黙ってOpenGL+OpenAL
XAudio2っていいの?
>>658 配布形態によるけど、irrKlangで楽もできる
>>659 なるほど・・・友人のXPだとしっかり動いたので
そのあたりが原因みたいですね
助かりました。
ありがとうございます
665 :
658:2012/03/09(金) 20:40:34.09
>>659-663 ありがとうございました。無事それらしい情報に辿り着けました。 エミュレート恐いですね;
XAudio2はXP以降のみ対応だっけ。
もうそれでいいな。
ID3DXEffect::SetTextureとIDirect3DDevice9::SetTexture
は速度的にどちらを使った方がいいのでしょうか。
テクニックと変数はD3DXHANDLEでハンドルを指定する方法の方が
文字列検索がかからなくてパフォーマンスが良いとはっきり書いてあるのですが。
テクスチャの場合も同様なのでしょうか。
ラッパーとそうで無いものを比べてパフォーマンスを比べる意味が分からない。
ヘイ!ユー!
チェケラ チェケラ ヨー!
ID3DXEffect::SetTexture内部でIDirect3DDevice9::SetTextureが呼ばれてるという事ですか?
という事はIDirect3DDevice9::SetTexture使った方が早いのでしょうがどの位の
速度差が有るのでしょうか。気にするほどの差がないようであれば利便性の高い
ID3DXEffectの方を使っていこうと思うのですが
671 :
デフォルトの名無しさん:2012/03/10(土) 01:26:22.49
それで平気
全然問題ないってば
>>670 シェーダやればわかるだろ
単にどのテクスチャ使いますよって設定だけの話で
実際にデータが飛ぶのはDrawPrimitive実行されたときだけだ
DirextX9で2Dをやる場合のお勧めのサイト、本ってどういうのがありますか?
675 :
デフォルトの名無しさん:2012/03/10(土) 03:09:56.49
>>674 単に画像ファイルを読み込んで表示したいだけならSDKのサンプルで十分じゃなかった?
あのサンプル以上のどんな情報が欲しい?
2Dでいいなら実際サンプル程度で充分だよ
677 :
670:2012/03/10(土) 05:46:30.32
なんとなく分かりました。ありがとうございます。
後二つ疑問が有るのですが、BeginPass EndPassは
一回のDrawSubsetやDrawPrimitiveを挟むようにしなければいけないとよく見かけるのですが、
複数のDrawSubsetを一つのBeginPass EndPassで挟んでも問題なく描画されているように見えます。
何故一回のDrawSubsetやDrawPrimitiveを挟むようにしなければいけないのでしょうか。
もう一つは縮小バッファを使った描画なのですが、MavericProject
のシェーダーのサンプルで縮小サーフェイスを使用する場合に
縮小サーフェイスのサイズでビューポートを設定していますが、設定しなくても正常に描画されています。
設定しない場合、何か問題が有るのでしょうか。
問題は無い。
必要に応じてまた設定すればよい。
>>677 そうしろって書いてあるから
仮になんでかわかったところでそれをしねぇってわけにはいかないんだから
無駄な疑問なんじゃねーの?
>>677 「少なくとも」一回、ってニュアンスではなかった??
DirectX9でパーティクルを実装しようと思ったのですが、どの手法が最も一般的なのでしょうか
一般的なものは無い。
好きなようにやれ。
683 :
664:2012/03/10(土) 18:25:01.33
再度失礼します。
windows7で2Dのゲーム開発を行いたいのですが
製作環境を出来るだけ簡単に整えれて
ゲーム部分の作成に時間をかけたいと思っています。
(画像表示やサウンド再生やシーン管理等に時間をかけたくない)
そんなわがままを実現する為に参考になる情報(URL)等ありましたら
教えていただけないでしょうか
684 :
デフォルトの名無しさん:2012/03/10(土) 18:30:45.36
>>683 だからSDKサンプルのどこが不満だったのか書けよゴミ
ちなみにシーン管理はゲーム部分だ
>>683 マジレスするとそんなものも
自分で調べられない馬鹿にゲーム開発は無理。
シーンがゲーム以外の部分だとか思ってる辺り
頭悪すぎだし。
頭悪いのに何でじっくり一つずつやらないの?
>頭悪いのに何でじっくり一つずつやらないの?
頭が悪いから
>683
ここで質問してるということはDirectXで作るつもりなんだろうけど、
環境構築の一番簡単なGDIとMCIでの開発をしようと思わなかったのはなぜ?
プロトタイピングはC# + GDI+がオススメだ。ホント抜け出せないくらい捗るぞ。
689 :
デフォルトの名無しさん:2012/03/10(土) 18:59:32.81
>製作環境を出来るだけ簡単に整えれて
>ゲーム部分の作成に時間をかけたいと思っています。
日本語でおk
directxは日本語ができるようになってからでおk
690 :
664:2012/03/10(土) 19:21:52.67
酷い言われようだ・・・
頭悪いのは正解で仕方ないのだが
>>657 の通りで、昔の開発環境には色々問題がありそうなので
最近のwindows7で作る流れで作成しようと思った訳です。
そこで、現状のDirextXで2D製作をするにあたり、構成サンプル等を見つけて
作成しようと思い。
分かりやすいページなどあれば教えていただきたいなと・・・
ないよ
そういうの全部消えた
ゲーム作ろうと思う奴自体消えた
面倒なのが嫌ならゲーム開発そのものをやめれば?
ム板でコード書くのが嫌とか意味不明
694 :
デフォルトの名無しさん:2012/03/10(土) 20:03:27.72
>>692 はぁ?
たったそれだけでうんざりするならプログラミング向いてないよ。
ほとんど初期化と終了処理だけで画像ごとに必要な部分なんて数行じゃん。
>>692 だから何でGDIとMCIにしなかったの?
はい終了
数行のコーディングが無理とか知能障害レベルだなw
そこでHSPですよ。
HSPならたった2行で画像を表示可能!
痒い所には目をつけるのがC++
痒い所には目をつぶるのがHSP
701 :
デフォルトの名無しさん:2012/03/10(土) 21:02:36.97
HSPって何?
702 :
デフォルトの名無しさん:2012/03/10(土) 21:16:09.53
産廃の一種
一部の救いようのない基地害以外には無縁だから
気にしなくていいよ
テキストボックスにコピペして検索ボタンすら押せないゆとりって何なの?
704 :
デフォルトの名無しさん:2012/03/10(土) 23:08:34.88
>>703 検索はしてるんじゃないかな
"産廃" とか "基地" とかそういうキーワードで
705 :
デフォルトの名無しさん:2012/03/11(日) 00:59:31.08
うるさいゴミ
706 :
デフォルトの名無しさん:2012/03/11(日) 02:07:25.00
うるさいゴミって何だ
ゴミがしゃべり出すのか
楽しそうだな
707 :
664:2012/03/11(日) 04:00:30.07
色々荒れてるみたいでスマン
とりあえずDXライブラリで作ってみようと思うんだが
作品によっては同一現象なのか起動しないものもあるので
色々試してみる。
建設的な意見くれた方ありがとう
708 :
デフォルトの名無しさん:2012/03/11(日) 05:07:10.57
お前が訳の分からないこと言って荒らしてるんだろ
コーディング→嫌だ
自分で検索→する能力がなくてここできく
なぜGDI&MCIにしないのか→無視
ほんとゴミだな
>>694 初心者には長いんじゃねぇか?と思ったりして
あの程度で長く感じる初心者にはゲーム開発なんか無理だろう。
数当てゲーム程度なら作れるかもしれないが。
712 :
デフォルトの名無しさん:2012/03/11(日) 09:44:32.37
>>692 たしかに長いな
ほとんど本編に関係がないって所が余計に疲労感を増すよな
Windows7って普通の画面がDirectXだよね?
どうやってフォント表示を高速化してるんだろう?
高速化?何が?
グラフィックドライバを通して処理するだけだ
715 :
デフォルトの名無しさん:2012/03/11(日) 10:50:11.12
HSP使え
新しいDirectXでもまだフォント表示遅いの?
DirectX9世代でそういうのは終わってると思ってたぜ
フォント表示遅い遅い言われてるけど最近のPCスペックなら大丈夫だろ
俺の作った2Dアクションとかフォント高速化してないけどシングルスレッドで980FPSとかだよ
>>692 せやなぁ・・・変に難解に見えるし、重要なところがぼけるよな・・・
そういうところglut等でなんとかできるopenglは入門にいいのかもしれんな
ミニマムコードにはエラー処理とか余計なのは省いてほしいよな。
まぁ、ただでさえコード長くなりがちなんだし、あんなの見たら初心者は誰もやろうとは思わないだろう。
やっぱりDirectXはまだまだ敷居が高いよ。
>初心者は誰もやろうとは思わないだろう。
だったらやらなくていいだろ、趣味のものなんだから。
趣味ってのは情報や経験の蓄積が必要なものとそれ以外に大別できるけど、
DirectX含めプログラミングは前者。
それが嫌ならカフェめぐりでもやってろよ。
敷居が下がると産廃が量産される。
趣味のものというか、
ちょこっと気楽に作るようには設計されてないからなぁ。
そういうことが目的ならそもそもライブラリ使うなり別な選択肢がある。
低レベルAPIなんてそんなもんじゃないの?
723 :
デフォルトの名無しさん:2012/03/11(日) 16:23:22.02
ゲーム作りたいってだけでDirectXとか安易すぎ
技術に溺れてできたものは残念な物 のパターン
DirectXでフォントの描画が遅いといっている奴は、
だったらGDIならまともに出来ているのか?
自分が無能なだけなのにAPIの責任にしようとする奴はプログラムなんて組むなよ。
リアルタイムで数千〜数万くらいのレンダリングが瞬時にできないとそいつの求める仕様には答えられないんじゃねw
PROOF_QUALITYでメニューみたいなのを作ってるけど
だいたい30項目くらいかな
かなりもっさりになる
GDIはVRAM直書きだけど、DirectXはバス転送が入るから遅くなるのが普通だし
APIの使い方が悪いと言うなら、それを教えて欲しいんだけど
Vista と 7 の違いは GDI がエミュレーションで表示されるかドライバで処理されて表示されるかの違い
729 :
デフォルトの名無しさん:2012/03/11(日) 23:07:50.74
ぷぅ〜
>>727 GDIであろうと自分で描画した場合まともにできていだろ。
APIは関係ないんだよ。
そもそもGDIでもバスを通さずにどうやってデータを送るんだよ。
いっていることが無茶苦茶だ。
お前のビデオカードはCPUに直結しているのか?
>>728 VistaはSP1以降、7と同じようにアクセラレーションされる。
化石みたいな知識で知ったかするな。
俺のビデオカードはエロ動画に直結しやすいんだ へへっ
俺も女の子とアクセラレーションしたいもんだ
そうカリカリしなさんな
カリはペロペロするもんだ
732 :
デフォルトの名無しさん:2012/03/11(日) 23:10:20.25
そうだそうだ!
化石みたいな知識で知ったかするなバーカ!
もっと言ってやれ!
>>730 メインメモリにアクセス出来るCPUの速度は圧倒的だからね
昔のGDIはメインメモリ上でテキスト画像を生成して生生さらたVRAMをGPUに転送してるだけ
D3DFONTを使ってやってると1文字ずつテクスチャ化してバス転送するという作業をドライバが繰り返してると思うんだけど
だから相当遅いはず
でもWindowsVista以降ではGDIはDirectXをラップしただけの存在になってるわけで
その割には普通の画面の文字表示が早いのはどういうテクニックなんだろうという話なわけ
Vistaも初期の頃は文字表示が遅すぎるって苦情がものすごく出てて、Windows7で改善されたからね
内部的にどうやって高速化してるんだろう
くぴ
>>733 おお、参考になる。
そういうところのメカニズム、知りたいよね。
うーんうーん・・・
誰か説明してやれよ
738 :
デフォルトの名無しさん:2012/03/12(月) 01:33:32.36
えーと……
DirectXは基本的なAPIの叩き方は書籍やWebである程度分かるようになるんだけど、
もう少し詳細なハードの動きを意識できるようになりたいと思うと、途端に情報がなくなる。
パフォーマンス出そうと思うと、そこらへんが気になるよ。
それはGPUメーカーの資料に目を通さないからでは。
そうだな
そうに違いない
なんちゃらGemsって本を読めって事だろ
あとメーカー資料は思ったよりも見やすい
そのDirectXの最適化関連のGPUメーカー資料って何処にあります?
でもこれって実行環境によって文字描画の速度が著しく変化するって事だよね?
>>733 メインメモリもバスを通しているんだが。
通さないのはレジスタとキャッシュだけ。
だから汎用命令でメモリ->メモリがストリング転送でしかできなんだよ。
圧倒的なのはレジスタを利用したときとキャッシュにヒットした場合だ。
>D3DFONTを使ってやってると1文字ずつテクスチャ化してバス転送するという作業をドライバが繰り返してると思うんだけど
D3DFONTってなんだよ。
D3DXFontのことなら、ただのラッパーなんだからドライバ云々は関係ない。
そもそもあらゆる描画がドライバ経由だ。
それからD3DXFontは一文字ずつじゃなく文字列単位だ。
全てにおいて、言っていることが滅茶苦茶すぎる。
プログラム以前。
問題外だ。
747 :
デフォルトの名無しさん:2012/03/13(火) 13:36:00.14
>>746 何が言いたいのか全然わかりませんね
キャッシュヒットとかまったく関係なくメインメモリはPCIバス経由より遥かに早いですけどね
この場合のバスがPCIバスであることは普通読み取れませんかね?
それと1文字が行単位だったからなんだと言うんですかね?
>PCIバス経由
PCIバスを使ったビデオカードなんて中古屋ぐらいしか見かけないが、何を言っているんだ?
こんな古い知識じゃAGPメモリとか、
動的な更新が必要なものをメインメモリに置けることすら分かってないだろう。
これ自体もDirectX9以前の古い知識なんだが。
>それと1文字が行単位だったからなんだと言うんですかね?
おいおい、全然速度が変わるだろう。
どれだけ無茶苦茶なんだよ。
それからまた間違えているぞ、行単位じゃ無い、文字列単位だ。
一文字ずつとか行単位とか大嘘をぶっこく前に、仕様ぐらい確認しろよ。
そもそもD3DXはただのヘルパーライブラリで、
DirectXの速度を考える上では何の参考にもならないのに、
それを挙げてくる時点でどうしようも無い。
750 :
デフォルトの名無しさん:2012/03/13(火) 16:45:13.48
>>748 ほんとお前どうしようもないなw
DirebtXの速度を考える上では何の参考にもならないことばっか書きやがって乙www
文字の描画が遅いという奴は無駄に毎フレーム描き直しているせいだろう。
フレームごとに画像を読み直しているのと同じ。
馬鹿だからどれだけ無駄なことをしているかに気がつかない。
OpenGLで開発中の俺から言わせるとDirectXは恵まれすぎてる
753 :
デフォルトの名無しさん:2012/03/13(火) 18:05:01.99
>>752 何がどう恵まれてるのか全く分からない
DirectXとOpenGLはそもそも使用目的が違うのに何をどう比較したんだろう
使用目的って何?OpenGLでゲーム作っちゃダメなの?
DX7の頃に使われてたSetOrientationで姿勢を制御しているのを、D3DXMatrixRotationで同じように姿勢制御をするには
どのようにしたらいいのですか?
昔のソースを発見したので最近のDXでも使えるように移植したいのです。
DirectXってなんかかっこいい名前だね。
エーーーックス!!って感じ
757 :
デフォルトの名無しさん:2012/03/13(火) 22:50:07.15
1文字変えると厨二病くさくなる
759 :
739:2012/03/14(水) 00:51:05.25
>>749 PCIEはPCIバス32bitの2レーン64bit版ですけど?
もうみっともないからやめとけ
762 :
デフォルトの名無しさん:2012/03/14(水) 02:02:08.31
>>760 ここで知識披露すれば間違ってる知識を訂正してもらえると思ってるだろ
叩かれはするけど検索して文書読むより早いからな
もういちいち訂正しねーから一生そう思ってろバーカ
>>760 かわいそうだから突っ込んであげよう、それはPCI2.0。
PCIeはシリアル化されているからバス幅とか無いし。
ここまであらゆることを間違って覚えているって知的障害レベルだよ。
x1とかx16とか。1リンクで500mb/sだっけ?
ようするに要約すると
・D3DXFONTはGDIフォントに比較して圧倒的に遅い
・MicrosoftはWindows Vist SP2 と Windows7にDirect2Dなるものを新規搭載して対応してる
・Direct2Dはハードプリントされた機能であってVistaの不評によりグラフィックコアを作りなおした結果である
・Direct2DはDirectX10.1仕様のハードから対応
・DirectX8と9に対策方法は存在しない
といったところ
フォントをテクスチャ化しない方が馬鹿という明後日方向の意見もあるようですが
汎用性に欠けるのでどうかと思われる
766 :
デフォルトの名無しさん:2012/03/14(水) 21:15:44.52
【政治】知られざる危険性…近く閣議決定されるとの情報がある亡国の法案=“人権救済機関法案” 自民・稲田議員が警告★3
http://uni.2ch.net/test/read.cgi/newsplus/1331711675/22 ↑
電話番号、アドレスの詳細
電話は勇気ないという人でも、せめてメールくらいは送ってみて
◆◆◆◆◆◆拡散に 御協力 お願いします◆◆◆◆◆◆
人権侵害救済法(人権委員会設置法案)に反対する声明を、
一般の方々が電話及びFAX抗議してもらうためのチラシを作成(訂正)しました。
人権委員会設置法案(人権侵害救済法案)が3月中下旬に閣議決定されるかも知れません。
1通でも多く反対メール・電話・FAXをよろしくお願い致します。
3枚組みで、1・2枚目は人権法案の危険性を訴える内容の例文。
電話で読み上げるなり、そのままFAX送信できるようにまとめています。
また各自が意見を追加できるように空欄を入れました。
(FAX送付のために文字を大きくしました)
3枚目は、政党や主要閣僚の電話・FAX連絡先を一覧にしています。
特に、保守派とされる自見庄三郎 (郵政大臣;国民新党)、
松原 仁(国家公安委員会委員長)へ集中してFAXお願いいたします。
さらに連立与党の国民新党の亀井静香代表宛にもお願いいたします。
あまりに危険な人権侵害救済法案・法務省がQA
■久々の本気でおねがいします2!!人権擁護法案!! ひめのブログ
http://bbs.unionbbs.org/test/read.cgi/news/1323182085/37
>>765 D3DXを使わずに自前で管理すればいいだけの話。
やり方がすでに書かれているのに肝心なところを読み飛ばしている時点で向いてないよ。
Direct2DというかDirectWriteは、体裁を整えたり装飾をつけたフォントの描画の効率が上がるだけで、
通常の文字を表示するのに、それほど優位性があるわけでは無い。
そもそもテクスチャやサーフェイスに出して間接的に書き出す動作は変わらない。
知ったかで、いい加減なまとめをするな。
大きめのテクスチャに文字をダーっと詰めて描いておいて、
そのテクスチャアドレスを変えることで文字を書いていくのはどうかな?
フォント敷き詰めたテクスチャアトラスで済むのなら速度的には一番だけどね
ただ、チャットウィンドウやエロゲとか作ろうとかすると、使用する文字数は多くなるし
サイズやスタイルは可変だしで間に合わなくなる
なもんで、GetGlyphOutlineやDIBにGDIでレンダリング(あるいはキャッシュ)したメモリを
毎フレームUpdateTextureで転送したりするのも妥協案としてよく使われる手法
>>769 うお、勉強になったわ。
単純なデバッグ文字出す程度ならテクスチャアトラスで十分そうだな。
てか、テクスチャアトラスっていう言葉知らんかったわ。
ていうか、今のD3DXFontは
>>769が言ってるような方式で、文字キャッシュ作ってD3DXSpriteでバッチ描画してる。
文字キャッシュ溢れが頻発しないかぎりスプライト描画するのと変わらんから十分爆速。
PIX使えばすぐ解ることなのに、GDIの方が速い(笑)とかホントにね…。
>>769 仮に、日本語全部をテクスチャに敷き詰めるのは無理なんだろうか?
Direct2Dも結果的にそれに近いことをやってるんではないだろうか
DirectX10.1対応したグラフィックカードならそんなサイズのテクスチャを余裕で作れるし
うにこーどが仮に2バイトだったとしたら6万文字入るんだよ。サイズ固定でだよ。
極端にサイズ変えるためには更にキャッシュしないといけないんだよ。フォントヘルだよ。
>>771 文字キャッシュを作ったらキャッシュしてる内容と違いがないか毎回チェックして
違ってればテクスチャを生成するという作業が入るので
GDIより早いという結論にはならない
>>773 60000文字を20pixelサイズ文字で埋めたら
5000x5000のテクスチャなので
これを何種類かのサイズで用意しても
最近のグラフィックカードなら余裕でしょ
>60000文字を20pixelサイズ文字で埋めたら
>5000x5000のテクスチャなので
じゃあ40pixelサイズのフォントを作成しようとしたら10000x10000になるから
D3D10.xまでのグラボじゃ作れなくなっちゃいまちゅねー
>>775 別に一枚に入れる必要性はないのでは?
あるの?あるならそう言ってね
777 :
デフォルトの名無しさん:2012/03/15(木) 02:48:51.25
2、3日前から暴れてる馬鹿はどこから湧いて出たの?
春休みに入った大学生とかその辺りのガキ?
>>776 え? 一枚に抑えたかったんじゃないんですか?
もしかして10ptから100ptまで順にフォント作ろうと思ったら毎回敷き詰めたテクスチャ作るんですか?
イタリックにしたいし太字にしたいしブラーかけたドロップシャドウも付けたいんですけどさらに数倍ですか?
ビデオメモリ何MB使えばいいんですか?
一行にスタイルやサイズが混合しててさらに複数重ねて描画する場合もちゃんと管理できるんですか?
779 :
デフォルトの名無しさん:2012/03/15(木) 05:57:29.92
だからもうそれでいいって
適当に知識を披露すれば間違った知識に関しては分かりやすく教えてもらえる方式だろ
新手の教えて厨マジでウザい
もういちいち訂正しないから一生そう思ってろよバーカ
お前がそれで困っててもこっちは痛くも痒くもないからな
日本語自体は7000文字ちょっとしかねーよ。
中国語とか全部サポートするなら1文字2バイトでも足りないが。
論旨は「DirectX8,9で高速に日本語文字を描画する方法」だから
最近のグラフィックカードなら日本語文字を全部テクスチャにしても問題ないよね
↓
サイズが大きくなったら1枚のテクスチャに入らないぞ
とかいう否定したいだけの意味不明意見は要りません
そして
>>778 管理単位がサイズ、文字形状単位になるのはGDIでもD3DXFONTでも常識なので
わざわざ管理単位を無限大にまで広げなくていいです
どうせ一度に使うのは数種類の文字種だけ
合計が50MBだとしても、たぶん最近のグラフィックカードなら耐えられる範囲だと思うんだけど?
って話をしています
チャットだって、人間がキーを入力する程度の速度でテクスチャを更新するだけなんだから、
そもそも速度なんて気にする必要すら無いんだが、馬鹿は本当に余計なことに気を回すよな。
どれだけゴッドハンドなんだよ。
>>772 DirectWriteのエミュレーションモードならそうだけど
10.1対応ハードならGPUに頂点情報を送ってGPUだけで描画する
>>783 D3D11ハードウェアですらグリフ用メッシュを作ってる気配がないんだが
それどこ情報?
785 :
デフォルトの名無しさん:2012/03/15(木) 13:19:35.54
気配がないとかそんなものはどうでもいいからソース出せよ低脳
CPU側でジオメトリを生成して、GPUで描画しているだけだよ。
結局、ジオメトリの生成に負荷がかかるので速度的に優位性は無い。
それならDirectX9以前でも出来る話。
自分で生成すればいいだけなんだから。
OpenTypeの生成式をシェーダーに持たせておけばいい
まずはっきりさせておいた方がいいことは、フォントの描画速度など、
全体の速度にほとんど影響しない。
なぜなら毎フレームテキストが変化するよう構造で、システムを作る必要が無いからだ。
GDIもフォントの描画が速いわけじゃ無い。
一般的になアプリやウインドウ周りの描画だって単純に更新領域を最小にして、
いらないときは描かないから負荷が発生しないんだよ。
どんなに頭が悪くても、これだけわかりやすく書けば理解できるだろう。
>>787 シェーダの優位性は同じ処理を複数のユニットを使って、同時並列で大量にやるときに意味が出るんだよ。
小規模ならCPUでやった方が圧倒的に速い。
マジで馬鹿しかいない。
煽りとか抜きでマジで。
791 :
デフォルトの名無しさん:2012/03/15(木) 17:49:44.95
ちょっと休憩
>>788 だからそれは変化しない文字をテクスチャにした場合の話でしょ?
ライブラリ化やオブジェクト指向を念頭に置いてるんだよね
変化するかしないかって判断をプログラムを作る人から
クラス内部に内包出来るかって問題があるんだよ
どんだけ文字描画にこだわるんだか。
MMOプレイしてるときに文字描画の速度気にしたことあんのかよ
>>793 だからそれはGDIで直接VRAMに描画してるから。
D3DFontを使う以上速度低下は避けられないから気にするのは当然。
テクスチャに敷き詰めたフォント程度で間に合うならそれにこしたことはないし
実際大抵のゲームはそれで済む話なのは前提として
既製ノベルエンジンの真似ごとしようするればわかるけど、外部ファイルから
タグ付けされたシナリオテキストを読み込んで、次の文字のスタイルが常に可変な
状況もあるわけで、その手法だけじゃ限界があるんだわ
「最近の〜」なんて言っても量がたかだか数倍増えただけ。意味がない
それとDirectWriteに妙な幻想を持ってる人がいるみたいだけど
あれも大まかには逐一システムメモリにレンダリングしたのをテクスチャに転送してるだけだかんね
(DWRITE_RENDERING_MODE_OUTLINEあたりはなんか違ったかも)
>>793 全く気にせず作ってみ?
ゲームにならないレベルになるんだよ
文字表示するだけで60FPS出ないんだよ
そんなわけねーだろ
お前の作り方が根本的におかしいだけだよそりゃ
おまえらいいハード持ってるんだな
最近のゲームだと 1280×720 とかあるじゃん
しょぼい環境だと、毎フレームスワップするだけで 60fps でないんだぜ?
ノベルエンジンなんかだと文字描画速度はすごい重要だよ。スキップ中は毎フレームテキストが変化するしな。
MMO なら知らない
801 :
デフォルトの名無しさん:2012/03/15(木) 21:36:22.57
文字表示だけで60fps出ないって解像度1920*1080に1万文字とか表示したわけ?
RPGのアイテム一覧を1920*1080にびっしり出しても900fpsとか出るけど
文字用みたいな単純な頂点の場合、ジオメトリシェーダで頂点生成したほうが、
ビデオメモリから頂点データを読み出す帯域を節約できてパフォーマンスが上がる、って考えでおk?
おまえらせめてグラフィックチップぐらい明らかにしてから話をしろよ
グラフィックボード搭載機で速度的な問題がでるわけないじゃん
804 :
デフォルトの名無しさん:2012/03/15(木) 22:26:28.55
GTX460
>>802 誰もそんな話はしていないと思うが、フォントデータは基本ベジェ曲線だから
最低でもテセレータまで持ち出さないと無理でしょ
>>804 そんな国民の1%も持ってないような高性能なので語られても困るわけだが
CirrusLogic GD5464
そもそもテクスチャに文字かいとけば回転斜体拡大縮小縁つきなんて頂点弄るだけでいいのになんで書体やサイズ全部用意するんだよ。
キャッシュシステム作っとけばデータ更新だって数秒に1回あるかどうかだろ。
さすがに文字を主体で読ませる紙芝居で
フォントサイズ違うとボケる糞実装は見たことないわ
ゲームのテキスト描画ってコレ!って解決策のない、意外に泥臭い部分だと思う。
ゲームとかシーンによって求められる文字描画ってかなり異なるし、優先順位も違う。
テキストは拡大縮小すると目も当てられなくなりやすいけど、
拡大しながらフェードアウトみたいなエフェクト中に使う文字だったら、別に多少ぼけてても問題なくね?と思う。
紙芝居ゲーはテキスト品質重要だし、文字装飾だの異なるフォントだの対応する必要があるだろうけど、
事前に殆ど作っておけるし、アクションゲーとか程センシティブな安定性は要求されないと思うしなー。
スキップ中とか別に60FPSでなかろうが、速くスキップしてくれればどうでも良いってのがフツーじゃね?
まぁ、別にテキスト描画に限らんけど、高速化について語るなら、先ず条件をハッキリさせないと不毛だと思うわ。
マジ銀の弾丸はねぇ。
812 :
デフォルトの名無しさん:2012/03/16(金) 11:27:02.11
DirectXはゲーム用だからな
多バイトの事なんて真剣に考えてるとは思えん
じゃあMMORPGはどうやってやってんのよ?
だからMMOだって毎フレーム更新する必要が無いんだよ。
いい加減理解しろよ。
本当に頭が悪いな。
アウトラインフォントのテクスチャ化をどうにかして2倍速くするよりも、
キャッシュして使い回した方が数十倍から数百倍速くなると言うだけの話。
毎秒60回バカ正直に
文字をレンダリングしてから表示に回すような組み方してるんだとしたら
正直センスないからプログラム書くの辞めた方がいいわ
というか同業他社の為に辞めて欲しいね
それってベンチだろ。
>>811 DirectX10.1必須?
fpsがマイナス2億になって動かない
819 :
GTX460:2012/03/16(金) 14:50:07.53
もうお前らいい加減チップ名言えよ
名前欄にチップ名書いて発言しろ
1920*1080で画面にアイテム一覧240個くらい出しても900fpsくらい出るよ
普通にD3DXFontの描画だよ
1FPSは出るよ
>>811 デバッグビルドでうpして遅いとか言われても・・・
最適化なんて糞くらえなんです><
毎回キャッシュした内容をチェックするのもかなりコスト高いでしょ
短い文章ならいいけど長文だと特にね
824 :
デフォルトの名無しさん:2012/03/16(金) 20:54:07.58
描画に比べたら無いようなもんだ
自分はゲーム内容のためというよりも、
デバッグ用の情報を表示するために文字を出したくて、英語だけでイイ。
この場合は、26文字×2(大文字小文字)+記号程度を描いたテクスチャアトラスを事前に用意しておいて、
テクスチャアドレスだけで文字を変えるって方法でいこうかと思うんだけど、
パフォーマンス、扱いやすさの両観点でこれが最適と思ってイイよね?
826 :
デフォルトの名無しさん:2012/03/16(金) 21:02:14.91
アルファベットだけならそれでいいんだよ
外人の奴らも元々そのつもりだった
でも俺らは6万字以上扱うんだよ
最低でも2965文字は使いたいんだよ
827 :
825:2012/03/16(金) 21:16:39.02
>>826 ありがとう!
文字文化の影響って大きいね・・・
>>825 コンソール画面出すかかもう一個ウィンドウ作ってそっちのほうがよくないか?
829 :
825:2012/03/16(金) 23:15:24.97
>>828 フルスクリーンモードで映しながら文字出したいときもあるし、できればオンスクリーンかな。
830 :
デフォルトの名無しさん:2012/03/17(土) 01:25:59.47
馬鹿しかいないと思ったら初心者スレか。
馬鹿じゃなくても初心者なら仕方ない。
DirectX歴も3ヵ月未満ならこんなもんだろ。
スタートでコケたKARAのツアー
韓国の女性アイドルグループKARAの『STEP』が、23日発表の「レコチョク」着うたデイリーランキングで
初登場1位を獲得。相変わらずの人気ぶりといったところだが、実は先行き不安だという。
「KARAは今年、日本を含めたアジアツアーを行います。2月18日に韓国のソウルでスタートを
切ったのですが、なんと観客席がガラガラだったそうです」(芸能ライター)
日本では4月に5都市全10公演、さらに中国、香港、台湾、タイなどを回る大規模ツアー。
KARAにとっては初の単独ツアーでもある。
「ソウルでのライブの様子を映した画像がネット上に多数アップされています。それを見ると、
ステージ前は立見客がひしめいているのですが、観客席に目を移すと人影はまばら。
会場のオリンピック公園・体操競技場のキャパは1万5000人。日本の報道では観客数8000人でしたが、
そんなにいるとは思えない」(同)
日本では昨年、NHK紅白歌合戦に出場したほどの人気のはず。一体どういうことなのか。
「ヨン様、チャン・グンソク同様、日本ほど本国では人気がない。そのうえ、現地ではチケット代が
高くて売れず、結局、格安の当日券が出て、無料の招待券もばらまかれたようです。そんな状況なので
メンバーが涙する感動シーンで、ぞろぞろ退席する客もいたとか」(女性誌記者)
日本からの公式ツアーの料金は2泊3日で10万円前後。日本人ファンは実にいいお客さんだ。
「韓国は2公演、日本では10公演。日本が主戦場なのは明白です。事務所も稼ぐのは日本と割り切り、
韓国では大会場で公演したという実績作りに徹し、収益は度外視したのでは」(同)
http://wjn.jp/article/detail/0033117/
Viewマトリックスから視点の上から見た角度を逆算しようとしてるんですが
そこで適当な数字(1,0,0)をViewマトリックスに乗算して出来た座標のを
atan2(y, x)でラジアンを計算するとViewの上下角が微妙に影響してくるんですが
どうやって計算したらいいんでしょうか?
directx今からやろうと思うとオススメのバージョンどれ?
>>832 貴方の座標の算出の根拠は知らんが、角度を求めたかったら
YZ平面なりYX平面に射影する、その座標とカメラ座標は
平行になるように回転処理して射影しないと正しい角度は得られない
考えれば分かるだろ、直角の定規を斜めにしてたら
真正面からみても90度にはならないでしょ
>>834 そうなると、ビュー行列から平行移動成分を消す方法を知りたいんですが
エスパーすごいな
>Viewマトリックスから視点の上から見た角度を逆算しようとしてるんですが
俺はこれが何を言ってるのかわからない
つまり・・・つまりなんだね?
>>836 カメラの上から見た平面上の角度です
DirectX10にD3DXMatrixDecomposeという拡張があるみたいなんですが
まさにやりたいのはこれです
中身ってどうなってるんでしょう?
>>835 普通のワールド行列と同じ
41, 42, 43成分に0を代入
9にもあった
>>837 >カメラの上から見た平面上の角度です
いや、さっぱりわかんない
Yを高さとしたときのXZ平面上のワールド座標系でのカメラの回転角(rotate関数につっこむと同じ姿勢行列返してくれる)とかそんな感じか?
行列から無理やりだすんじゃなくて対象物の座標とっておいたら楽じゃね?
>>841 カメラの基準に成るものは入れ替わるのでカメラのビュー行列から変換する方がプログラム的にスマートです
でやっぱり
>>835の方法でもMatrixDecomposeでも
水平方向の回転が加わると垂直方向の回転にも影響が出る
カメラの上下では回転比率が違うようなことになってるんですかね?
ビュー行列って回転と平行移動とスケーリングを単純にやってるだけだと思ってるんですが
もうちょっと複雑な構造をしてるんですか?
>>842 スマート?
基本、行列の形にしちゃったらフルーツジュースみたいなもんで
もとのアップルやイチゴの形には戻らないんだよ
いまは逆変換できる範囲だけど
3回転目の2回転目なんてどうせ判断できないだろ?
速めにやり方に見切りをつけちゃったほうがいーんじゃないの?
Quaternionの計算が間違ってただけでMatrixDecomposeの方でちゃんと出来た
>>843 何回転しててもカメラはカメラですから最終的に向いてる方向が入ってる
>>844 いや、そのうち行列から逆変換で判断できない状態が必要になるんじゃないかってこと
847 :
デフォルトの名無しさん:2012/03/25(日) 09:25:54.32
'Tutorial02.exe': 'C:\Users\Tatsuro\Desktop\Tutorial02\Debug\Tutorial02.exe' を読み込みました。シンボルが読み込まれました。
directx2010 チュートリアルが実行できねえ
visualstdioは2010れす
エラーはこんなんでますた・・・
'Tutorial02.exe': 'C:\Windows\System32\ntdll.dll' を読み込みました。Cannot find or open the PDB file
'Tutorial02.exe': 'C:\Windows\System32\kernel32.dll' を読み込みました。Cannot find or open the PDB file
デバッガー:: ハンドルされていない続行不可の STATUS_DLL_NOT_FOUND 例外がプロセスの読み込み中にスローされました
プログラム '[8060] Tutorial02.exe: ネイティブ' はコード -1073741515 (0xc0000135) で終了しました。
848 :
デフォルトの名無しさん:2012/03/25(日) 09:27:02.92
きゃーユーザー名出てるううううう
はずかしいいいいい
まずはVisualStudioの使い方を学び、次にC++の勉強から始めましょう
850 :
デフォルトの名無しさん:2012/03/25(日) 10:44:36.78
directx11が入って無かった
教えてくださいな。
D3DX10mathの中のD3DXVECTOR3の比較で、operator ==()の所が
return x == v.x && y == v.y && z == v.z;
になってるんだけど、イプシロン使ってなくてfloatの誤差が出たりしないの?
そりゃ出るべ
float使ったもので==が禁忌なのはfloatそのものでもfloatを使ったクラスでも同じことだからだろう
対応環境とか互換性とか実績じゃね?
WebGLはIE動かないし、ブラウザ依存だし、
セキュリティー的にも規格レベルで修正必要みたいな話もあるみたいだし。
スマホ以外はまだまだFlushが安定っすよ。
HTML5周りがFlushと置き換わるにはあと5年〜10年必要じゃねーかな。
×置き換わる
○状況に応じて配置される
普通に今みたいに共存してると思う
IEで3D表示させようと思ったら何かある?
Silverlight
vrml
↑flashは?
ってかなんだこの変な名前は板間違えたのかと思った
flashってみんなoffにして使ってるよな。
Unityの記事読んでたんだけど
UnityのStage3Dとかいうのフル機能を使いたい場合
別途ライセンス料みたいなのをAdobeに納めないといけないのかな?
めんどいな
UnityのじゃなくFlashのStage3Dだた
fxcで、internal error: compilation aborted unexpectedly と出てコンパイルに失敗するんだが、回避方法がさっぱりわからない。
ちなみにコードはcs_5_0なCSシェーダーです。
IDirect3D9とIDirect3D9EX の違いって何?
共有メモリが使えるみたいな
867 :
営利利用に関するLR審議中@詳細は自治スレへ:2012/04/03(火) 18:29:47.12
DirectShowでAVIファイルとかを開くと勝手に出るビューウィンドウを表示させないようにする方法を教えてください
DirectShowスレなくなっちまったか。扱いはWindowsSDKだからAPIスレ逝け。
869 :
営利利用に関するLR審議中@詳細は自治スレへ:2012/04/03(火) 18:36:34.82
あっちは・・・
もう雑魚隔離スレになってるから機能してないんだよね・・・
ちょっとあっちは書き込みづらい雰囲気ではあるな
DirectShowと戦ってたときが懐かしなぁ。
ソースはNHKのNHK予算審議参院総務委
今日の片山さつきまとめ
「なんで、韓国の放送局が、NHKの中にあるの」 「なんでハングルメールブームを捏造するの」
「なんで紅白に反日時代を出すの」
ミュージックジャパンなのに韓国人を36%も混ぜてた ビックバンなどの大麻・人身事故そんな犯罪者も出してた
そりゃミュージックコリアwだろとw
「皇室」「王家」と辱めたことは 宮内庁に聞いたのか?
ほとんど答えてなかったね
「ニュース9の「在日参政権への誘導」については、今夜、謝罪放送しとけ」 も言ってた
H24/03/29 参院総務委・片山さつき&礒崎陽輔【犬HKを質す!!】解約お勧め
http://www.nicovideo.jp/watch/sm17394218 03.29 参議院総務委員会 片山さつき議員(自民)NHKの諸問題を追及
http://www.nicovideo.jp/watch/sm17394300
DXライブラリのDrawGraph関数みたいなものを作ろうとしています。
画像の読み込みは後回しで、とりあいず100*100の白い四角形を描写しようとしたのですが・・・数ドットずれてしまいます。
w = 640;
h = 480;
HWND hWnd = CreateWindow( _T("D3D Window Class"), windowtitle ,
WS_OVERLAPPED | WS_SYSMENU , 100, 100, w , h ,
NULL, NULL, wc.hInstance, NULL );
でウインドウのサイズは640*480になっているはずなのですが・・・ここで次のような問題が発生してしまいます。
DDKL::DrawGraph(640,480,0);だと、ウインドウ外に四角形が描写される。これは成功なのですが・・・
DDKL::DrawGraph(634,452,0);もウインドウ外に四角形が出て描写されてしまいます・・・。 ←おかしい!!
ウインドウのサイズは640*480になっているはずだから、四角形が画面右下からすこしだけ表示されないとおかしいと思うのです。
DDKL::DrawGraph(633,451,0);だと、ウインドウにぎりぎり1ドット映ります。
なぜ、ずれてしまうのでしょうか・・・?
どなたか、アドバイスをいただけると幸いです。
私が模倣しようとしているDXライブラリのDrawGraphの説明
ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R3N7
ちゃんとクライアント領域意識してる?
あと、数字によっては小数点以下の誤差があるよ。
クライアント領域・・・?本当だ!
>>874さん、即答ありがとうございます!
なるほど・・・描画のできる領域?だけで640*480というわけじゃないんですね・・・。
まさか、こんなに早く回答をいただけるとは・・・ありがとうございます;
spy++とか使うといい
チュートリアルに習って定数バッファにXNAを使っているのですが、射影変換がうまくいきません
具体的には何も表示されません
XMMatrixPerspectiveFovLHに入れているパラメータは上から
PI/180*45
16/10
0.0
1000.0
です
ワールド、ビュー、プロジェクション変数に全てXMMatrixIdentityを入れると変形されないポリゴンが表示されます
回転もZ軸方向に回らない回転ならうまくいきます
XMMatrixIdentity(単位行列)と回転がうまくいってるのでビューポートやバッファの初期化が間違っている、と言うことは無いと思いましたが、一応確認しました(そもそもコピペ
気になることといえば頂点バッファのByteWidthを頂点数+1しないとテクスチャがちゃんと貼れないということです
頂点数-1してみると表示される頂点が減って頂点数と同じ症状になります
使っているのはD3D11です
878 :
>>877:2012/04/13(金) 19:25:15.35
>>877補足
ワールド変数 = XMMatrixIdentity();
ビュー変数 = XMMatrixLookAtLH(
XMVectorSet(0.0f, 0.0f, -2.0f, 0.0f),
XMVectorSet(0.0f, 0.0f, 0.0f, 0.0f),
XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f) );
です
頂点バッファの事で気になったのでその周り調べてみると頂点レイアウトのFormat設定間違ってました
相変わらず射影変換されませんが、案外こんなのかもしれないんで一度コード全部洗ってみます
880 :
デフォルトの名無しさん:2012/04/17(火) 07:56:59.52
9.0cの良書おしえてつかさい
customUIがわからない
やーだよ
882 :
デフォルトの名無しさん:2012/04/17(火) 17:32:13.93
雑魚ばっかりだなあ
directxをスマフォやブラウザで使えるようにしたい
これって違法じゃないよね?
勝手に移植して販売して訴えられたりとかしたら困る
全然問題ないけど技術的な部分を理解した上でほざいているのか?
HLSL初心者ですが、ご教授お願いします。
MMDデータ使って、頂点ブレンドをシェーダーでやろうと思ったんですが、
D3DXMATRIX g_pMatrixAllBoneArray = new MATRIX [boneNum];
pEffect->SetMatrixPointerArray( "world_array", &g_pMatrixBoneArray, boneNum );
boneNum=140とか普通入れていいものなのでしょうか?なんか効率悪そうな気がして
.fx側で
float4x4 world_array[];
とかサイズを動的に宣言したいんですが、どうすればいいのでしょうか?
よろしくお願いします。
>>885 シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ
配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは?
>>886 ありがとうございます。
>シェーダーバージョン3以下だとfloat4が256個までなんでfloat4x4だと64個までしかレジスタに入らなかったりするよ
64個ですか。140個、全部送れれば実装が楽だったんですが。
> 配列を動的にってのはあれなんで最大サイズとっておいて使う分だけ転送とかは?
なるほど、そういうふうにやるんですね。
一般的に頂点ブレンドのボーンの行列配列というのはどのように送るべきなのでしょうか。
ボーン配列が全部入れられないので、サブセット毎に一時的な配列を作る。(40個ぐらい)
そのためのindexを作成する必要がある
頂点宣言はこんな感じで
struct ORIGINAL_VERTEX {
D3DXVECTOR4 pos;
D3DXVECTOR3 normal;
unsigned color; //頂点色
D3DXVECTOR2 uv;
float weight[MODEL_BLEND_COUNT];
unsigned short index[MODEL_BLEND_COUNT];
unsigned short indexInShader[MODEL_BLEND_COUNT];
};
ボーン数が多い場合、こんな実装が一般的なんですか?
なにか違和感があるような…
MMDの場合、MMEを見ればわかると思うが頂点のスキニングはCPUでやって
スキニング済みの頂点をGPUに送りそこでワールドビュープロジェクション変換してる
MMMの場合はサンプルのfxmを見る限りGPUでのスキニングでvs_3_0と書いてあるのでその制限の中でやっているのだろう
とりあえずシェーダーのセットアップが必要なマテリアル単位で
使っているマトリクス(ボーン)数だけを送ることになるんだろうけど
もちろんそれでも想定したレジスタ数を超えることがあるので
それが超えないようにプリミティブを分けて複数回の転送&描画が必要になる。
この分け方はまぁ自分で考えて。
例に出てる頂点宣言のORIGINAL_VERTEXだけど
プリミティブを分ける以上 隣り合った三角形が必ず同じ描画になるというわけないので
一つの頂点に indexInShader が一つにするのは至難の業になるかもしれず。
じゃぁブレンドインデクスはストリーム分けてってのはかなりのメモリが無駄になるような気もするので
分けた後の描画数分のVertexBufferとIndexBufferおよび
Matrixの元インデックス→シェーダーに送るインデックステーブルを生成するのが手っ取り早いと思う
頂点モーフやUVモーフがあるので生成した頂点に元の頂点インデックスを知る手段もなにかしらで生成。
でindexInShaderだけどどうせ256以内に収めるんだしD3DDECLTYPE_UBYTE4のunsigned char indexInShader[4]でいいんじゃないかな?
[4]って書いたのは.pmxのBDEF4のため。
SDEFをやるならVECTOR3のC、R0、R1も追加。
あとスキニングなら回転(拡縮)と移動だけなので転置して1列削れば
floatの数が12個なので1ボーンあたり3レジスタ分でいけてお得
>>888 規制がされてるので携帯から失礼します。
うーん、難しい
レス有り難う御座います
original_vertexは元のインデックスをC+側クラスで保存しときます
あー表情のプログラムのことモーフっていうのか
並べ替えたら破綻する可能性、全く考慮してませんでした。
とりあえずはC側では実装出来てるので、またあとで実装してみたいと思います。
PMXは色々機能有るんですね、クォータニオンの補間がBDEF2の場合しか上手くいかず、拡張し難い実装した気がしますw
続けて失礼します
unsigned charにします
D3DDECLTYPE_USHORT2がない理由がわかりました。
そんなにレジスタないからですね。
groupId : material0 での三角形単位の使用ボーンインデックス
0 : ( 9, 40, )
1 : ( 9, 72, )
2 : ( 20, 23, )
3 : ( 41, 42, )
4 : ( 73, 74, )
5 : ( 136, )
material0 内で使用したボーン. 9, 20, 23, 40, 41, 42, 72, 73, 74, 136,
material0でのグループ分け開始
indexBufferのindex : groupId
index 0: 4
index 3: 4
:
:
index 429: 4
index 432: 3
:
:
index 861: 3
index 864: 1
:
:
index 1059: 1
index 1062: 0
index 1257: 0
index 1260: 5
index 1833: 5
index 1836: 2
index 2073: 2
index 2076: 5
index 2121: 5
index 2124: 2
index 2241: 2
index 2244: 5
省略
とりあえず、ここまで進みました。わかりにくいと思いますが…
ここからIndexBufferを並べ替えてやろうかなーとか思ってます。
また、何かありましたらよろしくお願いします。
WindowProcとMainWndProcの違いって何でしょうか?
もう何がなんだか分からない…
Win32SDKのみの環境ならWNDCLASSEXのlpfnWndProcで設定された名前だから
なんでもいいんじゃない?どっちでも一緒かと
その他別のライブラリとかのコールバック関数なら知らない
複数のモデルが同じテクスチャを参照している場合は、
VRAMに送られるテクスチャの実体って一つなんですか?
たとえば3Dソフトなどで木のモデルを自動生成した(頂点の個数や座標は個々に違う)場合とかどうなるんでしょうか
Release()とGMA500について質問です
DirectX7以前に作られたゲームを
Win7とGMA500の機種でプレイすると
if (xxx) xxx->Release(); で
必ず落ちることがわかりました
それもDirect3DDeviceなど
GPUに関するインターフェイスだけです
igdumd32.dllでエラーが出てるので
インテル最新の8.14.10.2030にしましたが
結果は同じです
同じ機種にXPだと問題ないですし
GMA3000など他の環境でWin7でも
問題なく動いてます
互換性の問題で古いDirectXで
ビルドする必要があります
これは相性の悪い組み合わせとして
諦めるしかないのでしょうか?
環境を疑う前に自分のコードを疑え
>>896 もちろんやってます
最低限のDD、Primary、D3D、D3Deviceだけ作り
ReleaseしようとするとDirect3DDeviceでエラーです
テクスチャを読ませると
DirectDrawSurfaceで同様になります
このトラブルはVistaの頃から続いてるようで
DirectX9でも同じエラーを確認しました
何か決定的な対処法が見つかってないかなと思い
質問してみたわけです
試してみたところ
Releaseせずに処理を進めれば
問題なく動作してしまうので
GMA500が勝手にそうしてしまうのか
よくわかりませんが
Releaseが必要かどうかを知る方法は
ありませんよね?
それともVista以降ではReleaseせずに
上書きするようにCreateするんでしょうか?
でもSDKにはそんなこと書いてませんし
GMA3000やGMA4500では
Release必要だったので違いますよね
もっと自分のコードを疑え。
最低限のコードだけでも貼れば、誰かが間違いを指摘してくれるかも。
Releaseでクラッシュするとか、たいてい初期化していない物だったり、破棄済みを更に呼び出すとか素人コードな。
あとシングルスレッドのデバイスなのに複数のスレッドからアクセスするってのもNG。
他には、メモリ書き込みで他の領域を壊してしまったとか。
間違いなく、お前のコードにバグがある。
あれからいろいろ試しましたが
テクスチャを使用してポリゴン表示すると
Direct3DDeviceかテクスチャのReleaseで
エラー出るようです
テクスチャ読んでも使用しなければ普通にReleaseできてます
テクスチャを2枚読んで
2枚のポリゴンにそれぞれのテクスチャを貼り
終了するときReleaseさせると
なぜか片方のテクスチャだけReleaseできます
RenderStateでテクスチャのハンドルを渡しますが
これをNullで消そうとしてもエラーです
どうやら最後にRenderStateで伝えたハンドルの
テクスチャをReleaseさせようとすると
このエラーが出るようです
なぜ開放してくれないのかはわかりません
逆にデバイスがロストしたときは
デバイスやテクスチャは生きてるのに
実際はRelease済みになってるので
Releaseさせようとするとエラーです
DxSDK付属のサンプルでもエラーです
SAFE_RELEASEマクロが機能しませんので当然こうなります
DirectX7で作られたゲームや
DxLibで作られたゲームでも
同様な環境でGPUを使うと
同じエラーが出てるようです
その後の対処法が見つからず
情報が止まってしまっているので
解決できたのかどうかわかりません
ところでエラーって何なのさ?
例外?エラーコード?
>>901 AppCrashでigdumd32.dllからエラー出ます
903 :
デフォルトの名無しさん:2012/04/30(月) 04:51:34.49
技術面の質問ではないのですが、OSをwindows7の64bitに変えてから、DirectX製のゲームを起動すると
どのゲームでも「ヴゥゥー」といった感じの爆音のノイズが必ず流れるようになりました。原因を教えてください
904 :
デフォルトの名無しさん:2012/04/30(月) 08:25:21.52
やーだよ
最近、企画会社A社が日本進出を打診して落ち込んだ。所属アイドルグループの日本での活動を控え、
日本企画会社が提示した契約金が昨年水準に大きく至らなかった。既に昨年から日本でラブコールを受けていたが
国内でさらに実績を積んだ後に進出するという計画に支障をきたした。
K-POPが日本市場で萎縮する兆しを見せている。日本はアジアの最大規模の音楽市場だ。
日本エンターテインメント業界でK-POPを見つめる目が昨年に比べ熱気が冷めているという兆候が次から次へ感知されている。
今年の初めに日本で開かれた大規模公演のチケット販売率も大きく落ちた。
問題はこのような雰囲気がK-POPに否定的な影響を及ぼす恐れがあるというところにある。
既に今年開かれたいくつかのK-POP公演では赤字を記録したと伝えられた。先月に日本でアルバムを発売したいくつかの歌手の場合、
期待値にはるかに至らない成果を上げて関係者たちを落胆させた。
(中略)
ついこの前まではK-POPという看板だけ掲げれば韓国で存在感がない歌手でも日本では注目をあびた。
もう日本進出に対する方法の変化が必要だという声が出てきている。
歌手らの実力とスター性を整えるのはもちろん、企画会社と放送会社全てが日本国内のK-POP市場をさらに拡張できる方法を模索し、
徹底したビジネスマインドで接近をしなければならないという指摘だ。
K-POP日本で何が?…放送会社主導公演「憂慮が現実に」(韓国語)
http://starin.edaily.co.kr/news/NewsRead.edy?newsid=01092246599498088&DCD=A10202&SCD=EA21
来月末マスターアップで間に合わないので
GMA500とVista以降の2つを検出したら
クリーンナップでReleaseしないよう
対処することにしました
お騒がせしました
バグ入りで完成したとさ。おしまい。
いまどきDX7時代の遺産の保守作業か
他人事ながら悲しくなってくるね
このスレ読んでるだけで楽しい
ウィンドウモードでも遊べるようなFPSを作っているのですが、
マウスカーソールをゲームウィンドウの外に出した時でも、無効化、非表示に
するようにしたいのです。
SetCursorPosではペンタブ等で簡単に画面外をクリックできてしまいますし、
ShowCursorもクライアント領域内のカーソールしか非表示に出来ません。
なにかよい方法は無いでしょうか?
↑自己解決しました。ClipCursorで、カーソールの位置を制限できるそうです。
ペンタブでFPSやる奴いねえだろ
FPSは無いなって思えるけどフラッシュとかでたまにあるハエ叩きゲーとかだとペンタブのがやりやすいぜ
DirectX11の参考書で初心者〜中級者向けの本探してるんだがオヌヌメありますか。言語はC++で
916 :
デフォルトの名無しさん:2012/05/09(水) 15:44:50.23
D3DX廃止かよ。
俺はそんなにどっぷりとは使ってないけど、また混乱を呼びそうなことするなあ。
919 :
デフォルトの名無しさん:2012/05/09(水) 17:24:36.30
へえ
まぁ実際は幾つかのライブラリに分割って感じか。
完全に消失するのはXファイルくらいかな。DX10の時点で既にレガシーだが。
DXUTはサンプルフレームワークとしての意味があったから、近いものは作られる気がする。
簡易フレームワークとしては、既にDX10の時点でgdgd感全開だったしなぁ。
3年前ぐらいにMSがUnrealエンジン買い取って
DirectXを直接触る人はもう消えるみたいな話してたな
ゲームエンジンは一般人でも触れるようになってるけどな
やっぱりMSのゲームエンジンほしいな
XNAにあった奴もDirectXで使えるようになるのか
WinXP以降で、VRAMを直接キャプチャする方法はないですか?
デバイスコンテキスト取得して〜、ではなく、ほぼダイレクトにプライマリ画面を見に行きたいです。
たとえ棘の道でも。
デバイスコンテキストを使えば、ほぼダイレクトにプライマリ画面が見れます。
がぜる(ibs...)さん
どうして反日人間を日本向けのCMに起用するのか、その神経が分からん。
ロートは猛省するべき。
電通に起用を強要されたか?それならそっちのほうが本物の脅迫犯だ。
ちんさむ(chi...)さん
愛国者は逮捕され、売国奴は逮捕されず。
おかしいよ日本の法律。
legrock88(exi...)さん
花王・ロート製薬・UHA味覚糖など反日企業の商品は買いません。
なぜかって?
簡単じゃん。
日本人だから。
shineyachon(sen...)さん
彼らの動画を見たが、それほど悪質とは思えなかったがな。
逆に彼らに「竹島はどこの国の領土か」と聞かれ、ロート側は全く答えようとしなかった。
明らかにロート側にも問題がある。
今はネットの普及で売国行為をした企業は、あっという間に炙り出され袋叩きに遭う。
それだけ現在の日本には、韓国アレルギーが充満している。企業は察しなければいけない。
○| ̄|_ =3 ブッ(x5x...)さん
ロートだろうが、サントリーだろうが、
朝鮮人を起用し、朝鮮を擁護する会社の製品は私は買わない。
最近は「韓国」と聞いただけで鳥肌が立つわ。
http://headlines.yahoo.co.jp/hl?a=20120510-00000052-cnippou-kr
D3DX廃止ってことはD3DXMATRIXとかD3DXVECTOR3 とかの構造体も無くなっちまうのか?
必要なら自分で定義するなりなんなり
>>927 いや数学関係はDirectXMathに移動って書いてあるだろwww
生で直接使ってたコードが大量にあるんならご愁傷様だが…。
速さが欲しい辺りだし、大体は生でイカないのかしら
>>924 >デバイスコンテキスト取得して〜、ではなく、
とわざわざ書いたのに・・・。
ネトゲなどはマクロ対策(?)でデバイスコンテキスト取得しても普通は見れませんし、
オーバーレイなどあるので。
>>931 他人の作ったプログラムに対してどうこうしたいっていうのはスレ違い
フルスクリーンモードのほうが、他のウィンドウとかを描画しない分、パフォーマンス的に有利なんでしょうか?
Directx9です。
>>935 昔はフルスクリーンが速かったが
今はウィンドウモードの方が早い
DirectX9なら確実にウィンドウが速い
どのバージョンから変わったかはしらんけど
ぐぐればいくらでも情報出てくるはず
937 :
935:2012/05/15(火) 22:16:22.60
>>936 そうだったんですか!
勉強になりました!
ありがとうございました!
DirectXの参考書とかでよく「Vista対応版」と書かれているものがありますが、普通のとどのように違うのでしょうか?
>>939 その2つは3D描画処理の開始と終了をドライバに伝えるのが目的で
デバイスロストのチェック以外は中で何をするかは特に決まってないんじゃないか?
http://kie.nu/aAP 問題が再現できるコード
TextLayout.SetInlineObject(inlineobject,new TextRange(1,1));
TextLayout.SetInlineObject(inlineobject,new TextRange(2,1));
とすると2文字目にあるインラインオブジェクトが表示されないんだが、うちだけ?
944 :
935:2012/05/17(木) 23:48:17.61
>>940 あ、嘘だったんですか・・・
確かに、同じプログラム、レンダリング解像度なら、フルスクリーンのほうがFPS上がりますね・・・
945 :
939:2012/05/17(木) 23:52:18.72
>>944 フルスクリーンだとVSYNC待ちが自動で入る設定で
ウインドウの方が速い!って勘違いする奴はたまにいるw
947 :
935:2012/05/18(金) 00:50:55.90
>>945 DirectX6〜7の頃だとリファレンスラスタライザやビデオカードの
ドライバのソースコードが公開されてたりで、仕様上曖昧な部分を
ソースで確認できたんだけどね。
最近はそういうサービスがないなぁ。
D3DXMatrixRotationYawPitchRoll(FLOAT Yaw, FLOAT Pitch, FLOAT Roll)
XMMatrixRotationRollPitchYaw(FLOAT Pitch, FLOAT Yaw, FLOAT Roll)
1.なぜD3DXからXNAで関数名の末尾が変わったのでしょうか
2.なぜXNAのほうは関数名と引数の順序が異なっているのでしょうか
>>949 そんなこと気にしてたらハゲるぞ。
どっちも大した意味はなくて、その関数を書いた人がそういう気分だっただけ。
計算の順番はroll→pitch→yawなので、ある意味D3DXの順番が不自然だった。
(D3Dは行ベクトルが基本だから左から右に変換が進む)
pitchはX軸回転、yawはY軸回転、rollはZ軸回転だから、引数はその順にしただけかと
951 :
949:2012/05/21(月) 04:48:56.41
>>950 おお、ご回答ありがとうございます!
XNAの関数名は計算順(vMMMの行列表現順)、引数はRotationX/Y/Zの順になっていると、
なるほどすごくしっくりきました。
D3DXで初めてオイラー角に触れたので頭の中で「YawPitchRoll」が染み込んでましたが、
計算順なりxyz順にするほうが合理的ですね(列ベクトルでの表現にこだわらない限りは)。
もしかしてVCのexpressってなくなるのかな?
なんで?
答えはもちろん。
>>955 Visual Studio 11 Express for Windows 8
って言うのに統合されてるのかな
ただ実行ファイルがネイティブの場合XPが除外されるみたいな感じ?
言語ごとじゃなくてターゲットプラットフォームで分けるようにしただけか。
そしてついにXPが滅せられる時がきたか…。
.NET frameworkを使わなければ、「C++のWin32アプリ」とかで作ったバイナリはXPでも動く…よね?
動いてくれないと困るよ…会社で導入する言い訳がますます作れなくなるじゃないか。
VS2010を入れる理由が思いつかず今も2008を使ってるのにさ。
作ったバイナリもそうだけど、VS自体がWindows7以降でないと動かないというのは本当なんだろうか。
959 :
958:2012/05/21(月) 18:12:12.44
すみません完全にVisual Studioスレと間違えました。958は忘れてください。
バイナリもIDEもダメ
某blogみたいに魔改造すればどうにかなるかもしれんが
MSDN blog読む限りVS2010インストールすれば、XPでも動くバイナリも作れるんじゃないの。
VS2010インストールしなくても済むようにするオプションも評価中とも書いてある。
それはVS10のコンパイラとライブラリを使ってるんだからVS11で使えるとは言わない
VC11ツールキットではXPターゲットのバイナリが作れないのと、
VS11でXPターゲットのバイナリを作る手段が無いのじゃ話が全然違うだろwwwww
ま、でもIDE自体がXPじゃ動かないなら、デバッガとかの事も考えるとVS2010にも頼らざるえないのも現実だが。
早く滅びねぇかな、XP…。Direct3D9はもういいよママン…。
MaxTextureRepeatが0であるようなグラフィックチップ(GMA900やGMA950等)の場合、
テクスチャマッピングの繰り返し数の上限はどう考えればいいのでしょう?
VC11ってリリースは本年度末だよね
だとしたら今更XPサポートしても先がないし
結局問題なさそうだけど
どっちかっていうと、ExpressがMetro専用になるってことの方が
このスレ的には重要だと思う。
まじで…。
MetroアプリでDirectX使う場合どんな感じになるんだろうな。
WPFアプリでDirectX使う場合はDirect3D9インターフェスのフレームバッファに一端コピーとか
すげぇ泥臭い仕組みだった気がするんだが、まさか似たような事になっちゃいないよな…。
Express(C++の)でDirectX触ってる人結構いるんかね。っていうか学生さんとかはそうなるんかね。
考えてみればDirectXとリソースエディタって守備範囲が離れてそうだからいい組み合わせなのかも。
いや、俺はExpressにない機能はリソースエディタくらいしか使えてないのでね。
っていうか学生はむしろアカデミックパックがあるじゃないか…。
>>968 おお、サンクス。
実際に使ってみないと何とも言えないけど、ざっと見た限りWPFみたいな泥臭さはなさそう。
>>969 俺的にパッケージ版の機能で欲しいのはプロファイラと静的コード分析だけど、ULTIMATEとか無理ですお…。
それ以外はExpressでも十分な気がする。
ゲームエディタ作るならATL/MFCが欲しいって人もいるかも。
俺は.NETインターフェース作ってC#でなんとかしてるけど、インターフェース作るのがめんどいのと変更しにくいのが難点…。
>>966 マジかよ!!
DXライブラリついに廃業か?
今まで通りだとすれば古いVSはダウンロードできなくなるだろうし
マジでやばいな
>>971 2010Expressが今までどおり提供されるから安心しなw
2005のExpressは未だにDLできるわけだが
>>968 意外にいい感じなんだけど問題はこれ
配布がストアのみしかできないんだよな・・・
XAudio2の音声再生で、IDirectSoundBuffer8::GetStatus のように、
ある音声について再生中かどうか知る方法ってありますか?
IXAudio2SourceVoice::GetState
ではなくて?
DirectSoundの方がどんなだったか忘れた
ありがとうございます。再生中かどうかの判定ができました。
IXAudio2SourceVoice::GetStateで戻される構造体が BuffersQueued > 0 の場合に、
音声データが再生中であると判断できるみたいです。
ちなみにDirectSoundの時は、GetStatusで再生中だとわかるフラグが取得できました。
directx11はvc2008で開発できますか
できる。次の版でどうなるかは知らんけど、現時点で最新のSDK(June 2010)には
サンプルにVC2008用とVC2010用の*.slnが付いてる。
うめ
DXのサーフェスからHDCとれなかったっけ??よく知らんけど。
テキスト用のスプライト生成して、Font機能を使って書き込んだらよいのでは?
>>981 他人が作成したソフトを改造したりするのは板違いです
985 :
981:2012/06/02(土) 12:25:44.83
あ、既にあるソフトに対してか。
>>983は忘れてw
>>981 基本的にPresentをフックして描画する。
チョン系プログラムが対象ならプロテクト回避も必要になるだろう。
>>DirectX絡みの開発は経験がない
ちゃんと学習してください。覚えなければ、あなたの目標とすることは実現できません。
色々レスありがとうございます。
ゆっくり勉強してみます。