2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【C++】 DirectX初心者質問スレ Part35 【C】

1 :デフォルトの名無しさん:2011/05/20(金) 18:56:16.68
回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

現在の最新バージョンはDirectX 11です。

前スレ
【C++】 DirectX初心者質問スレ Part34 【C】
http://hibari.2ch.net/test/read.cgi/tech/1298067098/

2 :デフォルトの名無しさん:2011/05/20(金) 19:41:32.99
前スレでGDIからテクスチャ作ってた者ですが
ID3DXFontでテクスチャをターゲットにしてレンダリングしても
テクスチャが作れますね。
こっちの方が品質いいかも。

3 :デフォルトの名無しさん:2011/05/20(金) 20:41:00.13
ID3DXFontって安置エイリアスかかる?
おれの環境だとどうやってもGetGlyphOutline()から作った方が綺麗になる。

4 :デフォルトの名無しさん:2011/05/20(金) 20:55:04.15
キーボード、マウス、ジョイスティックといった入力をでっちあげるというか投げる方法ってありますか。
JoyToKeyの逆っぽい事やりたいんですけど。

5 :デフォルトの名無しさん:2011/05/20(金) 21:28:49.01
DirectXとは無関係なのでスレ違い

6 :デフォルトの名無しさん:2011/05/20(金) 21:35:22.80
>>3
かかる。
こっちだとD3DXFontの方が綺麗

>>4
キーロガーで調べてみ
たぶんwin32である

7 :デフォルトの名無しさん:2011/05/21(土) 00:42:17.45
今はどうか知らないけど昔に見たID3DXFontは文字の上下の部分が
グラデーションかからずに切れてたな

8 :4:2011/05/21(土) 01:10:30.40
>>5,6
ジョイスティック関連なのでDirextXかなと思ったのですがwin32APIで調べてみます。
ありがとうございました。

9 :デフォルトの名無しさん:2011/05/21(土) 01:20:22.47
グリフのビットマップ欲しいだけならFreeTypeとか導入楽だよ
GDIよりボケ気味だから好み別れるけど

10 :デフォルトの名無しさん:2011/05/21(土) 09:37:49.10
とりあえず、フォントまわりは
http://marupeke296.com/DXG_Font.html
ここ読んであとは自分で改造するのが良いかと

11 :デフォルトの名無しさん:2011/05/21(土) 12:26:46.33
それだとボケるんだって。
大きい奴しか綺麗に描画できない

12 :デフォルトの名無しさん:2011/05/21(土) 12:49:39.56
>>11
あなたがどのレスをした人なのか分からないので、なんとも言えないんだ
ボケてくれたほうが良い場合もあるわけだし…

ボケさせたくないってレスあったっけ?

13 :デフォルトの名無しさん:2011/05/21(土) 13:37:15.99
>>12
ごめん。
前スレで小さい文字を書くときに
アンチエイリアスが綺麗にならないと書いていましたものです。

14 :デフォルトの名無しさん:2011/05/21(土) 15:01:15.77
>>13
それは難しいなぁ
OSでも「小さい文字のアンチェリが綺麗に!」っていうのが売りにされてるくらいだし

15 :デフォルトの名無しさん:2011/05/21(土) 15:39:35.00
Windowsのフォント描画は、ピクセルの境界にフィットするように補正されるけど
GetGlyphOutlineは内部で2倍とか4倍で描画したのを縮小しているだけだから
補正の基準が縮小前のバッファになってしまうね。

CreateFontでアンチエイリアス使用のフラグつけて、TextOutとかで描画すれば
水平線とかがボケないで描画できるけど、これはこれでMSゴシック等で問題あるし。

横だけ4倍とかで描画したのを縮小して使うのが一番無難かねぇ。

16 :デフォルトの名無しさん:2011/05/21(土) 17:23:06.91
>>11
D3DXFontじゃだめなん?

17 :デフォルトの名無しさん:2011/05/21(土) 20:54:40.35
>>16
本当に描画の高速化が必要なわけじゃなくて
ビルボード文字列にチャレンジ中なんですよ。

でも汎用的な文字列のビルボードって使いづらいですよね。
キャッシュを作るとVRAM消費が大きいから巨大な文字には使えないし、
ゲーム用のフォントは手書きの絵が向いてる場合が多いから
結局ノベルを除くとD3DXFont+画像手書きフォントが良いのかなぁ。。。

18 :デフォルトの名無しさん:2011/05/21(土) 21:04:10.09
アンチエイリアスをアンチェリと勝手に略す奴は例外なくクズ。

19 :デフォルトの名無しさん:2011/05/21(土) 21:39:37.00
1>------ ビルド開始: プロジェクト: NimotsuKunFinal, 構成: Debug Win32 ------
1>コンパイルしています...
1>Parent.cpp
1>d:\gamelib\src\nonfree\nimotsukunfinal\sequence\parent.cpp(1) : fatal error C1083: include ファイルを開けません。'GameLib/GameLib.h': No such file or directory
1>StageSelect.cpp
1>d:\gamelib\src\nonfree\nimotsukunfinal\sequence\stageselect.cpp(1) : fatal error C1083: include ファイルを開けません。'GameLib/GameLib.h': No such file or directory
1>Title.cpp
1>コードを生成中...
1>ビルドログは "file://d:\GameLib\src\NonFree\NimotsuKunFinal\Debug\BuildLog.htm" に保存されました。
1>NimotsuKunFinal - エラー 11、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

こんなのが出るんですけど、パスをいじればいいのでしょうか?環境変数もいじったけど、うまく読んでくれません。
どうしたらいいのでしょうか?


20 :デフォルトの名無しさん:2011/05/21(土) 21:45:13.83
荷物くんファイナル

21 :デフォルトの名無しさん:2011/05/21(土) 21:55:56.32
GameLib/ってフォルダにGameLib.hはあるのか。それが問題だ

22 :デフォルトの名無しさん:2011/05/21(土) 22:19:49.85
>>17
64ピクセル×64ピクセルの32Bitカラーで1文字あたり16KB。
日本語で漢字なんかを含んで例えば300種類の文字が出てきても
VRAM消費は4.7MBくらい。キャッシュ作っても最近のビデオカードなら
VRAMはかなり余裕だと思うぞ。

23 :デフォルトの名無しさん:2011/05/21(土) 22:43:11.52
>>21
いえ、それがそのファイルがあるのは
D:\GameLib\2DGraphics1\include\GameLib
なんですよ。
実はある教本の通りにやってるんですけど、パスを書いてある通りにやっても通らないんですよ。
「ゲームプログラマになる前に覚えておきたい技術」って本なんですけど。
んで、環境変数をいじったり、ライブラリのパスを変えたりしてるんですけど、通らないんです。
頭の方はこういう記述なんでGameLibの一つ上の階層のフォルダを指定してやれば通るのかと思ったんですけど、通らないんですよ。

#include "GameLib/Framework.h"
using namespace GameLib;

#include "State.h"
#include "File.h"
#include "Image.h"
#include "Sequence/Parent.h"

これってどこをいじればライブラリを読み込んでくれるんでしょうか?

24 :デフォルトの名無しさん:2011/05/21(土) 22:53:19.54
DirectXとは一切関係ないからここでやる内容じゃないな

25 :デフォルトの名無しさん:2011/05/21(土) 22:55:30.02
DirectXとまったく関係ねーです。
たとえば、こういうところで聞いてみたらどうでしょうか。

★初心者にVisual C++を教えるスレ★ Part37
http://hibari.2ch.net/test/read.cgi/tech/1299982561/


ソースファイルとヘッダファイルの位置関係がよくわかりませんですが、パスを通してるなら
#include <GameLib/Framework.h>
などと変えてみたら、どうなるんでしょう。

26 :デフォルトの名無しさん:2011/05/21(土) 22:56:29.04
>>24
そうだったのか!ありがとう!
>>25
そっちに行きます。ご迷惑をおかけしました。

27 :デフォルトの名無しさん:2011/05/21(土) 22:57:22.85
>>23
>1>d:\gamelib\src\nonfree\nimotsukunfinal
>いえ、それがそのファイルがあるのは
>D:\GameLib\2DGraphics1\include\GameLib

いきなりパスが違うように見えるんだが。
IDEの設定で、ディレクトリパス追加でもしとけば


28 :デフォルトの名無しさん:2011/05/21(土) 22:58:16.99
1>------ ビルド開始: プロジェクト: NimotsuKunFinal, 構成: Debug Win32 ------
1>コンパイルしています...
1>Parent.cpp
1>d:\gamelib\src\nonfree\nimotsukunfinal\sequence\parent.cpp(1) : fatal error C1083: include ファイルを開けません。'GameLib/GameLib.h': No such file or directory
1>StageSelect.cpp
1>d:\gamelib\src\nonfree\nimotsukunfinal\sequence\stageselect.cpp(1) : fatal error C1083: include ファイルを開けません。'GameLib/GameLib.h': No such file or directory
1>Title.cpp
1>コードを生成中...
1>ビルドログは "file://d:\GameLib\src\NonFree\NimotsuKunFinal\Debug\BuildLog.htm" に保存されました。
1>NimotsuKunFinal - エラー 11、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

こんなのが出るんですけど、パスをいじればいいのでしょうか?環境変数もいじったけど、うまく読んでくれません。
どうしたらいいのでしょうか? そのファイルがあるのは
D:\GameLib\2DGraphics1\include\GameLib
です。

29 :デフォルトの名無しさん:2011/05/21(土) 22:59:09.86
>>27
IDE????
やべえ・・・あなたが何言ってるかわからねえぇ・・

>>28
すいません誤爆しました。

30 :デフォルトの名無しさん:2011/05/21(土) 23:09:26.78
DirectX以前だプログラミングについてもうちょっと慣れてから手を出せ
セガ本はお前には早過ぎる

31 :デフォルトの名無しさん:2011/05/21(土) 23:09:27.47
>>29
その本の63、64ページを穴があくほどよく読め


32 :デフォルトの名無しさん:2011/05/21(土) 23:20:33.85
>>30
ごもっとも。
>>31
どうもこれは新しいプロジェクトを作るための設定のようですね。


33 :デフォルトの名無しさん:2011/05/21(土) 23:25:21.98
>32
は?
駄目だお前。VisualStudioの初歩から学びなおしてこいよ。


34 :31&33:2011/05/21(土) 23:44:22.20
GameLib\2DActionGame\include\GameLib にあるGameLib.h を お前の環境の D:\GameLib\2DGraphics1\include\GameLib
にコピーすれば解決するだろ。。。

もしくはGameLib\2DActionGame\include\GameLibをインクルードファイルのディレクトリに含める。
お前の設定した場所にはGameLib.hは存在しない。(フォルダ見ればわかるだろーが)

まあ、この本はこの手の初心者殺しのトラップがあちこちにはってあるから。
今後、読み進めるならなんでも本の通りにしかできないようでは先に進めないよ。


35 :デフォルトの名無しさん:2011/05/22(日) 00:45:46.78
>>33
そうします。ホントダメな感じがします・・・
>>34
トラップ・・・そうなんですか・・・セガに電話してみます。

36 :デフォルトの名無しさん:2011/05/22(日) 12:55:21.53
>>35
ちょw根本的におかしいわ

37 :デフォルトの名無しさん:2011/05/22(日) 13:06:02.67
まあコツコツ基礎から勉強していくしかないね。

38 :2:2011/05/22(日) 14:09:32.41
ビルボードフォントについて >>2 で書いた事をやってみたのですが、
GetGlyphOutline()でテクスチャ作ったときより
綺麗に補正がかかったID3DXFontと同じビルボードが作れました。
ロックして書き込むより楽ですね。

>>22
そうですね。512x512とかだと1文字1MBになりますが、
64x64ぐらいまでに仕様制限すれば1024x1024のテクスチャ一個に
200字くらい入ってインデックスバッファが効きますね。

39 :デフォルトの名無しさん:2011/05/22(日) 17:26:44.63
>>35
ツールに遊ばれる程度ならば、この先何やっても出来ないから諦めて帰ってよ。

40 :デフォルトの名無しさん:2011/05/22(日) 19:03:12.34
>>35
誰でも最初はそう。
いろいろ試しているうちに、いつか感覚がつかめてくる

41 :デフォルトの名無しさん:2011/05/22(日) 19:31:05.08
なんでここってIDでないんだろうな

42 :デフォルトの名無しさん:2011/05/22(日) 20:00:05.62
ゲームプログラムなら俺に聞けってクソだな
何処に聞けばいいのだ

43 :デフォルトの名無しさん:2011/05/22(日) 22:32:33.08
自分の胸

44 :デフォルトの名無しさん:2011/05/23(月) 12:33:50.49
>>41
出たら便利だと思うんだけどななんでだろう?

ちょっと確認したいんだけど
前スレに出てたFreetypeのライセンスってBSDライクのライセンスかGPLかどっちかを選択しろ
って事かな?
それとも両方?

45 :デフォルトの名無しさん:2011/05/23(月) 20:27:25.60
デュアルライセンスだから提示された中から好きなライセンスを選択

46 :デフォルトの名無しさん:2011/05/24(火) 06:49:45.52
>>45
片方でいいんですね
ありがとー

47 :デフォルトの名無しさん:2011/05/26(木) 16:31:22.30
すみません、DirectX SDK(June 2010)をインストール
しただけではアプリケーションウィザードは使えないのですか?
DirectX9 SDKとかをインストールしないとだめですか?
それともVC++2010だとだめとかですかね。

48 :デフォルトの名無しさん:2011/05/26(木) 18:11:40.24
>>47
http://blog.livedoor.jp/coelacanth_blog/archives/cat_50241148.html

話し変わるけど
前スレでDirect Inputを別スレッドにするっての見かけて
描画スレッドを別スレッドにすることにチャレンジしてみたんだが
ウィンドウのメッセージループやメニューバーとかGDIの描画と
DirectXのBeginScene()〜描画〜 EndScene()〜Present()が別スレッドで
良いのだろうか。

49 :デフォルトの名無しさん:2011/05/26(木) 18:13:07.90
あ、ウィンドウループと描画スレッドを同じにして
ロジックのスレッドを別スレッドにすればよいのか

50 :デフォルトの名無しさん:2011/05/27(金) 10:57:04.21
トリプルバッファのときにテクスチャにレンダリングする場合、
Device->GetBackBuffer(UINT backbuffer, ...)
Device->SetRenderTarget(UINT index, ...)
これらの第一引数に1を(バックバッファの2枚目)を指定するであってる?

51 :デフォルトの名無しさん:2011/05/27(金) 13:47:18.06
>>48
ありがとうございました

52 :デフォルトの名無しさん:2011/05/27(金) 16:14:08.56
GetDescなどのコストってどのくらいなのでしょうか?
やっぱり保持しておいたほうがいいんでしょうか?

53 :デフォルトの名無しさん:2011/05/27(金) 16:46:32.41
なんだそりゃと思ったらDX10だ

54 :デフォルトの名無しさん:2011/05/27(金) 17:27:26.30
>>52
コストほとんどない。
単にシステムメモリーからシステムメモリーへのコピー

55 :デフォルトの名無しさん:2011/05/28(土) 16:08:18.32
dx9で、PSでdiscardされたものを除いて、
出力されたピクセル数を得る方法があったら教えてください。

56 :デフォルトの名無しさん:2011/05/29(日) 17:39:03.06
今direct3D 11のマニュアルを読んでいて
Direct3D 11 では、機能レベルという新しいパラダイムが導入されました・・・」
とありますが、何がすごいんですか?
説明内容を見ていると
「デバイスを作成するときに、必要な機能レベルに対応する
デバイスの作成を試すことができるようになりました。
デバイスを正常に作成できれば、その機能レベルが存在しています。
作成できない場合、その機能レベルは目的のハードウェアでサポートされていません。
それより下の機能レベルでデバイスの作成を再試行するか、
アプリケーションの終了を選択します」という説明を見る限り、今までと
大差ないように感じます。
(以前のバージョンの Direct3D では、ビデオ カードが Direct3D
のどのバージョンに対応しているかを確認し、そのバージョンに応じて
アプリケーションをプログラムする方法がとられていました。)

57 :56:2011/05/29(日) 17:41:52.71
出来ることと出来ないことが機能レベルという
少数のバージョンにまとまっているから
把握しやすいぐらいでしょうか?

58 :デフォルトの名無しさん:2011/05/29(日) 23:56:29.59
そんな感じ。
「最新の技術はサポートしてるのに、古い技術はサポートしていないグラボ」
とか、そういうもう面倒でたまらない連中が存在しないってのはありがたい

59 :デフォルトの名無しさん:2011/05/30(月) 01:08:44.47
>>54
ありがとうございました

60 :56-57:2011/05/30(月) 10:05:21.85
>>58
ありがとうございました。

61 :デフォルトの名無しさん:2011/05/30(月) 13:07:55.75
directX9なんですが、
ID3DXSprite でテクスチャを2D描画してみたんですが、1500枚ほど出しただけで
動作がもたつくようになるんですが、こんなもんなんですかね?

Begin〜Endは1回だけです。

62 :デフォルトの名無しさん:2011/05/30(月) 13:30:33.97
テクスチャのサイズが不明なら動作スペックも不明
それでこんなもんなんですかねとか、気が狂っているとしか思えない。

63 :デフォルトの名無しさん:2011/05/30(月) 13:39:39.35
あんま関係ない横やりで悪いけど
ID3DXSprite ってなんでBegin()-End()が必要なんだろ?
キャッシュ作るような余地があるのだろか

64 :デフォルトの名無しさん:2011/05/30(月) 13:51:03.80
ID3DXSpriteは描画のたびにシステムメモリからビデオメモリにデータ渡す必要があるし
そもそも描画の呼びだしにオーバーヘッドがあるから、何度もDrawするんじゃなくて
インスタンス化とか使って、一度のDrawで全部描画すればいい


65 :デフォルトの名無しさん:2011/05/30(月) 16:43:37.61
>システムメモリからビデオメモリにデータ渡す必要があるし
自分で頂点シェーダにビルボードのX,Y,U,V座標の引数渡せば
頂点4つ分→頂点1つ分になり転送量が少なくて早いのか?

頂点バッファをD3DLOCK_DISCARDでロックして値をコピーするなら
コンテナ・キューで処理するからロックコストはないらしいぞ

66 :デフォルトの名無しさん:2011/05/31(火) 06:04:03.80
VC+DirectX11で質問です
PSSetShaderResources でセットしたテクスチャを外す方法はありますか?

ステンシルバッファ(レンダリングターゲット)⇔テクスチャの行き来をする為に
ShaderResourceにセットしたままレンダリングターゲットにセットすると、
デバグビルドの実行時ログでWARNINGがズラズラ出て気持ち悪いのです。

NULLセットだと落とされます

67 :66:2011/05/31(火) 06:07:03.37
補足です。
・実行自体は問題は無いように見えます(ERRORでなくWARNING だから?)
・適当な1x1のテクスチャをPSSetShaderResourcesで上書きセットするとWARNINGは消えます

68 :デフォルトの名無しさん:2011/05/31(火) 18:31:54.76
ID3DXSpriteってつかいやすい?
腹立つわー

69 :デフォルトの名無しさん:2011/05/31(火) 18:40:14.96
>>68
使いやすいよ

70 :61:2011/05/31(火) 22:49:12.85
気が狂ってて失礼しました。
WindowsXP, Athlon64 X2 2.0GHz, メモリ1GB
GeForce 6600GT, VRAM 128MB, ハードウェア頂点処理
ウィンドウモード(640x480 D3DFMT_R5G6B5)
DirectX9 SDK Jun2008

の環境で 128x128 のテクスチャを ID3DXSprite::Draw で描いたら
1500枚付近から動作がもたつくようになりました。

// 1500枚の実装
pSprite->Begin(D3DXSPRITE_DONOTSAVESTATE | D3DXSPRITE_DONOTMODIFY_RENDERSTATE);
for(int i=0; i<1500; ++i){ pSprite->Draw(); }
pSprite->End();


インスタンス化かどうか分かりませんが、
DrawIndexedPrimitiveで一度に描くとかなり早くなりましたので
こっちを勉強してみようと思います。
ありがとうございました。

71 :デフォルトの名無しさん:2011/05/31(火) 22:58:51.43
>>70
そりゃ、だってそれ、ただ単に各頂点が一続きじゃないってだけで
面数1500のメッシュを表示するのと同じ事だから、
メッシュ表示するのと同じ(DrawIndexedPrimitive)でいけるでしょっていう
全部三角形だとすると、たかだか頂点数4500だし

72 :デフォルトの名無しさん:2011/05/31(火) 23:22:20.50
そりゃ 128 × 128 × 1500枚 ≒ 2400万ピクセルだぞ
Zバッファ使ってるならいいけど、半透明で下から書いてたりしたら
GeForce 6600GT だともたついてもおかしくないピクセル数

73 :デフォルトの名無しさん:2011/06/01(水) 03:59:56.70
2D厨はなんでそんな高性能なハードでそんなショッパイモノしか作れないの?

74 :デフォルトの名無しさん:2011/06/01(水) 08:19:35.34
7年前の 6600GT が高性能…?

75 :デフォルトの名無しさん:2011/06/01(水) 08:32:36.15
>>74
多分 >>73 は前後の話と関係ない、単発のツイートだと思うの


76 :デフォルトの名無しさん:2011/06/01(水) 08:46:01.44
6600GTつかってる俺に謝れ!
新しいPCはゲーム作ったら買う

77 :デフォルトの名無しさん:2011/06/01(水) 08:49:41.78
ひぐらしデイブレイクの影バグが起こらない最新のグラボが6600GTなんだよ!

78 :デフォルトの名無しさん:2011/06/02(木) 20:46:56.76
最初のデバイス設定で、
D3DDISPLAYMODEのPresentationIntervalを
D3DPRESENT_INTERVAL_ONEにした場合、
ディスプレイの垂直同期タイミングに同期して画面を更新しますが、
通常よくあるリフレッシュレート60Hzのモニタでなく、
最近出てきた120Hzのモニタの場合、120fpsで描画されるのでしょうか??

79 :デフォルトの名無しさん:2011/06/02(木) 21:08:41.07
>>78
描画が間に合えばねw

80 :デフォルトの名無しさん:2011/06/02(木) 21:11:37.91
>>78
別に処理が早くなる訳じゃないからな
120fpsで描画出来る内容なら、きっとそうかもね

81 :78:2011/06/02(木) 21:17:33.32
>>79
>>80
ありがとうございます。
やはりそうですよねw

82 :デフォルトの名無しさん:2011/06/02(木) 21:52:47.45
質問です
頂点シェーダでCOLORを出力すると、RGBAがそれぞれ0〜1に丸めこまれますよね
しかしTEXCOORDなら、それぞれの値はそのまま渡せるようです

ということは、COLORは32bit。TEXCOORDは128bitのデータをPixelShaderに渡しているのでしょうか?
それともCOLORも、丸めこまれるだけで、128bitのデータをPixelShaderに渡しているのでしょうか?

擬似HDR表現の実装の一環として、
丸めこまれてほしくないカラーデータを、TEXCOORDとして渡すのもありなのかなぁとか考えているのですが

83 :デフォルトの名無しさん:2011/06/03(金) 00:48:14.47
D3DDECLTYPE_D3DCOLORで宣言してりゃ
頂点シェーダに入力された時点で0-1にマッピングされてるよ

84 :デフォルトの名無しさん:2011/06/03(金) 13:28:22.85
D3DXCreateTextureFromFile() とか CreateTexture()って
デバイスを生成したスレッドでよばないとデバッグランタイムで
警告でるっぽい?

他のスレッド全部ロックしてるのに
CreateDevice()でマルチスレッドフラグにしろって警告でてくる。

85 :デフォルトの名無しさん:2011/06/03(金) 14:52:47.67
警告は見たことないけど、CreateDevice()でマルチスレッドフラグ立てとかないと、
別スレッドからは呼べないよ。呼ぶと運悪く固まったりする。

86 :デフォルトの名無しさん:2011/06/03(金) 21:17:08.42
ありがとう。

スレッドを分離したらめんどくさいですね。

87 :デフォルトの名無しさん:2011/06/04(土) 14:32:10.42
すいません、HLSLの静的分岐やループ展開のタイミングはいつ行われているんですか?

MSDNで一通り調べたんですが、イマイチはっきりしません。
コンパイル時なのか、シェーダーでの描画開始時なのかどっちなんでしょうか?

88 :デフォルトの名無しさん:2011/06/04(土) 16:54:34.14
DirectXのフルスクリーンゲーム上に自作アプリで文字を描画する場合は、
DirectXのAPIを触る事で可能なのでしょうか?
それともOSで用意されているフレームバッファ的な何かに描画する事で可能になるのでしょうか?
よろしくお願いします。

89 :デフォルトの名無しさん:2011/06/04(土) 17:48:33.39
D3DXFONT

90 :デフォルトの名無しさん:2011/06/04(土) 17:58:27.65
>>88
どっちもハズレ
自分で調べられずにこんなところで聞いてるレベルじゃ手も足も出ないような技が必要

91 :デフォルトの名無しさん:2011/06/04(土) 20:19:14.07
>>90
ありがとうございます。
であれば板違いだったようなので別のとこで質問します。

92 :デフォルトの名無しさん:2011/06/04(土) 20:44:46.03
LGPLでソース公開してる人がいたのでソースみてみたけど、やっぱりDirectXをHookしてた。

93 :デフォルトの名無しさん:2011/06/05(日) 17:54:56.11
何の話をしてるのかわからん。

>>84 で描画 + ウィンドウループとロジックの2つにスレッド分けてた
話ですけど、MSDNの記事だとマルチスレッドフラグは良くないみたいですね。

そこで描画スレッドに関数オブジェクトを渡して
描画スレッドが消化するまで待つと方式にしましたが
クリティカルセクションとBegin() 〜 End() 〜 Present()
1フレーム待たされるので、テクスチャーなどの
テクスチャなどの生成・更新・削除が重くなりました。
削除は非同期にできますけど、他は更新結果のサイズとか
ロジックで必要になるのですぐに結果を返す必要があるんですよね。
Preset()で垂直動機待たされる間が最も大きいのですが、制御できませんかね?
HRESULT hr;
while( true )
{
....DWORD flag = なんとかNoWait;
....hr = pDevice->Present( flag );
....if(hr == 垂直動機待ち )
....{
........ロジックのスレッドから関数オブジェクトが着てたら消化する();
........Sleep(0);
....} else if( hr == 描画完了 ) { break; }
}

94 :デフォルトの名無しさん:2011/06/05(日) 17:58:41.80
素直にDirect3D11を使えば、スレッドの扱いは格段に楽になるよ。

95 :デフォルトの名無しさん:2011/06/05(日) 18:04:53.77
>>88

D3DXFONT か、ビルボード。
私は初回はビルボードへのマルチパスレンダリング、
2回目以降はキャッシュを使ってますが、
たぶん一般的な無難なやり方って確立してないので良い回答は難しいですね。

96 :デフォルトの名無しさん:2011/06/05(日) 18:22:59.03
はい?

97 :デフォルトの名無しさん:2011/06/05(日) 18:29:04.72
単純に文字を表示するのと勘違いしている馬鹿なんだろう。
まあ他人のアプリの上に何か出すというのもスレ違いの馬鹿な質問なんだが。

98 :デフォルトの名無しさん:2011/06/05(日) 19:55:26.10
聖書によると馬鹿っていう奴が馬鹿らしい
厳密には人に愚か者というものは永遠の燃える業火に投げ込まれる、だけど
深い意味はわからん

99 :93:2011/06/05(日) 20:15:13.54
垂直同期待ちの間にテクスチャの生成などを処理する方法として
D3DPRESENT_DONOTWAITフラグが使えるかなと思うんですが、
次のような垂直同期待ちの使い方は正しいでしょうか?

pDevice->BeginScene();
...
pDevice->EndScene();

IDirect3DSwapChain9 pSwap = pDevice->?(...);
while(true)
{
....DWORD flag = D3DPRESENT_DONOTWAIT;
....HRESULT hr = pSwap->Present(flag);
....if( hr == D3DERR_WASSTILLDRAWING )
....{ 描画中; 他のスレッドから送られたタスクを消化(); Sleep(0); }
....else
....{ 描画完了; break }
}

100 :デフォルトの名無しさん:2011/06/05(日) 21:07:09.03
そもそもD3DCREATE_MULTITHREADEDが良くないなんて情報はMSDNには存在しない。
書いてあるのはパフォーマンスが落ちる可能性についてだけだ。

101 :93:2011/06/05(日) 23:10:23.21
推奨されないのだから基本的には良くないだろ。
D3DCREATE_MULTITHREADEDのページじゃなくて
こっちのページ的に。

トピック「スレッド同期化の過剰使用」

ゲームにおける過度の同期化の一般的な要因は、D3DCREATE_MULTITHREADED の使用です。
このフラグは、複数のスレッドからのレンダリングで Direct3D をスレッド セーフにする一方で、
保守的な方法を使用しているため、同期化のオーバーヘッドが高くなります。

ゲームではこのフラグを使用しないでください。

代わりに、Direct3D とのすべての通信が単一スレッドから実行され、
スレッド間の通信はすべて直接処理されるようにエンジンを設計します。

102 :デフォルトの名無しさん:2011/06/05(日) 23:55:13.21
>>87
コンパイル時だよ
fxc.exeを使って実際やってみるといい。結構色々最適化きかせてくれるぜ

103 :デフォルトの名無しさん:2011/06/05(日) 23:57:24.41
>>101
それって、テクスチャーのロードとかもメインスレッドでやれってことなのかねー?
スレッド側でロードってパターンは結構あると思うんだがなぁ・・

104 :デフォルトの名無しさん:2011/06/06(月) 00:28:11.12
>>103
テクスチャデータのロードとクリエイトを分離すれば・・・って事じゃなくて?

105 :デフォルトの名無しさん:2011/06/06(月) 00:30:55.46
>>101

>>100じゃないけど、それ書いてあるのっていつ?

106 :93:2011/06/06(月) 00:49:52.88
>>105
2006年。
Direct3D9がその後のアップデートで大きく変わったのかは知らん

http://msdn.microsoft.com/ja-jp/library/bb206267(v=vs.85).aspx

107 :105:2011/06/06(月) 01:19:54.79
>>106
アドレスとかありがと。
うちは D3DCREATE_MULTITHREADED 使って色々やってたんだけど、
明確な目的の上にしっかり設計しているなら良い効果もあるよ。
フレームレートをなるべく落とさずに大量のリソースを操作する時とかに使ってる。
まぁ、基本的なスレッド設計と一緒か。

それと、こんな事言うのもあれだけど現行のCPU、OSってそんなに貧弱じゃないから多少目を瞑ってもいいんじゃないかな。
記事の当時は WinXP Pentium 4 なり D あたりで確かにスレッドで頑張っても思う通りのスペック出すのもきつかったけど、
今のスペックでかつ、初心者スレでは安全性と作りやすさでもいいんじゃないかな。

無論、妥協しないのが無論いいけど。

108 :デフォルトの名無しさん:2011/06/06(月) 01:37:31.72
ゲームでは使うなってだけで、ゲーム以外なら大丈夫だろ

109 :デフォルトの名無しさん:2011/06/06(月) 01:56:03.00
>>108
「当時のメーカーパフォーマンスがかつかつになる程のゲーム」を今の初心者が作れるのか?

110 :デフォルトの名無しさん:2011/06/06(月) 08:42:03.76
むしろ初心者のほうが無駄な処理や技術力不足で重いゲームになるだろ

111 :デフォルトの名無しさん:2011/06/06(月) 08:53:19.54
>>104
あー、やっぱりスレッド側でロード(ファイルtoメモリー)して、
メイン側でクリエイトするべきなのかー…

Xファイルって、Memoryからのロードでもめっさ遅いんだよね…
やだなぁ…。次からはXファイル絶対使わんけどさ

112 :デフォルトの名無しさん:2011/06/06(月) 09:26:29.31
D3DCREATE_MULTITHREADEDの説明見る限り
ウインドウメッセージを処理するスレッドと、DirectXを使うスレッドが同一でない限りは、
このフラグつけなくちゃいけないんだな…

かなりきつい制限だなー…
ゲーム(の描画)が処理落ちしたらウインドウの動きが悪くなるなんて、ユーザーは酷いアプリだって認識するだろうに…

113 :デフォルトの名無しさん:2011/06/06(月) 09:54:37.11
>>110
どの程度パフォーマンス落ちるんだろう?

114 :デフォルトの名無しさん:2011/06/06(月) 10:24:05.66
>>111
重いって、テキストフォーマットを使っているという落ちじゃないだろうな?
バイナリだったらどのフォーマットを使っても似たり寄ったりなのは理解しているか?

115 :デフォルトの名無しさん:2011/06/06(月) 10:49:25.27
>>114
もちろんバイナリだよ
それ以前の問題として、Xファイルは独自拡張を許してるから、その辺り、とてつもなくきちんとファイルチェックしてるっぽいのよ

おかげで、独自フォーマットなら
「壊れたデータとかありえないから、バイナリをそのまま頂点バッファに流し込めばいいや」
とかそういうレベルでできてちょっぱやなのに
Xファイルだと(バイナリだろうがテキストだろうが)いちいち整合性チェックやら、独自拡張タグ解釈やら走りまくって遅くなる

というわけで、バイナリだったら大抵の独自フォーマット同士は似たり寄ったりなんだけど、Xファイルは別なんよ

116 :デフォルトの名無しさん:2011/06/06(月) 13:05:50.22
>>112
DirectXはフルスクリーン向きだから
ウィンドウモードはデバッグ用と割り切るとか

DirectInputとかもHWNDつかってるけど
マルチスレッド制限見当たらないから大丈夫ぽい

117 :デフォルトの名無しさん:2011/06/06(月) 13:09:01.58
>>115
チェックするかどうかは自分次第の話なのに、なんで他人事なんだ?
まさかD3DXに頼りっきりでごねているとか低レベルな話じゃないだろうな。

118 :デフォルトの名無しさん:2011/06/06(月) 13:14:13.77
そもそもデータに付いているGUIDを振り分ける程度の単純作業で、
負荷が起こっていると勘違いしている時点で、
フォーマットを全く理解していないのが丸わかりだ。

119 :デフォルトの名無しさん:2011/06/06(月) 13:21:02.88
低脳な煽りが住み着いてるな

120 :デフォルトの名無しさん:2011/06/06(月) 13:31:28.50
適当なことを言えば煽られる
毎度の流れ

121 :デフォルトの名無しさん:2011/06/06(月) 14:42:56.52
>>117
「Xファイルのロードとは聞かされていたが、D3DXでロードしているとは思わなかった(キリッ」

「Xファイル使ってD3DX使わずにロードする」ことのメリットを教えて欲しいわw

122 :デフォルトの名無しさん:2011/06/06(月) 14:48:24.28
>>118
Xファイルのローダーの仕様分かってないんだな…
知らないなら知らないって言えばいいじゃん。普通はそんなこと調べるくらいなら独自フォーマット使うから、知らないのは恥じゃないよ?

GUIDを振り分ける作業とか意味不明。
Xファイルで「ヘッダでの配列長の指定と、実際のデータの長さが異なるデータ」をつくってロードさせてごらん
頂点配列あたりがいいかな
きちんと「適切なエラー情報」を返してくれるから。

つまりこのローダー、律儀にもValidateチェックしてくれてるんだよ
当然激遅なわけ。わかった?

適当な事って簡単に言ってくれるけど、こっちは実際に自分でテストしたんだぜ?
想像だけでケチつけるなよ
気持ちはわかるが…(俺だって、MSがこんなまぬけな実装してるなんて最初は思ってなかったからな)

123 :デフォルトの名無しさん:2011/06/06(月) 14:52:29.86
横からマジレス
フォーマットの理解と、ローダーの仕組みってまったく関係なくね?
そしてXファイルのフォーマットって化石の生えた黎明期なりのもんだろ?
実際に自分でロードしたことないのが丸分かりだ
10000頂点で100アニメーションくらい入れたスキニングモデルでもロードさせてみろ
30秒はかかるぜ(苦笑)

124 :デフォルトの名無しさん:2011/06/06(月) 15:06:24.86
>>122
>GUIDを振り分ける作業とか意味不明。
拡張できるようにするために、
データのテンプレートごとにGUIDが設定されているんだが、
意味不明とはどれだけ仕様を理解していないんだよ。

125 :118:2011/06/06(月) 15:07:25.46
ごめんなさい
2chは煽って嘘かけば情報もらえるって聞いてたのでやってしまいました
マジごめんなさい

126 :デフォルトの名無しさん:2011/06/06(月) 15:07:29.21
Xファイル使ってた人は今どんなフォーマット使ってるんだろう?

127 :デフォルトの名無しさん:2011/06/06(月) 15:09:51.80
>>124
「GUIDを振り分ける程度の単純作業」だから負荷が無いって言ってるのが意味不明なんだよ
単純なダンプができなくなることが超絶痛いってのに。アホかと
はぁ・・・まじで一回自分で実測してこい。実測結果貼り付けるまで相手にせんからな

128 :デフォルトの名無しさん:2011/06/06(月) 15:11:39.94
>>126
ゲーム作るのなら自作フォーマットお勧め
ってかそれ以外選択肢はまずない
製作途中の中間フォーマットは一般的な3Dツールのデータだけど、ゲームEXEが読み込むファイルのは独自フォーマットに限る

129 :デフォルトの名無しさん:2011/06/06(月) 15:15:32.35
>>124
あのー、カスタムテンプレートをXファイルローダーがどう処理してるか本当に理解してますー?
なんかGUIDでの指定によって、それに対応したローダーが呼ばれるみたいな言い回しに聞こえるんですがww

130 :デフォルトの名無しさん:2011/06/06(月) 15:23:00.54
D3DXの実装が腐っているのと、Xファイルのフォーマットの問題が混同して語られているのは何とかならんのか?

131 :デフォルトの名無しさん:2011/06/06(月) 15:27:34.68
Xファイルの読み出しでもっとも負荷がかかるのは、
マテリアルごとに頂点とスキンウエイトを並び替える作業のところ。
これが腐っていると時間がかかる。

アニメーションは普通なら重くなることは考えにくいが、
データはキーフレームではなく、ベタの行列が大量に入っているような腐ったデータを利用していると極端に重くなる。

前者は実装の問題で、後者はデータ生成時の問題。

132 :デフォルトの名無しさん:2011/06/06(月) 15:54:53.43
>>122
>Xファイルで「ヘッダでの配列長の指定と、実際のデータの長さが異なるデータ」をつくってロードさせてごらん

ロードの流れは、GUIDでタイプを判別して、個数分データを読み込んだ後、
次のブロックでまたGUIDを判別してデータを読み込む作業を繰り返しているんだよ。
だからサイズが間違っていたら、登録されているIDと一致しなくなってエラーになるだけの話。
その程度の処理のどこに重くなる要因があるんだよ?

133 :デフォルトの名無しさん:2011/06/06(月) 16:43:18.51
まだやってんの?

134 :デフォルトの名無しさん:2011/06/06(月) 16:55:45.09
>>128
自作フォーマットって
カリングとか考慮するレンダラーも自作することを考ると
オープンソースなフォーマット採用するより
自分でフォーマット定めたほうがやりやすい?

135 :デフォルトの名無しさん:2011/06/06(月) 17:16:33.50
XNAはFBXも使えるよ!

136 :デフォルトの名無しさん:2011/06/06(月) 17:28:24.08
Xファイル無しでアニメーションって作れるの?


137 :デフォルトの名無しさん:2011/06/06(月) 17:33:46.45
もちろん作れる。
自作フォーマット内にアニメーションの情報も格納できるようにしておいて、
プログラムの描画時とかにそのアニメーション情報に応じて動かせばOK。

138 :デフォルトの名無しさん:2011/06/06(月) 18:16:12.82
D3DXにはHierarchy・・・関数とかあって最適化とかしてもらえるけど、自前でアニメーション機能を
実装しようとしたら難しそう

139 :デフォルトの名無しさん:2011/06/06(月) 19:20:26.67
アニメーションといったって、フレームの行列を差し替えるだけなのに、
何が難しいのかさっぱり分からん。

140 :デフォルトの名無しさん:2011/06/06(月) 19:23:08.63
>>139
難しいのはクラス設計じゃないかな


141 :デフォルトの名無しさん:2011/06/06(月) 19:30:25.96
難しい所は、例えばこのサイトに載ってる内容です。
ttp://marupeke296.com/DXG_No27_SkinMeshAnimation.html
ttp://marupeke296.com/DXG_No28_SkinMeshDrawing.html

Xファイルを使わないとなると、ID3DXSkinInfo::ConvertToBlendedMeshで実装されてる機能を
自前で準備しないといけないの?

142 :デフォルトの名無しさん:2011/06/06(月) 19:43:47.54
インデックスで渡されている通りに、ウエイトを1.0からさっ引きながら展開していくだけの簡単なお仕事です。

143 :デフォルトの名無しさん:2011/06/06(月) 19:54:58.00
アニメーションコントローラーみたいなクラスを綺麗に設計するのが難しいんじゃないかな

144 :デフォルトの名無しさん:2011/06/06(月) 20:08:48.75
>>141
そのサイトって、作者自身がいまいちよく分かっていないと思う
だから初心者がみると余計に混乱するんじゃないの?

145 :デフォルトの名無しさん:2011/06/06(月) 20:16:23.48
プログラムより、モデリングと適切なモーションを付ける作業の方が遙かに面倒で難しい。

146 :デフォルトの名無しさん:2011/06/06(月) 20:57:52.02
>>131
>データはキーフレームではなく、ベタの行列が大量に入っているような腐ったデータを利用していると極端に重くなる。
Xファイルで、ベタの行列を大量に入れないでまともなアニメーションを作る方法教えてほしいなーw
独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw

ま、さ、か。キーフレームで等速運動してるしょっぼいアニメーションしか扱ったことないんですかあ?
ここで「AnimationControllerのAdvanceTimeに渡す値をスプラインなりで緩急つけてやればいい」とか言いだしたらもっと笑う

147 :デフォルトの名無しさん:2011/06/06(月) 21:21:50.92
いやもういじめてやるなよ
なんかこのスレ、無知なまま噛みついてフルボッコにされる奴しばしば現れるよな
何なんだろうな

初心者スレなんだから、噛みつくんじゃなくてきっちりした情報出せばいいのに
もしくは初心者として質問する側に回ればいいのに

148 :デフォルトの名無しさん:2011/06/06(月) 21:31:56.72
>>146
>独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw
知らないのはあまりにも酷すぎる。
Xファイルも標準仕様でポジション、スケール、クオータニオンでデータが持てるんだが。
クオータニオンできっちり補完も効くし、無知にも程があるよ。

149 :デフォルトの名無しさん:2011/06/06(月) 21:36:23.25
結局、行列で大量にサンプリングされた無駄なデータを自分ではき出しておきながら、
読み込みが遅いと言っていただけかよ。
そりゃ当たり前だ、馬鹿すぎる。

150 :デフォルトの名無しさん:2011/06/06(月) 21:56:23.70
IPOキーフレーム と BVHの違いみたいな話か
つか、Xファイルとか捨てろ。自前で実装しとけ。簡単だから


151 :デフォルトの名無しさん:2011/06/06(月) 21:58:07.29
>>112
たしかDX9はマルチスレッドの対応がかなり甘いとか
DX10か11は完全に対応していると聞いたので
移行しかないと思われる

152 :デフォルトの名無しさん:2011/06/06(月) 22:04:22.44
>>148
・・・呆れたorz 心底呆れた
論点そこかよ…行列じゃなくてTranslate, scale, rotateで持てってだけの話かよ・・・

論点をそこだとどう勘違いできるんだよ…「スプライン曲線による補間」がどうそれに関わるんだよ・・・
駄目だこいつ・・・はやくこの板ID出るようにしてもらわないと

153 :デフォルトの名無しさん:2011/06/06(月) 22:05:17.55
>>148
>Xファイルで、ベタの行列を大量に入れないでまともなアニメーションを作る方法教えてほしいなーw
>独自フォーマットならスプライン曲線による補間とかでデータ省けるけど、Xファイルでは知らないなーw

 ↑これは時間方向のデータ量についての話で、

>Xファイルも標準仕様でポジション、スケール、クオータニオンでデータが持てるんだが

 ↑これはただの単位データ(移動拡縮回転)の話で、

なんて言うか、恥ずかしいくらい話見えてないなお前はよ。
俺は >>146 じゃないが、頼むから勉強しよう。本当に。 あなたは確実に素人だ。



154 :デフォルトの名無しさん:2011/06/06(月) 22:13:06.74
>>148 が酷すぎる。
サイトの受け売りでわかったつもりでいたのかもしれないが、
その受け売りでさえ、まるで意味を理解してないって事

>クオータニオンできっちり補完も効くし

上の文脈で、「クォータニオンで補間がきっちり効く」 とか、知ったかぶりもいい加減にしろよ。
クォータニオンってのは単にある軸に対する傾きを現してるだけの回転行列の代替であって、
それが補間を効かしてくれる訳じゃないんだよ。 自分で計算するならば、補間処理を し や す い 
ってだけの値。

大方ゲーム製作系の素人が書いた解説サイトの話を、詳細曖昧なままうのみにしてるだけの
知ったかぶり高校生とかだろうけど、 ちょっとは考えて発言しろ。 恥ずかしいから



155 :デフォルトの名無しさん:2011/06/06(月) 22:13:33.60
行列で持つのから、ポジション、スケール、クオータニオンで持つように変えれば
データ量が3/4になるね
やったね!たえちゃん

156 :デフォルトの名無しさん:2011/06/06(月) 22:16:05.65
>>155
相変わらずXファイルを理解していないようだが、
行列と違って3要素はばらばらのキーフレームとして持てるの。
だからポジションが曲線を描くのなら1/4。
そのぐらいは理解してから語ってくれ。

157 :デフォルトの名無しさん:2011/06/06(月) 22:17:17.14
Xファイルごときが独自フォーマットとそん色ないロード速度って主張してる段階で、お子様の妄想だと分かってただろ

158 :デフォルトの名無しさん:2011/06/06(月) 22:19:56.37
>>156
ああ、うん、そうだね
場合によっては1/4に減らせるね。うん。


で?

159 :デフォルトの名無しさん:2011/06/06(月) 22:21:53.27
ちなみに行列でデータを吐いたら、モーションブレンドが使い物にならなくなるので、
普通の思考力があるのなら絶対に使わない。

160 :デフォルトの名無しさん:2011/06/06(月) 22:22:56.10
まだ続くの?

161 :デフォルトの名無しさん:2011/06/06(月) 22:24:20.76
2Dの場合は回転って角度だけ持てばいいんですか?クオータニオン持つ必要ない?


162 :デフォルトの名無しさん:2011/06/06(月) 22:24:25.72
(行列データだとモーションブレンドが使い物にならなくなる…?)

(ああ・・・多分、行列データをD3DXAnimationControllerが内部でSTRに分解してくれるってこと知らないんだろうなぁ・・・)

163 :デフォルトの名無しさん:2011/06/06(月) 22:25:16.97
FBXとかアニメーションデータが残念過ぎる
絶対座標でやってしまってるために走ってるキャラの腕だけアニメーション適用とかできない
なんでここ相対にしなかったの?って担当者ボコボコにしたい
この一点で仕事じゃ蹴られた

164 :デフォルトの名無しさん:2011/06/06(月) 22:26:10.83
元に戻る保証がないけどね。

165 :デフォルトの名無しさん:2011/06/06(月) 22:26:32.60
>>161
回転の方向による。車のハンドルをまわすような回転(Z軸回転)しかやらないなら、角度1つでOKっしょ

でも最近だと、2Dであっても3D的な演出を入れることもあるよね
だからそういう意味だと、XYZ軸で回転情報持つと、かっこいい演出つくれるかも

クオータニオンを使うほどのことじゃないと思うな

166 :デフォルトの名無しさん:2011/06/06(月) 22:28:56.20
>>163
腕のアニメーションを、原点中心で制作すればよくね?
相対にすると「ボーンの向き(とかねじれ)」っていう、非常に厄介なものが入ってくるからなー…

167 :デフォルトの名無しさん:2011/06/06(月) 22:35:00.39
X-File理解度チェック1
http://msdn.microsoft.com/ja-jp/library/cc372026.aspx
このページの致命的な間違いを指摘せよ

X-Fileについて議論しているなら当然知っている話

168 :デフォルトの名無しさん:2011/06/06(月) 22:35:46.73
>>166
超面倒臭いだろ
実質使えないだろ
そこに労力使っちゃうぐらいならプラグインでもっとまともなデータ出したほうが速いよ
2行目はいまいち何言ってるのかわからない
単に腕のアニメーションを適用してほしいだけなんだけど絶対座標だからそれができない

169 :デフォルトの名無しさん:2011/06/06(月) 22:38:39.20
SRTに分解できない可能性があり、
TranslateとScaleに情報が無くRotateだけの行列を
キーフレでの線形補間ができる場面でただただ無駄に格納し
XFile使っておきながら、何故かD3DXのXFileロード関数をなぜか使わない馬鹿

という妄想の産物相手にいばりちらすのってムナしくね?


170 :デフォルトの名無しさん:2011/06/06(月) 22:39:25.58
>>167
たしか3がねぇ

171 :デフォルトの名無しさん:2011/06/06(月) 22:40:49.97
>>170
正解

172 :デフォルトの名無しさん:2011/06/06(月) 22:42:11.31
>>168
どういうシチュエーションだかちょっとわからんのだが…

じゃんけんしてるアニメが入ってるAというFBX
踊っているアニメが入ってるBというFBX

Aのデータから「腕から先のアニメ」だけ抜き取って、Bに適用することにより
「踊りながら、腕から先がジャンケンしてる」アニメを作りたい
とかそういうことだよね?

173 :デフォルトの名無しさん:2011/06/06(月) 22:43:07.53
マテリアルごとメッシュわけて出力してよ・・・
お前、マテリアルごとわけて描画できんの?
って描画してみたら見事に描画できないしなw
だったらこんなフォーマットにすんなよw

174 :デフォルトの名無しさん:2011/06/06(月) 22:43:38.08
>>161
その角度から回転の計算をするプロセスが抜け落ちてないか?
クォータニオンはただの行列の代替だよ。 乗算順序によるジンバルロックを回避出来る計算方法ってだけ。
てか、回転ってどういう事だかわかってから言え

あるベクトルを軸にして回転、って言う計算をする場合に有利になるってだけだから、
使うのも使わないのもご自由にどうぞ。

>>159
まともな数学の知識ある人なら、そういう訳わからん事言わないと思う


175 :デフォルトの名無しさん:2011/06/06(月) 22:45:07.48
MSDNって、致命的な誤訳をほっぽらかしにするよね(´・ω・`)
って、英語でも0123ってなってるわw

176 :デフォルトの名無しさん:2011/06/06(月) 22:45:11.48
>>172
そうそう多分そんな感じ
ロックマンを走らせながらロックバスター撃たせたいみたいな感じのがわかりいいかもしんない
ってか担当者マジでいまからでも相対データにしてほしい
なんで絶対にしたんだろか?
多くのモデリングソフトとなんでここで違うことしちゃうんだろか?
よくわかってなかったんだろうか?
すげー残念だ

177 :デフォルトの名無しさん:2011/06/06(月) 22:47:42.06
洋ゲーはアニメーションしてるキャラに瞬きさせないの?
FBX作った奴の感性はそんな臭いがする感じだ

178 :デフォルトの名無しさん:2011/06/06(月) 22:48:35.53
>>168
>超面倒臭いだろ
>実質使えないだろ
お前が何も知らないだけなのを棚に上げてるだけ。「面倒くさい」んじゃなく「わかんない」と言え。
オフセットして回転したらいいだろ。

ボーンデフォームなんて単に再帰で、ボーン位置をオフセットしてから、それぞれのローカルで回転、
を積み重ねるだけ。
その時、座標空間をきちんと理解してない奴は混乱するが、回転するのは、親のボーンベクトルから見た
自分自身の座標系であって、「各々のローカルで回転」 ではあっても、実際には 「親からの回転の積み重ね」 になればいいだけ
こんなの3D扱ってたら常識っていうか、普通の話。 面倒でもなんでもないっていうか、そのぐらいわかれ


179 :デフォルトの名無しさん:2011/06/06(月) 22:49:47.31
>>178
無理じゃない?
絶対で作ってあるから足が動いてたら腕のデータは全部無駄のはずよ

180 :デフォルトの名無しさん:2011/06/06(月) 22:51:56.49
>>174
その計算を含めて何を持てばいいのか、、、
ローカルのz軸中心の回転なら一個在ればいいと思うし

181 :デフォルトの名無しさん:2011/06/06(月) 22:52:19.96
データ量が増える、回転に問題が生じる、分解にコストが生じると問題だらけなのに、
わざわざX-Fileで行列を使うことを主張する理由はなんなんだろう?

182 :デフォルトの名無しさん:2011/06/06(月) 22:53:23.22
こっからはフルーツジュースからアップルジュースとオレンジジュースを取り出すみたいな
話になっから不可能だと思うよ
やっぱり絶対座標ってのが致命的
瞬きも口パクもボーンでできないからマジ使えないと思う

183 :デフォルトの名無しさん:2011/06/06(月) 22:53:40.82
>>176
んー、じゃんけんアニメの腕アニメーションに、
原点から腕までのワールド変換行列の逆行列をかければよくね?

まあ逆行列かけて純粋な「ジャンケン腕アニメ」を作りだす手間自体はあるか…
BVHってボーンはねじれ情報持ってないんだが、おかげでデータが直観的でいじりやすい
ツール間の互換性も保ちやすいしね

184 :デフォルトの名無しさん:2011/06/06(月) 22:55:46.50
>>181
もともとが「行列を使うのか、SRTを使うのか」ではなく

「毎フレーム、ポーズ情報を持ってるからロードが重いんだろ。線形補間使え。この低能」
「線形補間で済むようなしょぼいアニメなんてさせるかアホ」
という会話が発端でやす

185 :デフォルトの名無しさん:2011/06/06(月) 22:57:57.11
>>180
データとして保持 「しないといけない」 情報は Z中心の XY平面の回転角だけど、
実際にXY平面上の二軸位置を決定する計算の為に、行列でもクォータニオンでも好きに持てばいいって事
データの性質として must な物と、実際のプログラミングの上で 「使うはずのもの」。

つか、その辺の詳細な計算方法やアルゴリズムとか、スレチだけど OpenGL で
メッシュアニメーション処理とか書いてる人なら、普通に理解してると思う。

186 :デフォルトの名無しさん:2011/06/06(月) 23:00:15.94
>>180
なんか小難しい話になってるけど、とりあえずZ軸回転1個でいいと思うよ
X軸回転で場面転換!とかかっこいいから、分かるようになったら追加してけばいい

幸い2Dなら「Z軸で回転アニメと、X軸回転アニメを組み合わせて複雑な挙動を」みたいな「回転の合成」は不要だろうし

187 :デフォルトの名無しさん:2011/06/06(月) 23:01:27.36
>>183
いや、腕から先のアニメーションデータはどうやって相対のを作り直すの?

188 :デフォルトの名無しさん:2011/06/06(月) 23:03:34.82
>>184
回転でも拡縮でも移動でも、それらは結局、頂点が移動するだけって事を計算処理上、
理解出来てる人じゃないと感覚的に理解出来ないかもしれないが、

俺、OpenGLでボーンデフォーム処理書いた時、キーフレーム間の頂点位置変化は、4点ベジエ計算で補間して変化付けてたので、
データ量軽い、動きも統合3DCGソフトと同じになりました。 DirectX でも同じような処理書いたけど、
X-File とか正直いらない。 あれは簡単なデモを作りたい人向け。 俺はリアルタイムでアクションな物を作ってたので、あの形式は色々都合が悪かった

189 :デフォルトの名無しさん:2011/06/06(月) 23:08:22.39
一応、簡単にだけ補足しておくと、
>キーフレーム間の頂点位置変化は、4点ベジエ計算で補間して変化付け
って言うのは、(わかってる人には蛇足でしかない話だけど)、
あるフレームからあるフレームまでの変化量 0.0 〜 1.0 の範囲について、等速直線でなく、放物線のような変化を付けているって事
偏りをもたせた周期関数のような楕円運動に似た計算

190 :デフォルトの名無しさん:2011/06/06(月) 23:11:13.35
>>188
こんな話の流れ。馬鹿に返答してるのは俺だけでなく、何人かだが・・・。

Xファイルはロードも重いことだし、独自フォーマット使おうぜ

>Xファイルロード重いとかお前が馬鹿なだけ。バイナリなら軽い。テキスト使ってるだろww
いや、バイナリだが…
整合性チェックやら、カスタムテンプレートやら丁寧すぎて遅いんだぜ
独自ならダンプで済むから速いぜ

>GUIDで分岐(意味不明)してるだけなのに遅いわけねーだろwww
意味わからん。アニメデータ100個くらい入ってるXファイル作って実際に試してみろ

>どうせアニメデータにベタの行列が大量に入っているような腐ったデータ利用してるんだろwww
いや、ベタにいれないとまともなアニメにならんだろ
補間関数を使うくらいなら独自フォーマットでやるわ

>行列使ってるんだww馬鹿じゃねwwwSRT使えよwww
いや、SRTか行列かって話じゃなくて、補間の話なんだが。線形補間じゃあまりにしょぼいだろ

>行列は欠点だらけだし、アニメーションブレンドも使えなくなる。お前馬鹿ww
いや、アニメーションブレンドできるし。というかD3DXが勝手にSRTに置き換えるし

>・・・(逃走)

191 :デフォルトの名無しさん:2011/06/06(月) 23:13:06.52
市販のフォーマットはロクなのがねーな
結局、プラグインで出すしかないのか・・・
同人開発はまだまだメタセコから離れられないな

192 :デフォルトの名無しさん:2011/06/06(月) 23:15:51.23
共通フォーマットでリアルタイム向けで一番ましなのがXファイルだからな
マジでこんな10年以上前のフォーマットからいまだに進歩ねぇとか笑うよね

193 :デフォルトの名無しさん:2011/06/06(月) 23:16:08.22
同人開発w
だからXファイルとか使っちゃうのか
プロなら絶対使わないし、Xファイルの仕組みくらいわかってるわな

194 :デフォルトの名無しさん:2011/06/06(月) 23:19:36.12
だれか「もう休め!」ってやってるAA張ってやってくれ

195 :デフォルトの名無しさん:2011/06/06(月) 23:26:16.41
>>187
腕までのアニメーション行列の乗算結果の逆行列をかければ、原点を中心とした腕(から先)のみのアニメーションがとりだせるっしょ?
それを踊りアニメーション側に適用してやればいい

196 :デフォルトの名無しさん:2011/06/06(月) 23:32:10.57
>>190
そうだったか・・・ なんか凄いな。

俺の場合、Blender上で作成したメッシュの頂点とそのインデクス(面構成用)とマテリアル、
あとボーンの再帰的なオフセットと位置と回転行列(実際はクォータニオン)とをセットで吐き出す
Pythonスクリプトを書いて、俺の都合で階層化させて加工した内容を吐かせた

ついでにアニメーションキーフレーム単位で、各アニメーション対象オブジェクト(主にボーン)の位置と回転を
吐かせる Pythonスクリプトを書いて、

これら両者の情報を合体した物を自前のモジュールで読んで更新と描画してる。
元々リアルタイムアクション向けと割り切った物なので、時間当たりの計算量を減らす為、ストレートな処理をしてないが
自前で実装するとぶっちゃけ、なんでも自由に自分の都合で実装出来るから気が楽。

197 :デフォルトの名無しさん:2011/06/06(月) 23:37:08.52
>>195
丁度それ、俺が上で書いてるアニメーション情報の書き出しの段階で、予めやってる計算と同じ。
自前フォーマットだとこういう事前加工が自由に出来るから気が楽。

インバースした行列で各間接単位のローカル位置と回転情報を、事前にそうやって整理して吐き出してしまえば
あとの実行時に余計な計算しなくて済むから、便利

198 :デフォルトの名無しさん:2011/06/06(月) 23:38:43.00
>>196
やっぱ自前で出力プラグイン書くしかないかー

>>192
むしろ、完成度が高いと考えるんだ
必須なのに無い機能っていったら、マルチテクスチャくらい
Xファイル完成度高い

199 :デフォルトの名無しさん:2011/06/06(月) 23:39:08.93
公開もしてない自前フォーマットの方が断然優れてるとか熱弁されても
ここで聞いてる人間はふーんとしか言いようがない

200 :デフォルトの名無しさん:2011/06/06(月) 23:42:33.69
>>199
なあ、148さ。そろそろいい加減にしとこうや
独自フォーマットなら色々できるんだぜって教えてくれてるんだぞ?
スレの結構な人数が、お前のために色々レスうってくれたんだぞ?

そろそろお礼いってしめようや

201 :デフォルトの名無しさん:2011/06/06(月) 23:44:11.05
どの書き込みか見るのが面倒だから安価にしてくれw

202 :デフォルトの名無しさん:2011/06/06(月) 23:45:14.68
まだ続きますか?

203 :148:2011/06/06(月) 23:48:11.99
ごめんなさい・・・
ほんとはXファイルのこと調べてても全然わかんなくて
先輩に2chは嘘情報でもいいから自信満々で書けば訂正レスの形で情報くれるって聞いてたもので・・・
今度からはちゃんと質問するようにします

204 :デフォルトの名無しさん:2011/06/06(月) 23:52:52.19
>>199
公開するとかしないとかじゃなくて、また断然優れてるとか優れてないとかそういう話じゃなくて、
俺は、 「俺の都合で書き出して、俺の都合で読み込んで、俺の都合に合わせた」 と話しただけだよ
そして多分、多くの人が 「自分の都合で何かをしたい」 はずだから、既存のフォーマットで満足いかない案件なら
自分で実装した方がいいと、言ってるだけ。 文意の理解もそうだけど、処理を理解しよう


205 :デフォルトの名無しさん:2011/06/07(火) 00:38:23.01
>>193
プロはスレタイも読めないのか。

206 :デフォルトの名無しさん:2011/06/07(火) 00:42:46.60
先輩「2ちゃんで聞け・・・!」
悲しくなってくるな

207 :デフォルトの名無しさん:2011/06/07(火) 01:05:57.16
ID出ないから>>148が本物であるという証拠もないという

208 :デフォルトの名無しさん:2011/06/07(火) 06:41:41.99
>>195
それだと行列キーのアニメーションしかできないじゃん
上で言われてるXファイルのクソアニメーションといっしょじゃん
0→180みたいなのいちいち気を配ってないといけない

209 :デフォルトの名無しさん:2011/06/07(火) 07:57:17.81
unity最強


210 :デフォルトの名無しさん:2011/06/07(火) 09:09:28.16
>>208
いやー、そんな後から後から条件追加されても困るわ^^;
別にSRTでやればいいじゃないか
処理速度がというなら「原点に移動させた腕のSRTによるアニメーション」データを持つ別FBXを生成しておけばいいじゃないか

FBXで「可能」なんだから、何に焦点あわせたデータ設計にするかは思想によるんじゃね?
FBXは絶対座標で扱うおかげで、ボーンのZ軸回転に非対応なBVHと互換性をもてるわけだし
プロの世界じゃBVHとの互換性はかなり重要なんじゃね?
(プロじゃないから分からんけど)

211 :デフォルトの名無しさん:2011/06/07(火) 11:37:43.05
FBXでも出すツールによって中身違うじゃん、MAYA使っててモーションブレンドとかレイヤーモションとか困ったことないよ。Lightwaveん時は
割りと困った。

212 :デフォルトの名無し:2011/06/07(火) 12:42:49.66
質問です。
http://rina.jpn.ph/~rance/directx8/index.html
このサイトを見ながら練習していて、いま
http://rina.jpn.ph/~rance/directx8/04/03.htm
このページの上から3/4ほどの「プログラムの無駄を省く」の直前のところまでやったのですが、ついに以下のエラーが出てしまいました。

1>------ ビルド開始: プロジェクト: ddrawsamp01, 構成: Debug Win32 ------
1>2011/06/07 にビルドを開始しました。
1>InitializeBuildStatus:
1> "Debug\ddrawsamp01.unsuccessfulbuild" のタッチ タスクを実行しています。
1>ClCompile:
1> WinMain_04_01.cpp
1>c:\users\takahiro\documents\visual studio 2010\projects2\ddrawsamp01\ddrawsamp01\winmain_04_01.cpp(373):
error C2664: 'IDirect3DDevice9::SetVertexShader' : 1 番目の引数を 'int' から 'IDirect3DVertexShader9 *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 整数型からポインター型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
1>
1>ビルドに失敗しました。
1>
1>経過時間 00:00:02.25
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


まぁページタイトルにあるようにDirectx8用のコードだとは分かっているのですが、
初心者の自分にも分かる良いサンプルが無かったため、このサイトで練習しています。
ヘッダファイルのインクルードなどは8から9に書き換えてあります。

ちなみに今現在のcppファイルはこんな感じです。
http://www1.axfc.net/uploader/Sc/so/242317

初心者で申し訳ないのですが、どうすればいいでしょうか?
どうぞよろしくおねがいします

213 :デフォルトの名無しさん:2011/06/07(火) 13:00:35.63
>>212
SetVertexShaderの引数はIDirect3DVertexShader9*だよ
9で変わったんだよ

214 :デフォルトの名無し:2011/06/07(火) 13:16:33.07
>>213
すいません初心者なもので、具体的にどこを変更すればいいのかわかりません・・・
問題となってるのが
// 頂点フォーマットを設定
gl_lpD3ddev->SetVertexShader(FVF_TLVERTEX);
なので、21〜22行目の
/* 頂点フォーマット(基本形)*/
#define FVF_TLVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
あたりを変更すればいいのでしょうか?

よろしければ教えて下さい。。

215 :デフォルトの名無しさん:2011/06/07(火) 14:04:49.76
>>214
gl_lpD3ddev->SetFVF(FVF_TLVERTEX);

216 :デフォルトの名無しさん:2011/06/07(火) 16:07:22.96
>>214
そのサイトはDirectX8の解説なのにDirectX9でやってないかい?

DirectX8のSetVertexShader()は単純に頂点フォーマットを指定する機能だけど、
DirectX9のSetVertexShader()はプログラマブルシェーダをセットするという
全然違う機能に変わってるんだよ。

で、DirectX8のSetVertexShader()に相当する機能は DirectX9では
>>215 の書いているSetFVF()になったというわけ。

217 :デフォルトの名無しさん:2011/06/07(火) 23:42:56.56
>>210
後付けじゃねーじゃん
こんなの昔からあって必要なフォーマットも割りと仕様が決まってるんだから
FBX1人で変なデータ作って使いにくくなってんじゃん
(しかも、アニメーションデータに関してだけミスりやがった・・・なぜだー(泣))

218 :デフォルトの名無しさん:2011/06/08(水) 08:39:29.85
絶対座標って何がぜったいなんだ?
腕のアニメーションは普通に肩からのローカルで入ってるから普通に階層計算したら再生されるが。

219 :デフォルトの名無しさん:2011/06/08(水) 09:15:46.62
>>217-218
だから、出力するツールによって好きにできんのよ、FBXは。
217のは「基点(多分キャラの足元?)となるボーンからの差分行列が、それぞれのボーンに入っている」タイプ
218のは「基点となるボーンではなく、それぞれのボーンにその親からの差分行列が入っている」タイプ。Xファイルとかと同じ

FBXはファイルフォーマットを定義しただけなんだから、フォーマット内でどうデータを格納しようが自由だろ

217タイプのにも利点があって、217タイプのなら階層計算せずに、全てに同じ行列をかければアニメーションを合体させられる

220 :デフォルトの名無しさん:2011/06/08(水) 09:37:19.35
独自フォーマットっていったってモデリングソフトが
Xファイル出せてアニメーション作れるんだからそれ使うほうがいいだろ

221 :デフォルトの名無しさん:2011/06/08(水) 09:40:17.16
頂点ブレンディングって使いにくくない?
XXfpsで何コマ目を表示とかのほうがやりやすいんだが

222 :デフォルトの名無しさん:2011/06/08(水) 18:38:21.45
directx10でもデバイスってロストするん?

223 :デフォルトの名無しさん:2011/06/08(水) 18:41:34.61
する
しかし長時間フリーズしたり物理的に引っこ抜けてたりしない限り、早々しない

224 :デフォルトの名無しさん:2011/06/08(水) 19:05:48.25
なるほど
ども

225 :デフォルトの名無しさん:2011/06/08(水) 23:22:07.19
>>219
そうか?
俺にはボーンの親子関係のデータが発見できなかったが・・・
相対データで入ってるFBXのデータってボーンの親子関係の情報はどこに格納されてんの?

226 :デフォルトの名無しさん:2011/06/09(木) 00:23:29.61
>>225
いやいやいや普通にnodeをトラバースするだけじゃん、、、
ボーン変換用のオフセット行列もnodeにちゃんとはいってるし。

227 :デフォルトの名無しさん:2011/06/09(木) 08:38:14.89
>>220
お前上の方の話何にも見てないのな

228 :デフォルトの名無しさん:2011/06/09(木) 21:20:57.88
>>226
具体的にどこに入ってるのか家よ

229 :デフォルトの名無しさん:2011/06/11(土) 08:28:15.54
なんでこんなに上から目線なんだよw

230 :デフォルトの名無しさん:2011/06/11(土) 08:33:14.38
GetChildNode()するだけだろう。
NodeType()がSKELTONなら骨だ。
あとはそのまま掘っていけばツリーができる。
オフセットの行列はSkeltonNodeからGetしろ、実際には2種類の行列が入っていていい感じに加工することで求まる、あとはサンプルとヘッダファイル全部見ればわかる。

231 :デフォルトの名無しさん:2011/06/11(土) 08:47:41.95
そんなこと聞いても>>228の使ってるモデリングソフトが相対で出してなきゃその時点で終りじゃね?

232 :デフォルトの名無しさん:2011/06/11(土) 11:07:23.34
そりゃプラグインに文句言え。
オレはmayaしかつかわねーし、フリーならToyStudioだってあるじゃねーか

233 :デフォルトの名無しさん:2011/06/13(月) 11:46:34.54
DirectX11で三角ポリゴンをだすサンプルは多数みつけて
実現できたのですが、線を描画するサンプルはなく、
線だけ描画したいのですがどうすればいいのでしょうか?

IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);を

D3D11_PRIMITIVE_TOPOLOGY_LINELIST
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP
やかえるとおもうのですが検索してもサンプルがでてこなくてorz

234 :デフォルトの名無しさん:2011/06/13(月) 11:52:13.35
>>233
サンプルもクソも、
それ変えて頂点バッファを適切に設定すればいいだけじゃないか
それが分からないならopenglとか使えよ
拍子抜けするくらい簡単に線がかけるぞ

235 :デフォルトの名無しさん:2011/06/13(月) 12:01:00.34
>>234
そうするとかけたポリゴンがでてきたりして
頂点バッファを適切に設定ってとこがだめだとおもうのですがw

236 :デフォルトの名無しさん:2011/06/13(月) 12:16:01.44
DirectX10とか関係ねぇ。
マニュアル読めって。

237 :デフォルトの名無しさん:2011/06/13(月) 17:55:52.52
>>235
ポリゴンは3頂点で一枚だが、線は3頂点で2本

とか下らないことでポリゴンが欠けるとか言ってる訳じゃ無かろうな

238 :デフォルトの名無しさん:2011/06/13(月) 23:59:56.12
>>233
もしかしてワイヤフレーム表示したいって意味?
そうだとしたらラスタライザ・ステートのFillModeをD3D11_FILL_WIREFRAMEにするだけだけど・・・
単純に線を描画したいなら、線リストとか線ストリップについて勉強しなおした方がいい

239 :235:2011/06/14(火) 08:37:17.66
うまくいきました。
ありがとうございます。

240 :デフォルトの名無しさん:2011/06/14(火) 22:06:59.11
XAudio2で質問です
IXAudio2SourceVoiceのStartで再生が終わったあと
ループではなく、数秒後に再び再生させるにはどうすればいいんですか?
再生位置をコントロールする方法がないみたいなんですが・・・

再度、SubmitSourceBufferを呼んで初期化するしかないんですか?

241 :デフォルトの名無しさん:2011/06/18(土) 09:35:27.74
60FPSまではポリゴンがかけずに
100FPSあたりまでいくとテクスチャがかけたようなかんじに
チカチカするのは、プログラムのほうのミスですか?
それともグラボのメモリとかのもんだいもあります?


242 :デフォルトの名無しさん:2011/06/18(土) 12:16:54.80
>>240
あらかじめ無音をsubmitしておけばいんでね?

243 :デフォルトの名無しさん:2011/06/18(土) 18:32:54.42
>>241
垂直同期とかじゃねえの?

244 :デフォルトの名無しさん:2011/06/18(土) 19:52:04.62
>>241
BeginScene()とかを一回のループに二回以上挟んでるとかじゃね。
っていうか心当たりがあるんなら、それをまず潰してから質問しにこいや。

245 :デフォルトの名無しさん:2011/06/18(土) 21:24:38.12
関係ないけどDirectX9が一番いいし、一番普及してるよな
Directx10と11は実質使うとせばまり過ぎるしなぁ
XPが完全になくなるまでDirectX8か9で自作ゲームつくるよ


246 :デフォルトの名無しさん:2011/06/18(土) 21:45:50.36
おまえの意見なんてきいてない

247 :デフォルトの名無しさん:2011/06/18(土) 21:59:50.47
>>246
で、10とか11で日曜ゲームプログラマーしてる奴っている?


248 :デフォルトの名無しさん:2011/06/18(土) 22:05:51.72
わりとどうでもいい
してるやつはしてるだろう
ライブラリ使って9,10,11とか気にせずやってるやつもいるだろうし

249 :デフォルトの名無しさん:2011/06/18(土) 22:07:56.96
>>247
10使ってる奴がここにいますがなにか?

250 :デフォルトの名無しさん:2011/06/18(土) 22:09:45.82
>10とか11で日曜ゲームプログラマーしてる奴っている?

むしろ海外以外でぐぐって出てくるのはそんなのしか居ないと思うが

251 :デフォルトの名無しさん:2011/06/18(土) 22:14:08.69
もうunityやってる

252 :デフォルトの名無しさん:2011/06/18(土) 22:35:42.02
>>249
ホームページアドレス教えてくれよ
Vista以降でしか出来ない物配布してるのか?


253 :デフォルトの名無しさん:2011/06/18(土) 22:44:42.56
妙な食いつき方してんなあw

254 :デフォルトの名無しさん:2011/06/18(土) 22:58:03.09
>>253
言うだけだったら誰でもかけるからな
シェーダー使わないとポリゴンすら出ない物を無理に使う必要あるのかなとも思うし


255 :デフォルトの名無しさん:2011/06/18(土) 23:21:09.84
>>254
>シェーダー使わないとポリゴンすら出ない物を無理に使う必要あるのかなとも思うし

スマフォやWebGLはGLES2を当然のように受け入れてるけどねえ
つーか今時固定機能のステート設定をダラダラ並べる方が苦痛だわ

ぶっちゃけプラットフォームの制限なけりゃD3D9なんてとっくに捨てられてると思うよ?
まあシェーダ云々は別としてD3D1xの手続きがめんどくせえのは否定しない

256 :デフォルトの名無しさん:2011/06/18(土) 23:42:02.13
まあ、もうゲームエンジンの時代だと思うなぁ
複数ライト使ったときのシェーダとかもうまったく前へ進めないっしょ?
固定とかそういうの使うのもやめなよ
あれ、実は開発進んでくると1描画に関係するステートが頭に全部入ってないと
妙な挙動したときに解決できないよ
たどたどしいシェーダ使うよりやばい状況になる

もうあきらめてunity


これ

257 :デフォルトの名無しさん:2011/06/19(日) 00:18:58.46
>>256
同意
もはや低レベルAPIは学習用かコア開発者向けへとシフトしていくのかな、
アセンブラやC言語みたく

258 :デフォルトの名無しさん:2011/06/19(日) 11:31:55.16
日曜プログラマだとゲームエンジン使うのが一番いいと思う
やりたいことに労力をさけるし
描画やダイナミクス、スキンメッシュ自作すると、
ゲームをつくりたいとはじめたのが、なんちゃって自作ゲームエンジン
あたりで力尽きてしまう

ただゲームエンジンつかうと、グラはちがうけど挙動や
ライティングの関係でなんか似てるっていうか
個性というか味が同じに感じる気がするw


259 :デフォルトの名無しさん:2011/06/19(日) 13:35:44.01
>>258
ツクール系で作られたゲーム・・・みたいな事になるって事だね。

260 :デフォルトの名無しさん:2011/06/19(日) 23:04:08.64
やりたい事が基礎処理とその応用とその成果物としての
エンジンとか言う物だった場合、真逆です


261 :デフォルトの名無しさん:2011/06/19(日) 23:06:04.62
>>256 >>257
てかスレタイのライブラリやコアな処理に興味無いなら
とっとと DxLib() でも UDK のスレにでも行けよ

262 :デフォルトの名無しさん:2011/06/19(日) 23:23:24.73
ゲームエンジンっつったってそんなたいしたことやってないでしょ

263 :デフォルトの名無しさん:2011/06/20(月) 09:10:23.72
ゲームエンジンって物体の移動とか当たり判定くらいが主な仕事なの?

264 :デフォルトの名無しさん:2011/06/20(月) 09:24:26.09
ゲームエンジンって、ゲーム作る時に使う関数のセットだろ?
何が主な仕事なのかは設計の仕様によるけど、ゲームに必要なもんは全部関数化してんじゃないの?

265 :デフォルトの名無しさん:2011/06/20(月) 09:48:16.68
入力の受け取りとか?

266 :デフォルトの名無しさん:2011/06/20(月) 11:13:43.38
>>260
そういうのはもう学習用や
情報科のレポート程度になってるんじゃね

267 :デフォルトの名無しさん:2011/06/20(月) 11:42:58.78
Video for Windowsが廃止なのは分かったんですが、
次の、
Direct Show
も廃止ですか?

ネットの説明にあるサンプルが消えてる。。。

268 :267:2011/06/20(月) 13:30:21.96
それと、ネットから落したプログラムが結構コンパイル通らないんだけど、
Direct ShowがDirectXからPlatform SDKに移動したとき(ググったらそういう経緯があるみたいでつね)に、
インクルードするファイルが変わったのでしょうか?

269 :267:2011/06/20(月) 14:21:07.65
もしかしてSDK側が、さらに、
Windows SDK
って名前変わったんですか?

270 :267:2011/06/20(月) 19:03:37.86
Visual C++ 6.0でDirectShowを使いたいだけなんですが、簡単には使えないんですか?

qedit.hは頑張って書き換えましたが、DirectX8.1を入手できないのが痛い(><)

271 :267:2011/06/20(月) 19:04:29.31
どなたか、VC++6.0と今のDDKで簡単にコンパイルできるサンプル下さいorz

272 :デフォルトの名無しさん:2011/06/20(月) 19:27:15.60
不可能な事に労力割くなよ。
vc6で使える最終のsdkはFEB 2003だから。
ググればダウンロード可能なリンクが見つかる。

273 :デフォルトの名無しさん:2011/06/20(月) 22:46:19.63
DDKってドライバ書こうとしてるのか

274 :267:2011/06/21(火) 10:12:46.45
SDK の間違いでしたorz

上記教えて頂いた内容をググってみたら、やはり、新しいSDKだとVC++6.0とリンクできないみたいです。
http://d.hatena.ne.jp/linden/20060301/p2

DirectXの旧いのは入手難しそうですね。

>sdkはFEB 2003
を何とか手に入れたいのですが、アップロードされてるものはセキュリティ上難しいし。。。

275 :デフォルトの名無しさん:2011/06/21(火) 10:13:54.21
ってかあたらしいのでやろうよw
Vc2010だってただなんだし

276 :267:2011/06/21(火) 10:29:22.25
VC++2010をやる気持はあります。

でも、仕事は環境に合わせないといけないものであってOTL
・改造元プログラムがVC++6ベース。プロジェクトファイルのアップコンバートも怪しいし。
・expressエディションにはMFCが付いてなくてコンパイルできない


277 :267:2011/06/21(火) 11:09:50.19
>ttp://mssdk.orderport.net/

あれ?これって正規サイトなのかな?
ここで$0.00で買えるの???

278 :デフォルトの名無しさん:2011/06/21(火) 11:20:51.69
Windows7にVisualC++6.0をインストール
http://www9.plala.or.jp/oga/vc6.html

俺は VirtualPCが良いとおもう

279 :267:2011/06/21(火) 11:30:46.00
d

・ Platform SDK February 2003
・ DirectX 9.0 SDK Summer2004
 ↑
現在入手できないのが痛いorz

280 :デフォルトの名無しさん:2011/06/21(火) 11:44:10.05
DirectShowが使いたい仕事で
Visual C++ 6.0ってどんな環境かよくわからないけどw
MFCを使わないで、VC2010でDLLか静的ライブラリでDirectShowをつくって
VC6で呼び出したらいいんじゃない

281 :267:2011/06/21(火) 11:56:22.04
DLLでも出来るならOKなのです。
2010のExpressのインストロールから始めるとして、それは簡単にできそうですか?

282 :デフォルトの名無しさん:2011/06/21(火) 11:57:56.14
ちょっとまて、仕事でやってんのにDLLをつくってアクセスできんってことはないだろうw

283 :267:2011/06/21(火) 12:01:07.70
そういう意味じゃなくて、
DirectShowって、最新コンパイラでも標準ヘッダーでさえ書き変えないと使えなかったり、
落とし穴多すぎで、
結局走ってコケたらやだな、と。

284 :267:2011/06/21(火) 12:10:22.95
>DirectShowが使いたい仕事で Visual C++ 6.0ってどんな環境

こちらもお答えしておくと(って、誰得w)、
VC++ 6.0でVideo for Windowsのアプリが作られていました。
今度、新しいカメラになったところ、DirectShowじゃないと繋がらない、と。
アプリのVfWの部分をDirectShowに変更したいんです、アプリの機能を生かしたまま。

285 :267:2011/06/21(火) 14:59:19.74
DirectX9はX8に追加って情報を見つけました。
また、公式からX9をダウソしました。

しかし、
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1018) : error C2146: 構文エラー : ';' が、識別子 'HSEMAPHORE' の前に必要です。
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1018) : fatal error C1004: 予期せぬ EOF が検出されました。
と、エラー。

MSコンパイラにSDKの組み合わせなのに。。。
バカにされてるんだろうか?

286 :デフォルトの名無しさん:2011/06/21(火) 15:07:24.61
基礎的な知識もないくせに5世代も前の環境を使おうとする時点でry

287 :デフォルトの名無しさん:2011/06/21(火) 15:14:08.18
それたんにdefineかinclude足りないだけじゃね

288 :267:2011/06/21(火) 15:21:46.96
include足りないだけってのはその通りだと思います。
同SDKのsanpleフォルダのソースですが。

しかし、サンプル落としまくり、ライブラリを入れたり出したり、
コンパイルエラーをググりまくったり、フォルダ検索しまくったり、、、
もうそろそろ力尽きて倒れそうです。

289 :デフォルトの名無しさん:2011/06/21(火) 15:45:34.74
もう VC++2010 と最新のSDKで1から作り直した方が早いんじゃね?

290 :267:2011/06/21(火) 15:57:01.64
VC++2010の選択肢もゼロではないです。

ググってエラー回避見つけましたが、これやっても別のヘッダーエラーが出るorz
http://ameblo.jp/ganbaru-engineer/theme-10004498085.html

291 :267:2011/06/21(火) 16:38:46.49
>ttp://blogs.yahoo.co.jp/zuruyasumineko2002/archive/2010/10/10

この通りヘッダー書き換えやってもダメだorz

>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1020) : error C2144: 構文エラー : ';' が型 'long' の前に必要です。
>\microsoft directx 9.0 sdk (summer 2004)\include\strmif.h(1020) : fatal error C1004: 予期せぬ EOF が検出されました。

イミフメ(><)

292 :267:2011/06/21(火) 17:10:01.85
ヘッダーファイルのエラーはファイルIDE編集じゃなくてファイル保存したら通りました。

>\PlayCap\playcap.cpp(491) : error C2065: 'CoInitializeEx' : 定義されていない識別子です。

またエラーどこまでも続いて終わりがないorz

293 :267:2011/06/21(火) 17:36:23.98
また別のサンプルもコンパイルしてるんですが、そちらはそちらでエラー。

: error C2440: 'initializing' : 'long' から 'long *' に変換することはできません。(新しい動作 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
: error C2664: 'DialogBoxParamA' : 4 番目の引数を 'long (struct HWND__ *,unsigned int,unsigned int,long)' から 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換できません。 (新しい機能
; ヘルプを参照)
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。


294 :267:2011/06/21(火) 17:53:57.78
293のエラーはキャストだけで通りますた。

しかし、このキチャナイMFCコードから必要部分を切り出すなんて超ムネヤケ

295 :267:2011/06/21(火) 18:49:52.16
292は、
>#define _WIN32_DCOM
でコンパイル通りマスタ。

どうも有難うございました。

296 :デフォルトの名無しさん:2011/06/21(火) 20:49:29.06
【レス抽出】
対象スレ:【C++】 DirectX初心者質問スレ Part35 【C】
キーワード:267

抽出レス数:21


頼むからもうブログでやってくれ


297 :デフォルトの名無しさん:2011/06/21(火) 21:48:05.01
趣味ならともかく仕事をこの調子でやってるのか・・・

298 :デフォルトの名無しさん:2011/06/21(火) 21:49:33.83
ワケもわからず、キャストかな

299 :デフォルトの名無しさん:2011/06/22(水) 07:50:20.46
もしかしてこれやったのか?
クビになるぞ

long* ptr= ...;
long value;

value = (long)ptr;



300 :デフォルトの名無しさん:2011/06/22(水) 08:17:25.83
&つけたらいいだけちゃうん?

301 :デフォルトの名無しさん:2011/06/22(水) 08:39:40.08
(type)* value と宣言したものは、
*valueが(type)の変数値を返して、valueがアドレス値を返すとか、
未だに参考書見直さないと混乱するレベル。

(type) value と宣言した場合は &valueでアドレス値返すとかさらに混乱する。

302 :デフォルトの名無しさん:2011/06/22(水) 09:52:42.52
俺はこんな風に使ってるぜ

class Hoge
{
// 実装クラス
__Type objType;
// インターフェース
__IType* pType;

__Hoge()
__{
____pType = &objType;
__}
};

303 :デフォルトの名無しさん:2011/06/22(水) 16:00:23.85
>>299
喩えが下手w

304 :デフォルトの名無しさん:2011/06/22(水) 21:02:24.85
directplayの代わりって何ですか?

305 :デフォルトの名無しさん:2011/06/22(水) 21:09:53.93
winsocket2

306 :デフォルトの名無しさん:2011/06/22(水) 22:47:32.49
directshowの代わりって何ですか?

307 :デフォルトの名無しさん:2011/06/22(水) 23:03:13.95
media foundation

308 :デフォルトの名無しさん:2011/06/22(水) 23:44:24.44
directmusicの代わりって何ですか?

309 :デフォルトの名無しさん:2011/06/22(水) 23:57:13.55
midiのことはもう忘れろ

310 :デフォルトの名無しさん:2011/06/23(木) 06:23:24.87
>>302
メモリ領域を直列にしてデカオブジェクトにするとヒープ効率が悪い

311 :デフォルトの名無しさん:2011/06/23(木) 11:45:48.15
ttp://jp.techcrunch.com/archives/20110620skydrive-silverlight-html5/
silverlightの代わりって何ですか?

312 :デフォルトの名無しさん:2011/06/23(木) 12:14:25.46
flash

313 :デフォルトの名無しさん:2011/06/24(金) 08:57:11.75
複数ウィンドウ使うときってウィンドウの数だけ
Direct3DDevice::Present()呼ぶんですか?
良い方法あったら教えてください

314 :デフォルトの名無しさん:2011/06/27(月) 00:29:57.50
水素原子の波動関数を3Dであらゆる角度から見ることのできるアプリを作成したいです
もちろんWindows上で動かしたいので
Win32API + DirectX で作成しようと思っているのですが比較的容易で適当な選択でしょうか?
まだWin32APIを少しかじった程度なのでよくわからないのです…
また、DirectXに関しては無知なのでよい説明サイトや書籍がありましたら紹介してください
よろしくお願いします

315 :デフォルトの名無しさん:2011/06/27(月) 00:55:23.28
>>314

サンプルコードです。こんなので良いですか?
http://www1.axfc.net/uploader/Sc/so/249168


316 :デフォルトの名無しさん:2011/06/27(月) 01:11:49.44
ryanさんよー。テクスチャが絶対パスなのはよろしくないとおもうよ。
あと、ダークベーシックはやったこと無いからわからん。

317 :デフォルトの名無しさん:2011/06/27(月) 01:33:09.31
>>314
簡単に言うと Win32APIを C言語かC++言語で呼び出して何かする、
程度をかじった事があるくらいの状態で、かつDirectX については全然わからない、って事だよな?
で、関数プロットを3Dで行いたいと。 そして質問が、「その選択は(何かと)比較して、容易で適当な選択か」 だと。

答えはあなた次第です。まず言語そのものには慣れているのか、とか
プロットした結果を三次元で描画したいだけなら、別にDirectXなんか無くてもおkなはず。
容易かどうかはあなたのスキル次第。適当かどうかは上に書いた通り。 てか、ややスレチ気味

318 :デフォルトの名無しさん:2011/06/27(月) 01:42:18.12
学術方面だったらOpenGLのほうが根強いイメージだな。GLUTとかあるしな!

319 :デフォルトの名無しさん:2011/06/27(月) 01:50:49.60
関数の結果プロットしたいだけなら、GDIで普通に座標変換して描画してもいいよな
大した手間じゃないし、欲しい内容の本筋と離れた多くの設定群も書かなくて済むし。
昔から三次元グラフとか、普通に計算して描画してた訳で、ただそれだけの事

320 :デフォルトの名無しさん:2011/06/27(月) 06:47:23.48
OpenGLってなんか不安定なイメージあんだよな。

321 :デフォルトの名無しさん:2011/06/27(月) 08:49:24.27
OpenGLって、DirectXだったりGDIだったり、中の人は実装依存なんだおね?

DirectXの平面にGDIアクセスって出来るんだっけか?


322 :デフォルトの名無しさん:2011/06/27(月) 11:27:47.86
OpenGLとDirectXを比べると
一般ユーザーは資料のの多いDirectXに
学術ユーザーはVerUPや互換につよいOpenGLだろうな

323 :デフォルトの名無しさん:2011/06/27(月) 11:59:22.17
OpenGLとDirectXは、
単にプラットフォームに依存するだけ

324 :デフォルトの名無しさん:2011/06/27(月) 12:54:22.47
>>314
gnuplotじゃだめなんですか?

リアルタイムに動くものでないとダメなら
gnuplotの描画を何枚が用意してコマ送りして
アニメを作成するとか。

gnuplotはCやC++中からも呼び出せるから、
これで十分だと思うけど

325 :デフォルトの名無しさん:2011/06/27(月) 16:03:15.70
ダメだろww

326 :デフォルトの名無しさん:2011/06/27(月) 22:40:10.50
>>314
そうです、こんな感じです
後いろいろな角度から見れるようになれば、完璧です

>>314
ちなみに、C言語には結構なじんでいてWin32APIはウィンドウプロージャの動作や描画ツールとか
リソースを入れてツールバーやダイアログボックスなんかもそれなりにはやりました
でも未だにまともなプログラムを完成させたことはありません
DirectXは全くの素人です、その程度の能力だと思ってもらえればいいかと…
レス迷ったんですがこちらにしました、迷惑でしたらすみません

色々なアドバイス頂いているのですが、いまいちよくわかってないみたいで…
DirectXなんか使わなくても、Win32API関数だけ、あるいは何らかのライブラリ
をインクルードして使えば実現できるということなのでしょうか?
今一度お願いします…

327 :デフォルトの名無しさん:2011/06/27(月) 22:43:34.68
DirectXでできる

328 :デフォルトの名無しさん:2011/06/28(火) 00:13:10.31
>>315 の操作は、
マウスの左右クリック、右ドラッグ
キーボードのスペースとRETURN、その他

マウス右クリックで全部名称表示
マウスカーソルを当てると、名称表示で
マウス左クリックで選択、中央表示
そして、マウス右クリックのままグリグリ。

329 :デフォルトの名無しさん:2011/06/28(火) 00:18:58.64
未だにDirectX7のDirect3Dの機能使ってるんだけど(主に2Dベースのゲームで)
何か大きな弊害とかありますかね?

時々、DxLibの作者が、DirectX7ベースのDxLibだと
Win7で動作不良が起こる場合があるとか書いてたので
ちょっと不安になって。

330 :デフォルトの名無しさん:2011/06/28(火) 00:24:58.60
>>329
問題ない

331 :デフォルトの名無しさん:2011/06/28(火) 00:27:09.04
手段は、
1)2Dグラフィックが出来るなら、
3D→2Dの変換をプログラムで行う。
単純な画像なら容易

2)3Dライブラリを使う。
C言語からなら、DXライブラリを使ってみる。
類似した3Dライブラリが多数ある。

3)DirectXをC言語で直接駆動する、
難易度高い、というか時間の浪費

4)ツールを使う、多数ある


332 :デフォルトの名無しさん:2011/06/28(火) 01:06:43.77
DirectX9でSprite->Draw使ってるんですが
S_OKが返ってくるのに描画されてないのは
どうゆう部分に問題があるのでしょうか?

sprite->Drawの引数に使用している変数に関係してる?関数
CreateTexture
GetSurfaceLevel
CreateOffscreenPlainSurface
GetFrontBufferData
UpdataSurface

この情報だけでわかるでしょうか?
DX初心者です、理由が推測できません。

やりたいのは、フロントバッファをコピって
自分のウィンドウに表示させたいのですが。

333 :デフォルトの名無しさん:2011/06/28(火) 04:41:50.16
自己解決しました。

フロントバッファからサーフェイス取得したのを
バックバッファにコピーするだけ。

と言う事にまったくきずきませんでした。

すみませんでしたー。


334 :デフォルトの名無しさん:2011/06/29(水) 00:27:10.27
>>331
>難易度高い、というか時間の浪費

自分を基準に語るなよ。DxLibとかおもちゃだろ。あとスレタイ100回読み返せ


335 :デフォルトの名無しさん:2011/06/29(水) 00:29:35.41
VC#+DxLibを薦める奴は、大抵無能


336 :デフォルトの名無しさん:2011/06/29(水) 00:36:15.55
難易度が高い方が偉いっていうのが日本人の悪いところだね

337 :デフォルトの名無しさん:2011/06/29(水) 03:10:22.31
>>330
まぁ要はあれですかね、自分のプログラムの出来と
あとはビデオチップメーカのドライバがどこまで対応してるかって
ところでしょうか。

338 :デフォルトの名無しさん:2011/06/29(水) 08:19:25.35
>>336
日本人に限らないっての

339 :デフォルトの名無しさん:2011/06/29(水) 08:47:25.03
ネットで調べてみると、意外と
DirectX7から新しいバージョンに移行してない人多いね。
8でかなり変わったし、2Dゲーとか作るなら
そんな新しい機能いらないって人も多いだろうしね。

そこそこの3D機能使いたいなら、DxLibでもいいね。

340 :デフォルトの名無しさん:2011/06/29(水) 16:50:02.26
すみません、ポリゴンにテクスチャを貼るプログラムでビルドが正常終了しているのに
ウィンドウが表示されないのですが何が考えられますか?
DirectX 9 シェーダプログラミングブックという本を見ながら
少しづつ勉強しているんですが、アプリケーションウィザードが使えないので
テクスチャを貼る部分のプログラムをいろいろ見ながら変更して
エラーを吐かないとこまでは来たのですが。

341 :デフォルトの名無しさん:2011/06/29(水) 16:56:08.24
プログラムスタート→全処理が終わって閉じる

どこかでwhileとかでループしてるか?

342 :デフォルトの名無しさん:2011/06/29(水) 20:28:17.02
>>340
色々原因が考えられるが、
DirectXSDKチュートリアルは見た?動くサンプルだから参考になるはず
しかしまぁwinapiは歴史的遺物のせいで驚異的に分かりにくいからなぁ

343 :デフォルトの名無しさん:2011/06/29(水) 23:20:53.63
DX9からDX11に移行中。どうにかソースは書き換えたけど、
PresentするとPIXがエラー出したり謎現象おおくて、困った困った。

344 :デフォルトの名無しさん:2011/06/30(木) 14:24:00.35
340です
以前チュートリアルのサンプル動かそうとして何故か失敗してたのですが
今回やってみたら動いたのでそれ見ながら、もちょっといじってみます。


345 :デフォルトの名無しさん:2011/07/02(土) 00:27:30.47
>>331
どうもありがとう
まずはDxライブラリあたりをあたってみます

346 :デフォルトの名無しさん:2011/07/02(土) 23:03:45.65
DXライブラリはこういう初心者用に作ったDirectXラッパーなんだし、とりあえず動くの作りたいってんならさっさと誘導したほうが良かったな

347 :デフォルトの名無しさん:2011/07/03(日) 12:39:44.63
なんでDXライブラリってGCAとかいう一般的じゃない形式で圧縮してるの?
そんなだからexeにしないと解凍できないし
exeは怖いんだけど

348 :デフォルトの名無しさん:2011/07/03(日) 12:42:02.99
>>347
公式の掲示板で文句いってくだしあ

349 :デフォルトの名無しさん:2011/07/04(月) 23:27:33.90
右手座標系の3DCGソフトで作ったデータを左手座標系に変換してレンダリングしたのですが
表示が異なります。
具体的には、カメラは+Z方向から-Z方向を見ています。
3Dソフトだとメッシュがカメラの方向を向いているのですが、プログラムだとメッシュの背後から見た感じになってしまいます。

350 :デフォルトの名無しさん:2011/07/04(月) 23:33:52.37
対象性の破れキターーーーーーーーーーー

351 :デフォルトの名無しさん:2011/07/05(火) 11:42:34.39
>>349
ファイルを出力するときになんらかの設定できるのでは?

352 :デフォルトの名無しさん:2011/07/05(火) 14:05:35.55
もう読み込んだ後で頂点情報を直接いじってZ座標の符号を逆にすれば
いいんで内科医?

353 :デフォルトの名無しさん:2011/07/05(火) 15:01:18.45
>>351,352
ありがとうございます。
もしかしてカメラのワールド座標もZ値を反転しないとダメなんでしょうか?

354 :デフォルトの名無しさん:2011/07/05(火) 22:34:41.40
メッシュだけでいいだろ

355 :デフォルトの名無しさん:2011/07/06(水) 00:16:36.36
法線とあと何反転するんだっけ?
なんか色々大変だったよなぁ?
カリングは逆になっちゃったっけ?

356 :デフォルトの名無しさん:2011/07/06(水) 00:52:24.96
>データを左手座標系に変換してレンダリングした
と言いつつ、

>表示が異なります

という事は、つまりその自分で書いた変換処理の考慮漏れってだけの話
それなのに、

>プログラムだとメッシュの背後から見た感じに

>なってしまいます
とはこれいかに

357 :デフォルトの名無しさん:2011/07/07(木) 12:18:05.56
DirectX9で簡単なゲームを作ってみているのですが
MessageBox等のダイアログを出そうとするとウィンドウモード時でもフリーズしてしまいます。
IDIRECT3DDEVICE9::SetDialogBoxModeをTRUEにしたりしたのですがどうにもうまく行かず。
尚WM_CREATEに書いたものはちゃんと出ます。
初歩的ですみませんが、何が考えられるでしょうか

358 :デフォルトの名無しさん:2011/07/07(木) 13:33:44.45
指定するウィンドウハンドル間違えてるよ

359 :デフォルトの名無しさん:2011/07/07(木) 14:45:22.90
>>358
最初にCreateWindowで作ったハンドルではなく、新たにウィンドウを作成すれば良いのでしょうか

360 :デフォルトの名無しさん:2011/07/07(木) 18:55:30.72
あげ

361 :デフォルトの名無しさん:2011/07/07(木) 19:20:23.45
>>359
メッセージボックスはウインドウハンドルにNULLを渡しても動作する。

362 :デフォルトの名無しさん:2011/07/07(木) 20:20:44.02
>>361
NULLを渡すとフリーズはしないもののダイアログボックスは依然出てこないみたいです・・。
ブレークポイント置いてみると、ウィンドウを破棄したところでMessageBoxから制御が帰るような挙動になっているので
DirectXの親ウィンドウの描画に隠れてしまっているような気が何となくするのですが、そういうことはあるのでしょうか。

363 :デフォルトの名無しさん:2011/07/07(木) 20:27:01.71
>>362
GetForegroundWindow()のウィンドウハンドルは?
ってかこういう面倒なわずらわしいコーディングが嫌になったら
glutとopenglやってもええんやで、ええんやで

364 :デフォルトの名無しさん:2011/07/07(木) 21:03:12.05
>>363
GetForegroundWindow()もNULL時と同じ挙動のようです。openglにも手出してみたい・・

ChooseFont()等ダイアログボックスが出てくるものは尽くダメなようで、
またMB_TOPMOST等指定しても出てきませんでした。
デバグで使えると良かったのですが、とりあえずはゲームなのでメッセージボックスは使わない方針で行こうと思います。
ありがとうございました。

365 :デフォルトの名無しさん:2011/07/08(金) 00:42:18.66
http://ideone.com/av8nx

366 :365 :2011/07/08(金) 00:43:07.16
間違って送信しちゃった
普通に出るけどなぁ VC2010

367 :デフォルトの名無しさん:2011/07/08(金) 00:45:06.39
ま、OpenGL&GLUTなら楽だけどな実際
DirectX でも DXUT 使えば似たようなもんじゃね?

368 :デフォルトの名無しさん:2011/07/08(金) 06:34:43.44
出来上がったものを配布するときに同封するランタイムってどんな形でくっつければ良いですか?

369 :デフォルトの名無しさん:2011/07/08(金) 08:22:58.47
CD-Rに焼いて封筒にいれてガムテで固定すればいいんじゃね?

370 :デフォルトの名無しさん:2011/07/08(金) 08:23:30.98
DirectX11つかえばいいだけじゃないかな

371 :357:2011/07/08(金) 17:44:47.78
>>366
普通に出ますね・・。
週末にでも確認してみます。ありがとうございます。

372 :デフォルトの名無しさん:2011/07/08(金) 21:35:03.64
VC2010を閉じると勝手に再起動して困る
(その再起動を閉じると再起動はしない)
再インストールして直ったと思っても時間経つと元に戻るし
どうすればいい?

373 :デフォルトの名無しさん:2011/07/08(金) 23:14:11.96
電源を新換えする。

374 :デフォルトの名無しさん:2011/07/09(土) 13:02:57.46
やはりDirectX10以降で開発となるとXP等は捨てることになってしまうんでしょうか。
テセレータとか無くてもいいという場合はDirectX9を選択して広範なOSを選択するとかそういう
選び方しかできないんでしょうか?

375 :デフォルトの名無しさん:2011/07/09(土) 22:52:24.86
できません

376 :デフォルトの名無しさん:2011/07/10(日) 11:02:04.14
布教が最重要目的ならDitectX9、それ以外なら11以外ないわ。

377 :デフォルトの名無しさん:2011/07/10(日) 11:15:10.10
なんで布教なんだよ

378 :デフォルトの名無しさん:2011/07/10(日) 11:19:02.47
配布って言葉を知らないんだろ。

379 :デフォルトの名無しさん:2011/07/10(日) 11:23:50.38
なんでも"信者"とか"布教"って言葉で表そうとする人間は、凝り固まったネット脳
語彙の少ない若輩、怠惰なヲタク、ニコ厨に多い

380 :デフォルトの名無しさん:2011/07/10(日) 12:00:32.14
なんでも煽るやつは、煽ることで自分が優位に立っていると
勘違いしているかわいそうな人が多い

381 :デフォルトの名無しさん:2011/07/10(日) 12:02:33.83
>>380
お前か

382 :デフォルトの名無しさん:2011/07/10(日) 12:04:21.84
>>380
お前しか煽ってない件

383 :デフォルトの名無しさん:2011/07/10(日) 12:22:08.78
>>376がボケる
>>377が突っ込む
>>378がフォローする
>>379が解説する
>>380が煽る

384 :デフォルトの名無しさん:2011/07/10(日) 13:21:31.31
よく見ろ >>376 のは Ditect だぞディテクト

385 :380 :2011/07/10(日) 15:17:55.82
スマン俺が変なこと言ったな
空気を悪くして済まなかった

386 :デフォルトの名無しさん:2011/07/10(日) 17:49:43.58
煽ってると思うのが一人の場合って自分が煽られてる時だけだよな
つまり配布を知らなかったことから全てが始まるわけで
さらに他は全員第三者感情でレスしてるのに謝罪とか・・・
まあ教えてる俺も俺だけど人によってここまで次元が違うものなのかなと改めて思ったよ

387 :デフォルトの名無しさん:2011/07/10(日) 18:46:51.60
どうでもいい

388 :デフォルトの名無しさん:2011/07/11(月) 08:44:10.85
>>374
大きく言えば
DirectX9はXPが使えるというメリットがある
DirectX11はジオメトリシェーダやテッセレーションつかえるメリットがある
逆に考えて、XPユーザーは気にしないならDirectX11でいいし
ジオメトリシェーダつかわないならDirectX9でいい

389 :デフォルトの名無しさん:2011/07/11(月) 11:31:21.90
定数バッファのサイズやレンダーターゲットの複数設定でフォーマット一緒にしなくてもいいとか色々あると思うが、、、

390 :デフォルトの名無しさん:2011/07/12(火) 10:57:33.87
ジオメトリシェーダはともかく、テッセレーションって使い道あるかねえ?
DirectX初心者スレにくる、日曜プログラマとか、学生にとってって意味で。

391 :デフォルトの名無しさん:2011/07/12(火) 22:47:38.92
初心者とか日曜プログラマとか学生の為のライブラリじゃないですから


392 :デフォルトの名無しさん:2011/07/13(水) 12:45:55.44
3次元空間で、ある物体の座標がカメラ(視点)の後方にいるかどうかを調べるにはどうしたらいいのですか?

393 :デフォルトの名無しさん:2011/07/13(水) 13:06:50.68
>>392
カメラからある物体までのベクトルとカメラの正面方向のベクトルで内積をとる。

394 :デフォルトの名無しさん:2011/07/13(水) 13:08:08.70
内せき

395 :392:2011/07/13(水) 14:36:33.19
内積で解決しました。
ありがとうございました。

396 :デフォルトの名無しさん:2011/07/14(木) 20:46:18.06
DirectPlay便利なのになんでなくなったの?

397 :デフォルトの名無しさん:2011/07/14(木) 22:10:24.36
C#か.netのほうでもっと楽なのなかったか?

398 :デフォルトの名無しさん:2011/07/14(木) 23:39:18.80
WinSock叩くのに比べてそんなに簡単だとは思えないなぁ。
自由度も低いし。

399 :デフォルトの名無しさん:2011/07/15(金) 04:11:06.89
DirectPlayは危険度の高いセキュリティホールが発見されたので使わないでください
みたいなアナウンスがされて、そのまま放置されたような

400 :デフォルトの名無しさん:2011/07/15(金) 04:26:35.77
ロビー機能だけでも、なんとかして欲しいねぇ。
MS以外が用意しても、あんまり採用されないだろうし。

401 :デフォルトの名無しさん:2011/07/16(土) 00:50:13.58
>>397
C#よりも、C++ で boost::asio の方が下手すると相当に楽


402 :デフォルトの名無しさん:2011/07/16(土) 09:51:47.76
>>391
お前は2行あるうちの1行しか読めない病気か何かなのかw

403 :デフォルトの名無しさん:2011/07/16(土) 09:52:48.05
ゲームを作りたいのですが
DXライブラリを使うかAPIを使って全部書いていくか悩んでいます

完成形のクオリティや使いやすさが上なのはどちらでしょうか
DXライブラリで作ったものは動作性能が良くない様な感じもするのですが...


404 :デフォルトの名無しさん:2011/07/16(土) 10:04:00.54
>>403
どっちも同じことができるが、到達する距離が違う。
API系を使うほうが自由度はそりゃ多い。
DXライブラリはフレームワークなんで、出来ることを制約しつつ何らかの形を作りやすいようになってる。

405 :デフォルトの名無しさん:2011/07/16(土) 10:06:58.40
>>403
DXライブラリってのは、単にどこかの個人が、DirectXAPIの定型な処理をいくつか
まとめて予め書いただけの、いわばサブルーチン集のような物なので、

あなたの質問は、
「直接APIを使うか、ブラックボックスを経由して遠まわしにAPIを使うか」 という話に過ぎません。

なので、どちらが良いですか?なんて、他人が決める事じゃなくてあなた次第です。
ちなみに、そんな訳ですから、『完成系のクォリティ』 なんて、あなたが書くコード次第で、違いはありません。

※ただし 『違いは無い』 と言うのは、表示される内容の話であって、例えばラッパライブラリだけを使って何か書いて、
 直接API を使わない場合、当然 『出来ない事』 が沢山登場するでしょう。 用意してもらった範囲でしか書かないのならば。


406 :デフォルトの名無しさん:2011/07/16(土) 10:10:58.96
>>403
ちなみに、DXライブラリは初心者向けの触れ込みで出回ってるから、
それに、製品クオリティを望むのは酷な話。(作者のスキル的な意味で。

407 :403:2011/07/16(土) 10:40:42.38
クオリティと書いた為にいろいろゴチャゴチャしたみたいですが
どんなアプリでも操作性が大事だろうと思っていますので
動作に限界があるようなので普通にAPIを使いたいと思います

沢山の回答ありがとうございました。

408 :デフォルトの名無しさん:2011/07/16(土) 14:14:04.42
DirectX API 自体が既にライブラリで自由に扱いたいならハードから直接叩くんじゃないの?
っていう突っ込みはNG?・・・

409 :デフォルトの名無しさん:2011/07/16(土) 14:37:14.78
ある程度の汎用性はほしいだろうし、ハード叩ける器量があるならそんな質問しないだろうね。

410 :デフォルトの名無しさん:2011/07/18(月) 07:38:10.32
DirectXのバージョンの事も考慮するべきかなと。DXライブラリって確か9だろ?
今の所11は9扱えるようにしてくれてるけど、次の世代がどうなるのか判らんよな。
で、ライブラリ作者がその対応をどうするのか、またライブラリのインターフェイスはそのままでいけるのかって話もでてくるし。

411 :デフォルトの名無しさん:2011/07/18(月) 11:48:01.75
>>408
NGってか、話の要点見えてない人が言う、何も考えていないただの揚げ足取りだと思うそれ

上の話の要点は、「直接APIを使うか、ブラックボックスを経由して遠まわしにAPIを使うか」 であって、
さらにそのブラックボックスが、(当然)大本のAPI(DirectX)の全てのエントリを持っている訳じゃないんだから、
出来る範囲が狭まるのは自明 = 「出来ない事が沢山登場する」 のくだり

あと、>>407
>どんなアプリでも操作性が大事だろうと思っていますので
>動作に限界があるようなので普通にAPIを使いたいと思います

とあるアプリケーションの操作性、っていう話は、それこそあなたが書く内容次第なので、
全然関係無い。 あなたが書く、ロジックの話だよそれ

412 :デフォルトの名無しさん:2011/07/19(火) 15:42:38.18
質問の内容のレベルから察すると2DならDXLIBつかったほうがいい
3Dなら直接かいていくほうがいいとおもうが
こういう質問してる時点で難しいかもしれん

413 :デフォルトの名無しさん:2011/07/20(水) 04:31:24.95
DxLibは初心者用ライブラリとかフレームワーク以前に
DxLib作者のレベルがかなり低いのが問題だと思う

414 :デフォルトの名無しさん:2011/07/20(水) 05:58:10.92
ライブラリ作者としての情熱は逸品だと思う

415 :デフォルトの名無しさん:2011/07/20(水) 08:09:44.72
レベルの低いユーザーにはレベルの低い作者が合ってるんじゃないかと思う
ハイレベルな作者がUDKやUnityみたいなのを作ったって、
低レベルなユーザーにはレベルデザイン?なにそれわかんないあたまいたいやめてってなるだけだし

416 :デフォルトの名無しさん:2011/07/20(水) 08:14:59.49
>なにそれわかんないあたまいたいやめて
低燃費少女ハイジのおんじ思い出した


417 :デフォルトの名無しさん:2011/07/21(木) 03:12:53.52
>>415
とりあえずお前はバファリン飲んどけよ

418 :デフォルトの名無しさん:2011/07/24(日) 05:35:34.30
SetFVF(D3DFVF_NORMAL | D3DFVF_DIFFUSE);
DrawPrimitiveUP(D3DPT_LINELIST, 3, pt, sizeof(D3DVERTEX_XYZ));
などの表記で3Dの座標軸のようなものを表示してたのですが気が付くと表示できなくなりました
同時に表示していたXファイルやDrawPrimitiveUPで2Dポリゴンなどは表示できます
環境はWin7pro64bitのSP1でDirectXに関係ありそうなのは順にDirectX9.0_SDK_dec2004をインストール
デバッグの表示用にDXSDK_Feb10をインストール

419 :デフォルトの名無しさん:2011/07/24(日) 05:38:15.60
つづき
その後別のソフトを動かすために
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3
のDirectX9エンドユーザーランタイムが必要だったため入れています
最後のエンドユーザーランタイムを入れてからのような気がするのですがはっきりとわかりません
プログラム一式をそのままWinXP+DirectX9.0_SDK_dec2004の環境で実行するとちゃんと表示されます
DX9エンドユーザーランタイムを消す方法もわかりません
原因と解決法わかれば教えてください、お願いします

420 :デフォルトの名無しさん:2011/07/24(日) 09:47:15.68
>>418
>SetFVF(D3DFVF_NORMAL | D3DFVF_DIFFUSE);
FVFに位置座標が含まれてない。
これで描画できてる方が不思議なんだが。

421 :デフォルトの名無しさん:2011/07/24(日) 10:35:45.25
XNAのEffectクラスってID3DXEffectのラッパみたいなもんだったと思うんだけど、
XNAってEffectクラスのインスタンスの複製を大量に作ってるよね。
でもDirectX SDKに付属するサンプル見ると、たいていグローバルなエフェクトを一つだけ作って、それを使いまわしてる。

これって結局、どちらもそんなに悪くないってこと?
こっちにしとけっていうのがあったら教えて。

422 :デフォルトの名無しさん:2011/07/24(日) 11:01:01.65
>>420
ありがとうございます、指摘の点を修正することで意図してた描画が出来ました

表示できてたのはなんでしょうね?上記の設定でもXP環境は今でも描画できますし
Win7の方はスクリーンショットを何枚か撮っているのを思い出してそちらを確認したら
DXSDK_Feb10を入れた段階だと表示できていますね、とはいえ
表示が出来る=正しい というわけではないのでちゃんとできるように勉強します

423 :デフォルトの名無しさん:2011/07/24(日) 14:07:48.97
そういうときはラデオン使え。
ゲフォはドライバが空気読んで勝手に補完してくれたりする。

424 :418:2011/07/24(日) 17:05:13.80
>>423
グラフィック環境は書くべきでしたね、ランタイムが原因と思ったので書き漏らしました
XPはオンボのRadeon Xpress1250でwin7はRadeon HD 5450です
NVIDIAの8500GTもありますがそっちは使ってないです(Xpress1250より速度は速いですが)
ただ、たしかにXpress1250は勝手にアンチエイリアスかかったりかからなかったり挙動が妙ではあります
今回Win7のハードはずっと同じなので直近の原因ではないと思いますが表示できることの方が変だそうなので
Win7の環境はそのままある程度まともに作れるようになったらゲフォ等他のグラボでも確認してみます

425 :sage:2011/07/27(水) 00:42:36.28
プロパティで
追加の依存ファイル dinput8.lib;dxguid.lib;%(AdditionalDependencies)
追加のライブラリディレクトリ $(DXSDK_DIR)\Lib\x86;%(AdditionalLibraryDirectories)

と設定してコンパイルするんですが
1>LINK : fatal error LNK1181: 入力ファイル 'Input.lib' を開けません。というエラーが発生します

どうやったら解決できますか



426 :デフォルトの名無しさん:2011/07/27(水) 09:04:28.36
Input.libなんてファイルどこにもねーよ!ってエラー。
勝手にリンクされるものじゃないから、どっかしらで自分で指定してるはず。

427 :デフォルトの名無しさん:2011/07/27(水) 09:40:10.85
#pragmaかな?

428 :デフォルトの名無しさん:2011/07/27(水) 09:45:30.20
そいつ他スレでもマルチポストしてるぞ

429 :デフォルトの名無しさん:2011/07/27(水) 12:16:19.22
425ですが どうか教えてください

430 :デフォルトの名無しさん:2011/07/27(水) 12:28:58.06
>>429
一式うpするといいんでね

431 :デフォルトの名無しさん:2011/07/27(水) 12:46:30.44
426で答え出てるじゃん。

432 :デフォルトの名無しさん:2011/07/27(水) 14:06:18.95
そもそもInput.libとやらはDirectXとは関係ないのでスレ違い

433 :デフォルトの名無しさん:2011/07/28(木) 01:21:29.57
>>429

>>426 を見ても意味がわからないなら、もっと基礎からやり直せ
ヒントは、パス


434 :デフォルトの名無しさん:2011/07/30(土) 11:26:14.56
エフェクトステートのアルファテストが廃止されたようで、
これまでのシェーダファイルが使えなくなりました。
みなさんは、手書きで修正されるのでしょうか?
自動的に変換するツールなどはないでしょうか?

435 :デフォルトの名無しさん:2011/08/01(月) 16:01:55.55
回転行列から、例えばX軸回転で何度、Y軸回転で何度かを知るにはどうしたらいいのですか?


436 :デフォルトの名無しさん:2011/08/01(月) 18:12:20.48
直感だけど、軸回転する順番決めなきゃ一意に決まらないのじゃないだろうか。

437 :デフォルトの名無しさん:2011/08/01(月) 22:28:15.78
>>435
不可能

438 :デフォルトの名無しさん:2011/08/01(月) 22:39:31.44
まあ3つの積に分ければいいだけのことだけどね

439 :デフォルトの名無しさん:2011/08/02(火) 00:07:24.28
回転順が決まってれば求まる。

440 :デフォルトの名無しさん:2011/08/02(火) 03:03:36.19
Lost due to display uniqueness change
このエラーの解消法はどうすればいい?

441 :デフォルトの名無しさん:2011/08/02(火) 07:06:03.39
>>440
http://www.gamedev.net/topic/501868-lost-device-due-to-display-uniqueness-change/
ググって1行目に出た内容

442 :デフォルトの名無しさん:2011/08/02(火) 17:25:26.21
要は解像度の問題だった。

443 :デフォルトの名無しさん:2011/08/04(木) 00:07:24.48
複数の板ポリゴンを描画するにあたって、それぞれの座標を別々に移動してみたいと思ったのですが、
考え方としては
ワールド座標を移動→DrawPrimitive();
これを何度も繰り返すというので正しいのでしょうか?

444 :デフォルトの名無しさん:2011/08/04(木) 00:22:06.43
はい。

445 :デフォルトの名無しさん:2011/08/04(木) 00:23:28.05
ありがとうございました。

446 :デフォルトの名無しさん:2011/08/04(木) 00:24:44.00
正しいも間違ってるもないけど、一度のDrawPrimitive()で描画する量が少なく
大量のDrawPrimitive()を繰り返す場合はかなり遅くなるかもしれない。
一度のDrawPrimitive系命令自体がかなり重い。

447 :デフォルトの名無しさん:2011/08/04(木) 00:43:55.72
その都度転送するもんな。drawと関数名にはあるが、実際転送&描画処理だしな


448 :デフォルトの名無しさん:2011/08/04(木) 00:48:07.10
>>446
今は大きいポリゴンに小さいポリゴンを乗せるような感じで描画しているのですが、
テクスチャステージステートを駆使して一枚のテクスチャを一枚のポリゴンで描画する
というのが最良ですか?
どちらの方が処理が早いのでしょうか

449 :デフォルトの名無しさん:2011/08/04(木) 00:54:05.93
単純に一回のdrawで、描画の切り替えは全部HLSL内で


450 :デフォルトの名無しさん:2011/08/04(木) 00:58:30.66
あう、盲点でした。
弄ってきます。ありがとうございました


451 :デフォルトの名無しさん:2011/08/04(木) 14:57:49.41
D3DPRESENT_PARAMETERSを使ってフルスクリーンにすると
SetWindowPosやCreateWindowで幅や高さを0にしてもフルスクリーンになるんだが、
これは別に0でいいものなの?それとも自分の環境だけ?

452 :デフォルトの名無しさん:2011/08/04(木) 17:35:46.90
キャラクターの向きをある物体に合わせるにはどうしたらいいのですか?
現状は、D3DXMatrixLookAtLHを使ってみたのですが正常に向いてくれませんでした。


453 :デフォルトの名無しさん:2011/08/04(木) 18:38:26.30
>>452
目標の方向をZ軸として、Y軸が一定である場合、
この二つの軸の情報からX軸を法線として求める事が出来る。

454 :デフォルトの名無しさん:2011/08/04(木) 18:48:08.43
>>451
D3DPRESENT_PARAMETERSでフルスクリーン化すると、ウィンドウ側の設定は
無視して問答無用でフルスクリーンになる。
このとき、ウィンドウモードよりもGPUがパフォーマンスを発揮できるので、
フルスクリーン化はこれでOK。

ウィンドウのタイトルバー取り去ってウィンドウサイズをスクリーンと同じにする
フルスクリーン化だと、GPUのパワーが完全には発揮できない。

455 :デフォルトの名無しさん:2011/08/04(木) 18:53:14.73
>>452
キャラクターとある物体の間の距離から、向きたい方向ベクトルを取得。
キャラクターがデフォルトで(回転行列を掛けていない状態で)向いている
方向ベクトルと、向きたい方向ベクトルの2つのベクトルを使って
2つに垂直な方向ベクトルと2つのベクトルのなす角度を算出。
あとは、その垂直な方向ベクトルを回転軸としてなす角の角度分回転する
行列を、任意軸回転行列を使って求める。

みたいな話ですか?

456 :455:2011/08/04(木) 18:54:29.22
ごめん、一行目は距離じゃなくて正確には位置の差、です。

457 :デフォルトの名無しさん:2011/08/05(金) 00:55:16.38
それ、DirectXと言うより、普通に数学の話よね

458 :デフォルトの名無しさん:2011/08/05(金) 04:50:57.91
DirectXとかDirectShowとかでプログラムしたいんですけど。
開発環境はWindowsXP(ターゲットもXP)、VisualStudio2008Express editionです。
むかーしは(VS2003位の頃)DirectShowやるんだったらPlatform SDKを入れたと記憶しております。
当時はWindows Server 2003 R2 Platform SDKというリビジョンだったのですが、
今の最新のDirectShowが提供されているSDKって相変わらずこれなんですか?

459 :デフォルトの名無しさん:2011/08/05(金) 04:53:10.72
あ、ごめん。解決しちゃった。
Windows SDKか。

#あってる?

460 :デフォルトの名無しさん:2011/08/05(金) 08:08:10.15
あってる。

461 :デフォルトの名無しさん:2011/08/05(金) 08:24:13.53
サンクス。
ダウンロードしてみたがなんだかんだで3回くらい失敗した。。

462 :デフォルトの名無しさん:2011/08/06(土) 14:53:35.73
DirectX9でシェーダーのサンプラステートでAddressU、AddressVをBorderに設定し、BorderColor = float4( 1, 1, 1, 1 );
とやったんですが、ボーダー色が反映されていません。どうすればシェーダーからボーダーの色を設定できますか?

463 :デフォルトの名無しさん:2011/08/07(日) 06:37:34.48
こんにちは、C++でDirectXプログラムをしているものです。

http://image.blog.livedoor.jp/natumi101/imgs/1/b/1b3acd8e.jpg
こちらとかテクスチャマッピング(字の描画)が非常に滑らかでシャギが一切といっていい程出ていません。

自分は「DirectXグラフィック入門」という本を見ながらSetTextureでテクスチャを張っていて
それなりに滑らかなのですが上の域までとはいかずシャギや荒がオブジェクトの角度によっては出ます。
テクスチャを上のような域まで滑らかにするには何かコツとかあるのでしょうか?

一応オプションで以下のことはやっております。
pD3DDevice->SetRenderState( D3DRS_DITHERENABLE, TRUE);//ディザリングを行なう

464 :デフォルトの名無しさん:2011/08/07(日) 06:47:37.69
α画像なんじゃねーの?

465 :デフォルトの名無しさん:2011/08/07(日) 11:05:51.40
もっとAAの効いた画像を用意すれば解決すると思う

466 :デフォルトの名無しさん:2011/08/07(日) 11:12:39.52
角度によって、ってことはミップマップが足りてないということも

467 :デフォルトの名無しさん:2011/08/07(日) 19:01:42.73
テクスチャの内容も関係するが
単にスクリーンサイズやフレームバッファサイズに対する
ポリゴンやテクスチャの解像度の問題なんじゃねーの

468 :デフォルトの名無しさん:2011/08/07(日) 19:11:24.65
例えば、300x500のピクセルに
DotByDot相当になるようにテクスチャを使ってレンダリングしてる物に対して

それを同じ見た目を、同じテクスチャ使った所で
半分の150x250のピクセルで実現できるわけないよ

スクリーンショットの解像度と、自分がやってる解像度くらいは分かるよね?
比べてみなよ

469 :デフォルトの名無しさん:2011/08/07(日) 19:26:28.04
>>463
まずは自分のソフトのサンプル画像を見せるといいと思うよ

470 :463:2011/08/07(日) 19:48:08.55
ありがとう。
自分のでもそれなりに綺麗に表示できてるんですが
サンプルが今まで見たことないほど滑らかなので
テクスチャにもっとアンチエイリアスをかける方法とかあるのかなと思って質問した
のですが元の画像で工夫するしかなさそうですね。
同じような画面で牌字ひとつあたりに64X64のBMPを使用しているのですが
もっと大きなサイズとかで色々試してみます。

471 :デフォルトの名無しさん:2011/08/07(日) 20:05:46.34
DirectX9でシェーダーのサンプラステートでAddressU、AddressVをBorderに設定し、BorderColor = float4( 1, 1, 1, 1 );
とやったんですが、ボーダー色が反映されていません。どうすればシェーダーからボーダーの色を設定できますか?

472 :デフォルトの名無しさん:2011/08/07(日) 20:09:29.99
>>470
あのリンク先の牌を見て64x64は無いよ

テクスチャもスクリーンサイズも、とんでもなくリッチだろ
適当な目算算出だけど、テクスチャは一文字で256x256程度で
スクリーンもフルHD(1920x1080)画面って所でしょ

473 :デフォルトの名無しさん:2011/08/07(日) 22:10:31.89
>>472
スクリーンサイズがリンクの画像サイズの1024x768より大きいってどうしてわかるの?

474 :デフォルトの名無しさん:2011/08/09(火) 20:54:34.35
以下のようにして、CPUでテクスチャに直接ピクセル値を書き込んでいます。


pTex->LockRect( 0, &( LockedRect ), NULL, 0 );

DWORD* pPixel = ( DWORD* )( LockedRect.pBits );
DWORD dwPitch = LockedRect.Pitch / sizeof( DWORD );

*( pPixel + dwPitch * Y + X ) = D3DCOLOR_ARGB( 255, 255, 255, 255 );


同様な感じで、浮動小数点フォーマットのテクスチャに直接書き込むのは
どのようにすれば良いでしょうか??
D3DFMT_A16B16G16R16FやD3DFMT_R16F何かを使います。

よろしくお願いします。 m(_ _)m

475 :474:2011/08/09(火) 22:20:44.83
D3DFMT_R32Fの場合は以下のようにして書き込むことができました。


float* pPixel = ( float* )( LockedRect.pBits );
DWORD dwPitch = LockedRect.Pitch / sizeof( float );

*( pPixel + dwPitch * Y + X ) = 0.5f;


16bit浮動小数点数を扱えればD3DFMT_A16B16G16R16FやD3DFMT_R16Fでも同様に書き込めそうですが、
C++記述上で半精度浮動小数点数の型はどのように記述するんでしょうか??

476 :デフォルトの名無しさん:2011/08/09(火) 22:44:56.10
自分でビット操作して変換する

477 :474:2011/08/09(火) 22:50:17.41
>>476
そうなりますか(x_x)

ありがとうございました!

478 :デフォルトの名無しさん:2011/08/09(火) 23:16:30.32
ぐぐったらD3DXFLOAT16って出るんだけど
C++だったらこれでいいんじゃないの?

479 :474:2011/08/09(火) 23:21:41.12
>>478
おお!できました!
普通のfloatからキャストしてもOKでした。

ありがとうございました!

480 :デフォルトの名無しさん:2011/08/10(水) 11:20:44.99
Win32API C++ DirectX9で、DirectX3Dを使って2Dゲーム作りたいのですが、
DirectXは、まったく触ったことがないので、いい入門書とかありますか?
おそらくないと思いますがDirectX9で2Dゲームの解説している本もあればお願いします。
若干スレ違いな気がしますが、回答お願いします><

481 :デフォルトの名無しさん:2011/08/10(水) 11:38:59.51
9までなら解説しているサイトも本もいっぱいある
まずはここ見ながらやるといい
http://db.tak2ch.jp/other/pdf/directx9.pdfあとはここらへんで入門から応用までhttp://sky.geocities.jp/kmaedam/directx9/directx9.htm
http://marupeke296.com/GameMain.html

482 :デフォルトの名無しさん:2011/08/10(水) 11:53:25.70
>>480
回答ありがとうございます!
DirectXを始めるのに、とりあえず本が一冊あれば、と思ってるのですが
「DirectX 9 シェーダプログラミングブック」などでよろしいでしょうか。
それとも「DirectX9必携」などがよろしいでしょうか。重ね重ね質問すみません。

483 :河内:2011/08/10(水) 12:06:06.26
はじめまして、VB6のDirectx7 Type Libraryを使っているのですが、
RealTek HD Audio OutputというオンボードのサウンドだとCreateSoundBufferメソッドが
失敗しないのに、
BenQのE2220HDをHDMI接続したときに使用可能なインテル(R)ディスプレイ用オーディオ出力
というサウンドデバイスをコントロールパネルで選択すると、CreateSoundBufferメソッドが
失敗してしまいます。
DirectX診断ツールで両方DirectSoundのテストを行っても、両方同じ結果になるのですが、
VB6で違いが出てしまう原因が良くわかりません。
なにか明快な理由があるのでしょうか?

484 :デフォルトの名無しさん:2011/08/10(水) 12:51:31.76
482です。
>>481 さんのpdfは本だったのをpdf化したものなんですね!
とりあえずこれで勉強してから、自分にあった本を探したいと思います。
改めてありがとうございます!

485 :デフォルトの名無しさん:2011/08/10(水) 14:07:41.94
DirectX9でテクスチャを繰り返しでマッピングしたいんですが
有る程度古いハードウェアでも動作させたいと考えています。
CapsのMaxTextureRepeatは一昔前のオンボードでは、どのくらいの数値が一般的ですか?

486 :デフォルトの名無しさん:2011/08/10(水) 14:29:28.61
今で言う一昔はDirect3D9完全対応だ。
何一つ気にする必要など無い。

487 :デフォルトの名無しさん:2011/08/10(水) 16:45:19.27
XPの時代なら大丈夫

488 :デフォルトの名無しさん:2011/08/10(水) 16:56:30.22
>>485
SDKに色んな環境のCapsの一覧表あるから、それで確認する。

489 :デフォルトの名無しさん:2011/08/10(水) 19:26:32.84
>>484
おお、登さんの本、pdf化されてたのか。

490 :デフォルトの名無しさん:2011/08/13(土) 21:26:32.98
ニンテンドー64のコントローラをコンバータでつなぎ、
入力を受け付けたいと思うのですが、可能でしょうか?
また、もし可能な場合、64コンの入力は、
ジョイパッドの入力としてとして扱えばいいのでしょうか?

491 :デフォルトの名無しさん:2011/08/13(土) 22:41:16.99
>>490
それはOSがHIDクラスかジョイパッドとして認識すればそういうふうに使えるように便宜を計ってくれるんじゃないか?
DXはそういう認識の部分には一切手を出さないはず。

要するにコンバータの性能次第。ってかんじだと思うんだが・・・。

492 :デフォルトの名無しさん:2011/08/14(日) 00:30:12.35
ドライバを用意すればいい

493 :デフォルトの名無しさん:2011/08/14(日) 03:34:38.92
質問があります。

512*512のjpeg(ディスクサイズ189kbyte)で圧縮されたテクスチャでも
「D3DXCreateTextureFromFile(D3DFMT_A8R8G8B8)」で読み込んだ際、
VRAMに展開される大きさは「512*512*4≒1Mbyte」というサイズになるのでしょうか?

494 :デフォルトの名無しさん:2011/08/14(日) 04:16:52.24
>>493
当たり前じゃねーか
符号化されたデータをどうやってGPUが解釈するんだ

495 :デフォルトの名無しさん:2011/08/14(日) 08:36:58.49
圧縮したままVRAMに持てるのはDXTだけ

496 :デフォルトの名無しさん:2011/08/14(日) 14:24:09.62
圧縮出来る出来ないはともかく、テクスチャって1秒間に何十回も何百回も
参照される訳で、展開の計算がものすごい負担になりそうだな

497 :デフォルトの名無しさん:2011/08/14(日) 15:31:25.77
展開のロジックはハードワイヤードで持ってるから演算器の負担は無いんじゃなかったっけ?

498 :デフォルトの名無しさん:2011/08/14(日) 20:23:00.51
展開してVRAMにのせるからjpegファイルサイズではなく
512x512の縦横ピクセルサイズになるって話だろ?

展開は最初の1回だけでしょ

499 :デフォルトの名無しさん:2011/08/14(日) 21:26:23.58
DXT使うとファイルサイズのままVRAMに乗るのか
もの凄いメモリの節約になるな

500 :デフォルトの名無しさん:2011/08/14(日) 23:36:51.45
>>498
jpegに関しては一度の展開で
DXTCに関してはハードワイヤードロジックで処理されるから実質コストはかからない





はず

501 :デフォルトの名無しさん:2011/08/15(月) 09:55:45.41
3d全般の話なのですが他に相談できる所がないのでお願いします。
モーションの移動量を適用したいんですが・・・一般的には
どのようにやるのでしょうか?
移動後ルートボーン変換行列*Invert(移動前ルートボーン変換行列)を
モデル全体の変換行列に掛けてみました。これで概ね移動の適用が
できたのですが、モデル全体の変換行列が回転しているとき、
その進行方向に移動量が適用されません。

502 :デフォルトの名無しさん:2011/08/15(月) 12:16:38.97
ルートの移動の話のはずなのに、モーションの移動とか意味不明。
自分の脳みそを整理すれば解決する話。

503 :デフォルトの名無しさん:2011/08/17(水) 10:11:43.66
すみません。Xファイルを読み込んでソフトウェアスキニングしたいのですが、うまくいきません。
Xファイルのデータを読み込んでポリゴンを表示すると正常に表示されますが、
頂点をアニメーションさせると逆さまになったり、ポリゴンがねじれたりしてしまいます。
MSのMeshViewerで見ると正常にアニメートされるので、行列の掛け算の仕方が間違っているのでしょうか。

void Bone::Animate( MeshVertex* vertex , MeshVertex *original, int frame ){ /*vertexは表示用バーテックスバッファ。x=y=z=0に初期化済み。*/
     D3DXMATRIX mat;D3DXMatrixIdentity(&mat);
     multParentMatrix( mat,frame );
     mat = bindMatrix * mat; /*bindMatrixはXファイル→SkinWeightsデータの一番下にある行列*/
     for(int i=0;i<num_influence_point;i++)
     {
         int n = influence_points[i];//影響する頂点取得
         D3DXVECTOR3 vec(original[ n ].x , original[n].y , original[n].z);
         D3DXVECTOR4 result;
         D3DXVec3Transform( &vec4,&vec,&mat );
         vertex[n].x += result.x * weights[i];
         vertex[n].y += result.y * weights[i];
         vertex[n].z += result.z * weights[i];
     }
     for(int i=0;i<children.size();i++){
         children[i]->Animate( vertex , original, frame ); //childrenは子ボーンを格納するBone型のvector配列
    }
}

文字数が足りないので下に続きます。

504 :デフォルトの名無しさん:2011/08/17(水) 10:19:52.18
class Bone
{
public:
int num_influence_point;
string joint_name;
D3DXMATRIX boneOffsetMatrix;//SkinWeightsの下にある行列//bind matrix
D3DXMATRIX inverseBoneOffsetmMatrix;//pose matrix
D3DXMATRIX *keys_local;
D3DXQUATERNION* quaternions;
Vector3* key_scales;
       Vector3* key_translates;
float *weights;//ウェイト
int *influence_points;//影響する頂点インデックス
vector<Bone*> children;
Bone* parent;
RDXBone(){parent = NULL;}
void multParentMatrix( D3DXMATRIX &mat ,int frame);
void Animate( MeshVertex* vertex , MeshVertex *original, int frame );
};
void Bone::multParentMatrix( D3DXMATRIX &mat , int frame ){
     if( parent )
          parent->mult_parent_matrix( mat,frame );
     D3DXMATRIX trans,scale,rot;
     D3DXMatrixRotationQuaternion( &rot, &key_quaternions[frame] ); //key_xxxはアニメーションデータ
     D3DXMatrixTranslation( &trans , key_translates[frame].v[0], key_translates[frame].v[1],key_translates[frame].v[2]);
     D3DXMatrixScaling( &scale , key_scales[frame].v[0],key_scales[frame].v[1],key_scales[frame].v[2]);
     mat = rot * scale * trans * mat;
}

Xファイルの読み込み部分は省いていますが、デバッグではアニメーション情報等全て正常に読み込まれているようでした。
よろしくお願いします。

505 :デフォルトの名無しさん:2011/08/17(水) 10:22:41.25
resultの不定値を掛けて何がしたいのか、全く意味不明。

506 :デフォルトの名無しさん:2011/08/17(水) 10:27:42.31
D3DXVec3Transform( &vec4,&vec,&mat ); ×
D3DXVec3Transform( &result,&vec,&mat ); ○

RDXBone(){parent = NULL;} ×
Bone(){parent = NULL;}○

すみません。元のコードの名前をそのまま書いてしまいました。
修正しました。

507 :デフォルトの名無しさん:2011/08/17(水) 15:44:49.95
アニメーションさせているのにボーンの位置が初期のまま固定されている意味が分からん。

508 :デフォルトの名無しさん:2011/08/17(水) 16:41:56.26
すみません。解決しました。
読み込み時にクオータニオンのw成分にマイナスをつけると全て正常に動きました。
t-potでwにマイナスをかけてるソースがあったので真似してみました。
どうもご迷惑おかけしました。

509 :デフォルトの名無しさん:2011/08/17(水) 21:55:37.23
>>508
いや、それ動いてるように見えてまったく動いてない
t-potさんのとこの奴でしょ?
あれ、動いてないからw

510 :デフォルトの名無しさん:2011/08/17(水) 22:10:12.76
いや、動いてたのかもしれんな
でもt-potさんのはDirectXのD3DXQuaternionSquadってのが
たしかぶっこわれてて正常に動かないんだ
代わりにD3DXQuaternionSlerpっていうの使ったらうまくいくぜ
使い方はググって調べてちょw

511 :デフォルトの名無しさん:2011/08/17(水) 22:16:38.09
スキニングなんて理屈がわかればいいんじゃね?
そういうサイトあんまり参考にしないほうがいいと思うけどね


512 :デフォルトの名無しさん:2011/08/17(水) 22:23:02.13
>>509
でもどんな複雑なリグでも完璧に動きました
真似といっても「w」の符号を反転するだけで、他は全て上に書いたコードです

513 :デフォルトの名無しさん:2011/08/17(水) 22:24:41.90
座標系

514 :デフォルトの名無しさん:2011/08/18(木) 01:19:15.32
アニメーションはややこすぃですなぁ。

515 :デフォルトの名無しさん:2011/08/19(金) 20:31:19.99
くそぅ2Dなのになんでこんな難しいんだ

516 :デフォルトの名無しさん:2011/08/19(金) 22:46:04.95
Direct3D で曲線を描くにはどうすればいいですか?

517 :デフォルトの名無しさん:2011/08/19(金) 23:16:23.01
D3DXVec3Hermiteとかかな?

518 :デフォルトの名無しさん:2011/08/19(金) 23:22:33.40
Direct3Dで太線を描くにはどうすればいいですか?

519 :516:2011/08/19(金) 23:31:17.70
わかりました。ありがとうございます。やってみます。

520 :デフォルトの名無しさん:2011/08/20(土) 11:48:30.04
Direct3Dなのですが,
アルファつきのテクスチャを貼り付けると,オブジェクト内の重なったポリゴンが全部透過してしまいます.
――― ←アルファ値0(透過してしまう)
――― ←アルファ値あり(透過させたい)
 ↑
カメラ
解決方法としてアルファテストが挙げられていましたが,境界がギザギザになってしまうのでできれば使いたくありません.
何か解決策はありますか?

521 :516:2011/08/20(土) 12:34:26.05
D3DXVec3Hermite って結局のところ、曲線の通る点を直線で結べってことですよね。
GDIだとベジエ曲線などを描画できたと思うんですが、Direct3D にそういうのはないとういことですか。

522 :デフォルトの名無しさん:2011/08/20(土) 14:19:28.81
>>520
>――― ←アルファ値0(透過してしまう)
これが見えなくなってしまうってこと?
それなら描画順の問題かな。
(アルファ値あり)を先に描画してから(アルファ値0)を描画すると、
Z深度テストで隠れていると判断されて描画されない。
先に(アルファ値0)を描画してから(アルファ値あり)を描画すれば、
(アルファ値0)が描かれた上に、透明度を考慮して(アルファ値あり)が
ちゃんと描画される。
DX11じゃA-Bufferだったっけかで描画順の問題はなくなったんだっけ?

523 :デフォルトの名無しさん:2011/08/20(土) 14:21:39.51
>>521
ベジェも結局のところは曲線を直線で近似している。
要はどの程度の細かさにするかってこと。
D3DXVec3Hermiteも制御点間を細かいステップで描画すれば
十分滑らかになるよ。

524 :デフォルトの名無しさん:2011/08/20(土) 16:32:33.63
>>522
そうです.見えなくなって背景がそのまま見えてしまう感じです.
描写順が問題ということですが,都合よく並び替えてくれる機能とかないですよね
解決法としては,モデルデータを作り直すしかないですか?


525 :デフォルトの名無しさん:2011/08/20(土) 16:55:13.87
>>524
メッシュ単位でα物の描画順序を後にまわせばよかですよ
オブジェクトは機械的にメッシュ単位で描画するように考えるとうまくいくと思う

526 :デフォルトの名無しさん:2011/08/20(土) 17:17:09.58
A-Bufferも自前で実装しないとだめじゃね?

527 :デフォルトの名無しさん:2011/08/20(土) 17:48:45.65
HLSLを組んでいたら

Direct3D9: VS->PS Linker: X1033: (Warning) Current pixel shader declares input color v0.xyzw. However the current vertex shader doesn't outputs oD0 at all.

という警告が大量に出力されるのですが、
これはどうするべきなんですか?

528 :デフォルトの名無しさん:2011/08/20(土) 18:04:21.02
>>524
モデルをパーツ分けせずに1つのメッシュとして描画してたので入れ替えるのが厳しいです(´・ω・`)
ちょっと設計考え直してみます.

529 :デフォルトの名無しさん:2011/08/21(日) 04:49:41.87
>>527
読めよ

530 :デフォルトの名無しさん:2011/08/21(日) 09:02:37.48
>>527
書いてある通りの意味です

531 :デフォルトの名無しさん:2011/08/21(日) 17:29:29.37
>>527
>>527
頂点シェーダーとピクセルシェーダーを
リンクする人
「ピクセルシェーダーでcolor v0.xyzwを入力するって書いてあるのにぃー、
 頂点シェーダーでoD0を出力してないんだけどーどういうことなの?バカなの?死ぬの?」
ちなみにoD0 v0とかはレジスタ

532 :デフォルトの名無しさん:2011/08/22(月) 17:28:34.69
DirectX9でシェーダーのサンプラステートでAddressU、AddressVをBorderに設定し、BorderColor = float4( 1, 1, 1, 1 );
とやったんですが、ボーダー色が反映されていません。どうすればシェーダーからボーダーの色を設定できますか?

533 :デフォルトの名無しさん:2011/08/22(月) 17:38:10.13
>>532
うん

534 :デフォルトの名無しさん:2011/08/22(月) 21:55:46.32
0xffffffとかで指定するんじゃなかったっけ??

535 :デフォルトの名無しさん:2011/08/22(月) 22:25:32.20
そうだよ

536 :デフォルトの名無しさん:2011/08/23(火) 03:43:37.35
>>534で出来ましたありがとうございます

537 :デフォルトの名無しさん:2011/08/23(火) 07:45:29.13
borderは負荷的には結構ペナルティあるから使わない方がいいけどな。

538 :デフォルトの名無しさん:2011/08/23(火) 12:44:00.76
ねーよ

539 :デフォルトの名無しさん:2011/08/23(火) 16:04:03.34
どっちだよ ベンチマーク取れよ

540 :デフォルトの名無しさん:2011/08/23(火) 21:22:23.78
画面をキャプチャしようと
GetRenderTargetで取得したデバイスのレンダリング先のサーフェースから
GetRenderTargetData()を使ってシステムメモリ上のプレーンサーフェースにコピーしたところ
とれたサーフェースの絵は真っ黒くろすけでした。
このとき、転送先はCreateOffscreanPlainSurface()みたいな関数で作ったんですよ。
幅、高さ、画像フォーマット、D3DPOOL_SYSTEMMEMを指定して。
これで完璧って思ったんですけど、ここにコピーすると前述の通りまっくろくろすけです。

でもIDirect3DTexture9を作成して、このテクスチャの0番目のサーフェースを取得し
このサーフェースを、GetRenderTargetDataのコピー先として指定すると、したらちゃんと絵がとれました。

テクスチャっていうのは3Dのオブジェクトの表面にはるビットマップとかの絵だと思っていたんですが、
サーフェースを持つ上位のオブジェクトなんですねぇ。よく分からなくなってきた。

ところでテクスチャのサーフェースにはどうして転送できるのにオフスクリーンプレーンサーフェースには転送できないのでしょうか?

541 :デフォルトの名無しさん:2011/08/23(火) 21:31:14.47
すみません、単純なミスでした。オフスクリーンサーフェースにGetRenderTargetDataできてました。

542 :デフォルトの名無しさん:2011/08/24(水) 01:24:37.59
はあ・・・

543 :デフォルトの名無しさん:2011/08/24(水) 05:04:43.07
座標変換済み頂点による2D描画は、カメラを移動することによって画面をスクロールすることはできませんよね?

544 :デフォルトの名無しさん:2011/08/24(水) 07:26:51.04
そりゃあ3D座標→2D座標に座標変換するときにカメラ行列が掛けられるんだから当然

545 :デフォルトの名無しさん:2011/08/24(水) 08:17:20.19
そもそもDirectXにカメラなど無い。

546 :デフォルトの名無しさん:2011/08/24(水) 09:27:21.39
はい

547 :デフォルトの名無しさん:2011/08/24(水) 12:45:47.55
視点のことカメラって言うだけじゃん

548 :デフォルトの名無しさん:2011/08/24(水) 13:12:06.10
そもそもDirectXに視点など無い。

549 :デフォルトの名無しさん:2011/08/24(水) 13:15:14.22
ラスタライジングリージョンって言う感じなのか?

550 :デフォルトの名無しさん:2011/08/24(水) 13:33:17.05
定期的に下らない文言でバカどもが騒ぐのはなんなんだろうか

551 :デフォルトの名無しさん:2011/08/24(水) 13:48:39.43
>>550
自分の観察日記はチラシの裏にでもつけてろ

552 :デフォルトの名無しさん:2011/08/24(水) 16:09:06.51
日記なら日記帳に付けてるさ

553 :デフォルトの名無しさん:2011/08/24(水) 20:27:24.07
DirectXのクラスとか構造体って名前長いの多くね?
それともこれが普通なん?

554 :デフォルトの名無しさん:2011/08/24(水) 20:49:36.35
どうせ入力補完されるんだからどうでもいい

555 :デフォルトの名無しさん:2011/08/24(水) 20:52:36.61
>>553
長い、そしてうざいと思う
Cから使うことを考慮してあるから仕方ないけど

556 :デフォルトの名無しさん:2011/08/24(水) 21:49:46.77
DirectX関係ってパっと見で分かるから重宝してるけどね。
自前のヘッダのdefineで短くして使うとかもできそうだね。

557 :デフォルトの名無しさん:2011/08/25(木) 05:02:50.24
頂点データバッファの0番目から100個を三角形で円筒に、
100番目から149番目までを扇形にして1個のプリミティブとして円筒の蓋を描きたいので
次の様にしてみましたがかけませんでした。
DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 * 50 -2 ); //こちらは円筒を描く
DrawPrimitive( D3DPT_TRIANGLEFAN, 100, 1 ); //円筒に続いて上側に蓋をしたい
DrawPrimitive( D3DPT_TRIANGLEFAN, 150, 1 ); //さらに下側に蓋をしたい

円筒はかけます。
ところで、DrawPrimitiveは頂点配列の開始位置は指定できるけど頂点数は指定できません。
どうやって100番目から149番目の点をつかって1個の扇形にしてほしいことを伝えられるのでしょうか?


※お気づきかも知れませんが、DirectX9のサンプルに追加する形で試してます。

558 :デフォルトの名無しさん:2011/08/25(木) 06:24:49.93
どこを勘違いしてるのよくわからんが
TRIANGLEFANとて頂点列から三角形を結ぶ順番を指定してるだけだぞ

なのでこの場合、50頂点で1つのファン、じゃなくて
ファン上に配置されてる50個の頂点から形成される48個の三角形、を描画したいんじゃないの

DrawPrimitive(D3DPT_TRIANGLEFAN, 100, 50-2);

559 :デフォルトの名無しさん:2011/08/25(木) 07:04:42.98
>>558
それで出来ました!
なるほどそう言う事か〜

560 :デフォルトの名無しさん:2011/08/25(木) 10:50:58.30
所々サンプルが見つからなくて困っています
最新のDirectX SDKをWindows7-64にインストールしましたが
http://msdn.microsoft.com/ja-jp/library/cc324466.aspx
などのサンプルはそのパスを見ても存在しません
これ以外のサンプルも欠落したものが多いです
どなたかご教授頂けないでしょうか

561 :デフォルトの名無しさん:2011/08/25(木) 11:18:08.44
古いSDKを入れろよ

562 :デフォルトの名無しさん:2011/08/25(木) 21:11:56.98
directx11をインストールしてる環境で一時的にdx9にする事はできますか?

563 :デフォルトの名無しさん:2011/08/25(木) 21:15:59.70
>>562
ちょっと何がやりたいのかもっと詳しく
テスト環境を作りたいということ?

564 :デフォルトの名無しさん:2011/08/25(木) 21:41:34.64
Direct3Dで立体を描画してみてぐりぐり動かしてみたんですけど
背景とオブジェクトの境界線がぎざぎざになるんです。
あれをどうにか中間色とかで馴染ませる処理がありましたらキーワードを教えてください
よろしくおねがいします

565 :デフォルトの名無しさん:2011/08/25(木) 21:44:01.87
気にするな

566 :デフォルトの名無しさん:2011/08/25(木) 21:45:01.73
>>565
笑ったw

567 :デフォルトの名無しさん:2011/08/25(木) 21:46:36.31
アンチエイリアスでいいのかこれは

568 :デフォルトの名無しさん:2011/08/25(木) 21:46:47.08
アンチエイリアス

569 :デフォルトの名無しさん:2011/08/25(木) 21:47:10.26
>>563
今DirectX11がインストールされてるんですけど
あるゲームはDirectX9が安定するみたいなので一時的にDX9にできないかなと思いまして
スレと少し趣旨が違うのですがすいません

570 :デフォルトの名無しさん:2011/08/25(木) 22:14:19.35
>>567>>568
ありがとうございます

571 :デフォルトの名無しさん:2011/08/25(木) 22:16:44.12
>>569
DirectXって最新版を入れておけば自動的に過去のバージョンも動くでしょ

572 :デフォルトの名無しさん:2011/08/25(木) 22:30:20.33
じゃなくてプログラム側が実行環境のバージョン調べて
それにあわせて新しいバージョンで実行されるようにしているんだろ
問題が起きるとしたらプログラム側のバグ

573 :デフォルトの名無しさん:2011/08/25(木) 23:06:37.98
インストールしなくてもサンプルだけ取り出せばいいだろう。
どれだけ頭が回らないんだよ。

574 :デフォルトの名無しさん:2011/08/25(木) 23:10:21.82
>>573
何言ってんだこいつ

575 :デフォルトの名無しさん:2011/08/25(木) 23:15:36.38
そもそもDirectX11はVistaならSP、7ならデフォルトだから、
インストールするものじゃない。

576 :デフォルトの名無しさん:2011/08/26(金) 12:59:18.65
復帰


577 :デフォルトの名無しさん:2011/08/26(金) 23:51:01.53
>>565
ワロタw

578 :デフォルトの名無しさん:2011/08/27(土) 00:28:19.57
頂点にnormal(法線)を含めて頂点構造体を定義してプリミティブを描画させてるんですが、
デバッグ用に法線を描画させることを考えています。
なんかオプションとかで一発で頂点の法線ベクトルもレンダリングすることってできますか?
自分でチマチマ描くしかないですか?

579 :デフォルトの名無しさん:2011/08/27(土) 00:29:32.23
書くしかない。
ジオメトリシェーダーなら楽はできる

580 :デフォルトの名無しさん:2011/08/27(土) 00:31:00.95
ビューア使えよ

581 :デフォルトの名無しさん:2011/08/27(土) 00:38:51.28
メッシュビューで?

582 :デフォルトの名無しさん:2011/08/27(土) 01:37:08.54
ありがとうございました。
自分でチマチマかきましたw

実は角のまるい直方体描いてるんですけど、
メッシュの方がいいですかねぇ。
頂点をD3DPT_TRIANGLESTRIPで結んで描いてます。
角とか、パーツを分けて描いてるんですけど、つなぎ目がうまいこと色が変化してくれません。

http://uploader.sakura.ne.jp/src/up54590.jpg
(上面にはテクスチャを貼ってみました)

583 :デフォルトの名無しさん:2011/08/28(日) 07:02:57.78
フォグの超簡単サンプル下さい

584 :デフォルトの名無しさん:2011/08/28(日) 07:21:35.84
シェーダ有?無?
DirectXのバージョンは?

585 :デフォルトの名無しさん:2011/08/28(日) 13:38:07.18
http://maverickproj.web.fc2.com/pg28.html

586 :デフォルトの名無しさん:2011/08/29(月) 17:45:11.51
SSDOの超簡単サンプル下さい

587 :デフォルトの名無しさん:2011/08/29(月) 20:46:59.14
D3DUSAGE_RENDERTARGETを指定してウィンドウのサイズより大きくして作成して
そこに描画しても拡縮されてウィンドウ内に入るように描画されてしまうものなの?
2の累乗で作成して気づいたけどウィンドウのサイズに合わさないとダメなのかねぇ

588 :デフォルトの名無しさん:2011/08/29(月) 20:52:13.50
何が言いたいのかわからん。
整理してから質問してくれ。

589 :デフォルトの名無しさん:2011/08/29(月) 20:55:29.42
日本語ができないやつは、プログラムもできない。

590 :デフォルトの名無しさん:2011/08/29(月) 21:09:53.14
今から始めるならバージョンどれがいいですか?

591 :デフォルトの名無しさん:2011/08/29(月) 21:16:55.59
何がいいかは始める時期とは関係ない。

592 :デフォルトの名無しさん:2011/08/29(月) 21:35:15.07
>>590
お前みたいなやつはOpenGLでもやってろ

593 :デフォルトの名無しさん:2011/08/29(月) 22:33:35.88
じゃあ4.2か

594 :デフォルトの名無しさん:2011/08/30(火) 02:42:19.95
ESの2.0だろ。

595 :デフォルトの名無しさん:2011/08/30(火) 18:10:04.94
>DirectX SDK (Summer 2003)

が、どうしても欲しいのですが、もう手に入らないのでしょうか?

596 :デフォルトの名無しさん:2011/08/30(火) 18:55:37.28
マイクロソフトのダウンロードセンターにはもうないみたいだね。
となると、そのSDKを収録した書籍あたりを購入するしかないんじゃないかなぁ


597 :デフォルトの名無しさん:2011/08/30(火) 20:45:24.60
Summer 2003が欲しい理由は何?VC6?October 2004じゃだめなん?

598 :デフォルトの名無しさん:2011/08/31(水) 01:46:56.71
595じゃないけどそう言うこと言う奴殺したくなる

599 :デフォルトの名無しさん:2011/08/31(水) 02:09:15.82
DirectX 9 シェーダプログラミングブックとかに添付してあるやつかな
図書館とか行けばありそうだけど

600 :デフォルトの名無しさん:2011/08/31(水) 02:09:47.41
殺したいとか迂闊に書くなよ
状況がわかれば代案を提供できるかもしれないじゃないか

601 :デフォルトの名無しさん:2011/08/31(水) 02:26:22.30
>>597みたいなタイプに親切に代案教えても
俺の質問に答えずに面倒なこと言いやがってとか逆恨みされる気がする

602 :デフォルトの名無しさん:2011/08/31(水) 02:33:43.36
>>597が、代案教えようとしてるほうやん。
まあ、引っ張らないでおこう。

603 :597:2011/08/31(水) 02:52:05.35
>>602
そうそう、俺も長いことVC6使いだったから、もしVC6目的かつOct2004でもいいなら、ダウンロードリンク張ろうと思っただけなの
でもまぁ単にSummer2003で開発してきたから、それが欲しいってだけならお邪魔だしね。

ちなみにさっきこの件で検索したとき、VC6 & Oct2004だとデバッグできないなんて記事があったけど。ちゃんとExtra当てれば何の問題もないよ。
しかし殺すとか凄いな・・・・

604 :デフォルトの名無しさん:2011/08/31(水) 04:23:01.81
日本語が分からない奴は死ね

605 :デフォルトの名無しさん:2011/08/31(水) 05:26:22.96
おおこわいこわい

606 :デフォルトの名無しさん:2011/08/31(水) 05:54:19.67
まあ、このバージョンの上げ方は糞だな
しかもMS自体がバージョンを消しちまうんだから手に負えない
一体何がしたくてこういう形式なのかさっぱりわからない

607 :デフォルトの名無しさん:2011/08/31(水) 06:26:01.83
過去の過ちを無かったことにしたい

608 :デフォルトの名無しさん:2011/08/31(水) 07:43:45.05
directshowをPlatform SDKに移動したり
GraphEditorなくしたり。
正直ポリシーがあってやってるとは思えない。

609 :デフォルトの名無しさん:2011/08/31(水) 08:35:28.46
GraphEditはまだWindows SDKに収録されてるでっしゃろ

610 :デフォルトの名無しさん:2011/08/31(水) 08:39:34.96
dx9でビデオメモリの使用量が知りたいのですがどうすればよいでしょう
directdraw7の関数呼べばいいですか

611 :595:2011/08/31(水) 08:54:00.90
VC6だと、DirectShowがコンパイル通らなかったり、リンクエラーでツライんですよね。

Oct2004+Extra
の組み合わせは知っていましたが、
DirectShowのlibはついてないし、lib作ろうにも、
標準ヘッダー修正してたんですけど(しないとコンパイル通らない)、
いざDirectShow本体ソースをコンパイルしようとすると、エラーでした。

612 :デフォルトの名無しさん:2011/08/31(水) 08:58:10.40
VC6をやめりゃいいだけじゃん

613 :デフォルトの名無しさん:2011/08/31(水) 09:25:24.27
>>595
はい
ttp://dl.dropbox.com/u/30429983/DX90%20Update%20SDK.rar

614 :595:2011/08/31(水) 12:09:30.71
orz

615 :597:2011/08/31(水) 20:36:41.48
>>611
October2004にDirectShowのライブラリあるよ。
よく分からないけど、何か特殊なことしているのかね。

>>610
Windows環境で正確なVRAMの使用量は分からなかったはず。
それを踏まえたうえでGetAvailableTextureMem。

616 :デフォルトの名無しさん:2011/08/31(水) 20:37:12.23
ありゃ、名前残ってた。

617 :デフォルトの名無しさん:2011/08/31(水) 23:35:01.98
VC6、IE6、NT6・・・まったく不吉な数字だぜ

618 :デフォルトの名無しさん:2011/09/01(木) 22:31:21.73
MSが変な方向にいっちゃってるせいで何か停滞してない?
7を売りたいのはわかるけど、
まだ膨大な利用者がいるXPをOBSOLETEとか意味がわからんわ。
そのせいでDX10もDX11もオワコンに見える。

619 :デフォルトの名無しさん:2011/09/01(木) 22:43:36.01
DX11はXファイルみたいな標準で気軽に使えるメッシュ構造やそれに関連したアニメーションの利便性がなくなったのがかなり痛い。
これさえなかったら、すぐにでもWin7買ってDX11に切り換えるのに・・・

620 :デフォルトの名無しさん:2011/09/01(木) 22:54:29.39
もろにあるだろう。
なんで中身も確認もせずに無い無い言うんだろうな。
こういうクズを見ると、本当に怒りがわいてくる。

621 :デフォルトの名無しさん:2011/09/02(金) 06:00:37.91
>>618
10年も前にリリースされたPC用のOSは obsoleted だろ。
むしろ、利用者が多いという理由でXP HOMEのサポートを5年も延長したおかげで、
VISTAの家庭用エディションよりもサポートが長くなるってどうなの。
ところで、VISTA Ultimate が家庭用扱いってどういうこと。俺涙目。


622 :デフォルトの名無しさん:2011/09/02(金) 13:01:09.46
知れば知るほどMSは信用できなくなってくる。。
今に始まったことではないのですが。

こちらにXAudio2分かる方いらっしゃいますか?


623 :デフォルトの名無しさん:2011/09/02(金) 13:13:37.08
信用できないんだからMS関連は使うなよ。

624 :デフォルトの名無しさん:2011/09/02(金) 16:19:28.81
今、こういう状態→ ttp://alfalfalfa.com/archives/4310806.html

625 :デフォルトの名無しさん:2011/09/02(金) 17:47:44.14
>>622
irrKlangオススメ

626 :デフォルトの名無しさん:2011/09/02(金) 18:23:36.60
高いなw

627 :デフォルトの名無しさん:2011/09/02(金) 18:29:14.76
OpenALなんてどう?
http://www.devmaster.net/articles.php?catID=6

628 :デフォルトの名無しさん:2011/09/03(土) 01:58:52.76
>>627
脱MS依存ってことで、今の作業が終わったら
OpenGL, AL, おまけにCL の学習を始めようかと思ってます。
で、今現在XAudio2のXAPO関連で詰まっています。
リアルタイムで再生中のオーディオの音量を取得できないものでしょうか?
XAPOでできるのは出力オーディオデータの処理だけなのかどうか。。

629 :デフォルトの名無しさん:2011/09/03(土) 06:00:55.99
>>628
>脱MS依存ってことで
だったらこんなところで人に聞いてるようじゃ駄目
それほど甘くない

630 :デフォルトの名無しさん:2011/09/03(土) 07:38:47.35
なんでOpenGLの日本語情報少ないんだろうか
そんな難しくないと思うけど。。。

631 :デフォルトの名無しさん:2011/09/03(土) 08:20:58.33
>>630
何気に癖があるから予想で仕様を把握しにくい
ライブラリ自体かなりグローバル変数頼りまくりだから影響が見えないとかもあるんじゃないだろか

弄ってみて思うことは

やっぱりmsってスゲーでfa

632 :デフォルトの名無しさん:2011/09/03(土) 09:32:14.00
・DirectXとOpenGLのレイヤーの違い
・ここ数年の大幅な仕様改革に見る策定チームの思惑と開発者の反応

これらをキーワードに適当に調べて手短に(3文字ぐらいで)済ませてください。

633 :デフォルトの名無しさん:2011/09/03(土) 10:14:59.02
金金金

634 :デフォルトの名無しさん:2011/09/03(土) 10:17:26.50
そういや、OpenGL4.2ってDirectx11を抜いたんだよね?

635 :デフォルトの名無しさん:2011/09/03(土) 10:18:54.26
>>631
俺はopenglの方が肌に合ってる感触するがなぁ
グローバルまみれではあるが、push,popの仕組みがあるからそれほど困らないし
directxのほうがよっぽど全体を把握しずらいと思うがなぁ

636 :デフォルトの名無しさん:2011/09/03(土) 11:13:12.85
>>629
そーいうもんですか。XAudio2も妙に情報が少ないもので
使ってる人もいないのかなぁと思ってしまう


637 :デフォルトの名無しさん:2011/09/03(土) 11:24:16.42
DirectXって9で止まってるよね
MS暴走しすぎ

638 :デフォルトの名無しさん:2011/09/03(土) 11:45:31.80
9なんて2014年4月を待たずに完全終了だろ

639 :デフォルトの名無しさん:2011/09/03(土) 14:32:52.37
でもDX11って9の面倒なところをシンプルにしたり、
HLSLではよりパフォーマンスの良い命令が追加されたり、
使いこなすならDX11だよね、ってカンジなんでしょ?

640 :デフォルトの名無しさん:2011/09/03(土) 14:43:39.54
初学者でもDX11はお勧めですか?

641 :デフォルトの名無しさん:2011/09/03(土) 14:45:27.53
DirectComputeがあるからね。
オヌヌメ。

642 :622:2011/09/03(土) 15:25:05.49
ちょくちょくinterruptしてすみません。解決したので。
XAPO(オーディオエフェクト処理)インターフェースに
エフェクト設定を構造体のポインタで渡すメソッド(SetEffectParameters)が
あったので、(何故か)その構造体のメンバでデータを取得しようと考えたのですが、
インターフェース内部では構造体のコピーを作って使っていたようです。
ポインタ渡しだからてっきり直接構造体を書き換えてくれるものかと。
なんのためにGetEffectParametersメソッドがあるのか先に考えるべきでした。
で、XAPOクラスを継承したクラスに直接データを返すメソッドを追加してそれを使ったらできました。

こういうアホな勘違いで時間を食うのは経験不足なんだろうなぁ…
急いでたのでつい他の方を頼ってしまった

643 :デフォルトの名無しさん:2011/09/03(土) 16:26:42.29
PCだとXPのシェアはまだまだ低いとはいえないからなぁ。

644 :デフォルトの名無しさん:2011/09/03(土) 17:30:14.85
>>642
DirectXのドキュメントには、引数がinなのかoutなのかはっきり書いてあるだろう。
知れば知るほどMS(の英語ドキュメント)は信用できる。

645 :デフォルトの名無しさん:2011/09/03(土) 17:59:43.71
OpenGL OpenGL言ってる方はOpenGLのスレにお帰りください。



646 :デフォルトの名無しさん:2011/09/03(土) 18:01:31.50
>>630
別に日本語じゃなくても困らないからだろ。


647 :デフォルトの名無しさん:2011/09/04(日) 01:44:31.90
directX9で作っているのですが、
描画した画面全体を並行移動することはできますか?
描画先をテクスチャにする方法は見つけたのですが、
重そうなのでもっと軽い方法はありますか?

648 :デフォルトの名無しさん:2011/09/04(日) 01:59:25.78
重いかどうか検証したのか?

649 :デフォルトの名無しさん:2011/09/04(日) 02:14:17.10
>>646
だってよめないもん

650 :デフォルトの名無しさん:2011/09/04(日) 02:17:17.51
>>647
射影行列後にクリップ座標系の状態で平行移動するのは?
実際にはdirectxでは射影行列*平行移動したのをD3DTS_PROJECTIONにセット

651 :デフォルトの名無しさん:2011/09/04(日) 12:19:06.88
レスありがとうございます。
>>648
やってませんでした。

>>650
D3DTS_PROJECTION使ってみたけど移動しませんでした。
スプライトを使って2D表示をしてるんですが、
3D用に何か設定をし直さないとダメなんですか?

HRESULT Render(void)
{
g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(90, 50, 30), 1.0f, 0);
// シーンの描画開始
if (SUCCEEDED(g_pD3DDevice->BeginScene()))
{
D3DXMATRIX d3dm;//@
D3DXMatrixTranslation(&d3dm, 0, 200.0f,0); //画面をY方向に200px移動したい
g_pD3DDevice->SetTransform(D3DTS_PROJECTION , &d3dm);

drawMain(); //描画処理
g_pD3DDevice->EndScene();
}
return g_pD3DDevice->Present(NULL, NULL, NULL, NULL);
}

652 :デフォルトの名無しさん:2011/09/05(月) 18:48:50.56
ずらして描画すればいいんじゃ

653 :デフォルトの名無しさん:2011/09/05(月) 22:58:48.68
>>651
ID3DXSpriteはD3DTS_PROJECTIONなんて見に行かないだろw
ちなみにクリップ座標系で200.0fなんて移動しすぎ
画面の端から端まで-1〜1の大きさなんだぞ
ID3DXSpriteに与える行列変換の最後にでも掛ければいい。
こっちはクリップ座標系ではないが

はっきり言って
このレベルならDirectXなんて使わず他のゲーム用ライブラリ使ったほうが、
時間を無駄にしないで済む

654 :653:2011/09/05(月) 23:00:46.51
>>651
見に行かないというのはおかしいな。上書きされるな、この場合

655 :デフォルトの名無しさん:2011/09/06(火) 10:25:36.93
レスありがとうございます。
>>652
ずらして描画ってどうゆうことですか?

>>653-654
弾幕シューティングで画像を表示する部分を大量に呼び出すから
1回ごとの処理を出来るだけ減らしたいから
一括で並行移動できるのがあったらいいなって思ってました。
上書きされるってのは
g_pD3DXSprite->SetTransform(&mat);
↑のスプライトの座標変換で
g_pD3DDevice->SetTransform(D3DTS_PROJECTION , &d3dm);
↑の変換が上書きされてしまうってことでしょうか。

656 :デフォルトの名無しさん:2011/09/06(火) 13:19:52.37
だからスプライトなど使うなと

657 :デフォルトの名無しさん:2011/09/06(火) 16:43:09.18
>>655
違う
ID3DXSpriteがbeginあたりでデバイスのステートを大量に変更するから
おそらく上書きされてる。
何を上書きするかは実装依存だがPROJECTIONはほぼ確実に上書きされてる

ID3DXSpriteなんて使わず2d描画するか、
ID3DXSprite::SetTransform用の行列スタックでも作って、
ルートの行列で平行移動でもすればいい


658 :デフォルトの名無しさん:2011/09/06(火) 16:51:24.08
結論:ID3DXSpriteなんて使ってる奴は馬鹿

ってか使う前に調べたらこういう発言いくつも見ただろ?
これね
まったく応用が効かないの
ハイ、ダメー!ハイ、ヤリナオシー!ハイ、ザンネンデシター!

659 :デフォルトの名無しさん:2011/09/06(火) 18:49:26.57
何を使おうが作成者の自由。ゲハじゃあるまいし洗脳とかあほか

660 :デフォルトの名無しさん:2011/09/06(火) 19:00:10.94
お手軽である、というメリットはある。
だが加算合成とか減算合成等はやりにくいし、
やはり柔軟性に欠ける。
メリットとデメリットを考慮した上でどれを使うかはやはり自由


661 :デフォルトの名無しさん:2011/09/06(火) 19:00:27.57
自由だけども、ID3DXSpriteじゃなくて普通に座標変換済み頂点情報で
2D描画した方が楽なような…

662 :デフォルトの名無しさん:2011/09/06(火) 19:26:34.65
>>661
それこそ画面ゆれとか面倒じゃね?

663 :デフォルトの名無しさん:2011/09/06(火) 20:11:54.13
ラッパー用意してオフセットくらいかけられるようにするべ

664 :647:2011/09/06(火) 21:48:29.70
>>657
ありがとうございます。
beginをいちいち処理してたら重くなってしまいそうなので
画面をテクスチャにする方法を試してみます。
それがダメならスプライトじゃない方法を試してみます。

665 :デフォルトの名無しさん:2011/09/06(火) 22:42:22.80
beginのコストとかそういうのを指南してくれる書籍やサイトがほしいわ。

666 :デフォルトの名無しさん:2011/09/07(水) 03:29:36.80
pixで何呼んでるか見れなかったっけ?

667 :デフォルトの名無しさん:2011/09/07(水) 12:11:52.64
質問です。

VC++ 2008 + DirectX 9.0c SDKを使いアプリを作成し
IDirect3DDevice9::Present(NULL, NULL, NULL, NULL); にて
画面描画を行っています。
PrintScreenキー押下によりアプリにて描画している領域の
スクリーンショットが撮れてしまいますが、スクリーンショットを
撮れないようにする方法はありますでしょうか。
ご存じの人がいらっしゃれば、教えていただけないでしょうか。

668 :デフォルトの名無しさん:2011/09/07(水) 12:18:14.80
HDCP対応プログラムでも作れば?

669 :デフォルトの名無しさん:2011/09/07(水) 13:46:08.19
Win32APIを使ってPrintScreenキーの入力を検出したら
画面を真っ黒にするとか。
実験してないから上手く行くかどうか全然分からないけど。

670 :デフォルトの名無しさん:2011/09/07(水) 14:05:48.87
>>669
無理だよん

671 :デフォルトの名無しさん:2011/09/07(水) 16:11:01.64
>>667
クリップボードに別のデータを転送すればOK

672 :デフォルトの名無しさん:2011/09/07(水) 16:17:43.04
こうして他アプリの動作を妨害する糞アプリが生産されるのであった

673 :デフォルトの名無しさん:2011/09/07(水) 16:43:16.12
キーフックしてどうこうしたところでキャプチャソフトは防げないだろ。

674 :デフォルトの名無しさん:2011/09/07(水) 16:50:40.45
高速に画面切り替えて一画面をVOIDを含んだ複数画面で表示すればいいと思うよ
ラインスキャンディスプレイを写真に撮ったらチラッと一部分光ってるだけみたいな感じに

675 :デフォルトの名無しさん:2011/09/07(水) 17:00:53.79
だからお前らの提案するクズみたいな方法を使わなくても、HDCPで出来るんだよ。
そもそもがコピーガード用の規格なんだから。

676 :デフォルトの名無しさん:2011/09/07(水) 17:09:38.75
ソーシャルハック的にバックドアを仕掛けされる算段だったりしてな

677 :デフォルトの名無しさん:2011/09/07(水) 20:09:43.76
そこまでして画面隠すようなもん作らねーべ。ってか隠す意味がわからん

678 :デフォルトの名無しさん:2011/09/07(水) 20:40:09.97
うだつの上がらない零細エロゲ屋さんじゃないの?
本編よりスクショや解析妨害に血道を上げてるとこあるし。

679 :デフォルトの名無しさん:2011/09/07(水) 21:29:47.37
http://www1.axfc.net/uploader/Ne/so/117181.zip
スプライトなしで2D描画するプログラムを作ったのですが、
ポリゴンは表示されるけどテクスチャが表示されません。
どうすればいいでしょうか。

680 :デフォルトの名無しさん:2011/09/07(水) 21:54:41.93
全裸になって四つんばいになって片足上げてしーこっこしてるとこを写真に撮ってアップすればいいと思うよ

681 :デフォルトの名無しさん:2011/09/07(水) 22:12:42.92
>>679
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
↑テクスチャ貼る気ある?みたいな宣言
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)
こうするべき

struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // The transformed position for the vertex
DWORD color; // The vertex color
};
テクスチャ貼る気ある?というデータ構造
float u,v;が抜けてる。
ここを直したら表示された

682 :デフォルトの名無しさん:2011/09/07(水) 23:04:51.01
>>681
ありがとうございます。
http://codepad.org/KLjOPqGQ
修正したけどテクスチャが表示されませんでした。
どこが悪いのでしょうか。

683 :デフォルトの名無しさん:2011/09/07(水) 23:27:47.90
>>682
あとrhwって1じゃなかったっけ

684 :682:2011/09/07(水) 23:51:31.19
>>683
rhwを1にしてみたけどダメでした。

685 :デフォルトの名無しさん:2011/09/08(木) 07:39:52.10
g_pD3DDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
これサイズおかしくね?

686 :682:2011/09/08(木) 09:41:34.59
>>685
sizeof(CUSTOMVERTEX)以外の値に色々変えてみたけど
表示がおかしくなってしまいました。

687 :デフォルトの名無しさん:2011/09/08(木) 09:58:59.76
>>686
すまん
sizeof(CUSTOMVERTEX)であってたっぽい

688 :デフォルトの名無しさん:2011/09/08(木) 10:34:40.89
テクスチャステージステートの設定がヌルイのかな?
簡単にいうと
http://www.t-pot.com/books/DirectX_e.htm
これ全部設定しないと他の処理で設定されたときに無効にしないと
動かなくなる可能性がある
でもこれが原因か・・・なぁ?
意外とライトOFF設定してないとかそんなのだったりして
いじってみないとわからないけど・・・

689 :682:2011/09/08(木) 11:29:58.42
g_pD3DDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2 );
g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG0,D3DTA_DIFFUSE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_MODULATE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_ALPHAARG0,D3DTA_DIFFUSE);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVMAT00,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVMAT01,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVMAT10,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVMAT11,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_TEXCOORDINDEX,D3DTSS_TCI_PASSTHRU);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVLSCALE,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_BUMPENVLOFFSET,0.0);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_RESULTARG,D3DTA_CURRENT);
g_pD3DDevice->SetTextureStageState(0,D3DTSS_CONSTANT,D3DTA_DIFFUSE);
g_pD3DDevice->SetRenderState(D3DRS_LIGHTING,FALSE);

とりあえず全部設定したけどダメでした。
D3DTSS_BUMPENVMAT00などの値がdoubleからDWORDに変換されるのがダメな気がするけど
どうやれば少数型で渡せるんですか?

690 :デフォルトの名無しさん:2011/09/08(木) 13:36:44.51
あ、できたよ
RectRGB[0][0] = RectRGB[0][1] = RectRGB[0][2] = 255;
RectRGB[1][0] = RectRGB[1][1] = RectRGB[1][2] = 255;
RectRGB[2][0] = RectRGB[2][1] = RectRGB[2][2] = 255;
RectRGB[3][0] = RectRGB[3][1] = RectRGB[3][2] = 255;
をCUSTOMVERTEX vertices[] =の前に入れたら表示された

g_pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
g_pD3DDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
g_pD3DDevice->SetTexture(0,img);

g_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1 , D3DTA_TEXTURE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP , D3DTOP_MODULATE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2 , D3DTA_DIFFUSE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1 , D3DTA_DIFFUSE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP , D3DTOP_DISABLE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG2 , D3DTA_DIFFUSE );
g_pD3DDevice->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS , D3DTTFF_DISABLE );

g_pD3DDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pD3DDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );

こんなんでいけた

691 :682:2011/09/08(木) 16:05:58.60
>>690
ありがとうございます。
出来ました。
助かりました。

692 :デフォルトの名無しさん:2011/09/09(金) 00:25:50.84
ポリゴンに画像を貼り付けて表示はうまくいったのですが
良く見たらぼやけてました。
はっきり表示させるにはどうすればいいでしょうか。

↓比較画像とソースを添付しました。
http://www1.axfc.net/uploader/Sc/so/272881.zip

693 :デフォルトの名無しさん:2011/09/09(金) 00:31:43.87
拡大縮小アルゴリズムがニアレストネイバー以外になっているとか

694 :デフォルトの名無しさん:2011/09/09(金) 00:40:19.72
>>692
ちなみに>>693のはSetRenderStateかその辺に設定項目があったはず

695 :デフォルトの名無しさん:2011/09/09(金) 06:28:10.95
>>692
描画時に指定しているスクリーン座標を-0.5してみるといい。
http://msdn.microsoft.com/ja-jp/library/bb219690(v=vs.85).aspx

696 :デフォルトの名無しさん:2011/09/09(金) 10:31:47.00
ポリゴン的(パネルみたいな?)動きをさせようとしたときにひっくり返すと余計酷い感じになるから
アドレッシングモードのCLAMPを指定するほうをオススメ

697 :デフォルトの名無しさん:2011/09/09(金) 11:35:19.75
出したいだけならフィルタをPOINTにすればとりあえずいける。はず。
LINEARも使いたいなら、-0.5の対応が必要。

テクセル/ピクセル座標対応は、2DスプライトをDirectX9で組む場合に
大抵問題になる基本的なネタだけど、DirectX10では座標系が改められたので、
このような小細工は必要がない。
http://msdn.microsoft.com/ja-jp/library/cc308049(v=vs.85).aspx

698 :デフォルトの名無しさん:2011/09/09(金) 11:47:24.84
バイリニアフィルタ使ったときにズレんじゃん>0.5
CLAMPにしときなよ
悩む必要ないから

699 :デフォルトの名無しさん:2011/09/09(金) 12:01:09.60
ある特定のソフトがどのDirect Xバージョンで動作してるかを確認するツールなど、
方法があれば教えて頂けないでしょうか。

700 :デフォルトの名無しさん:2011/09/09(金) 12:03:33.55
そういう他人のソフトがどうこうというのは板違いです

701 :692:2011/09/09(金) 12:49:46.18
>>693-698
レスありがとうございました。
色々やったけど直らなくて
D3DXCreateTextureFromFile(g_pD3DDevice, g_szSpriteFile, &g_pD3DTexture);

D3DXCreateTextureFromFileEx(g_pD3DDevice, g_szSpriteFile,imgW,imgH,1,0,D3DFMT_UNKNOWN,D3DPOOL_MANAGED,
D3DX_FILTER_NONE,D3DX_FILTER_NONE,0x00000000,NULL,NULL, &g_pD3DTexture);
にしたら直りました。

702 :デフォルトの名無しさん:2011/09/09(金) 13:09:32.65
FILTER_NONEがニアレストネイバーってことじゃん

703 :デフォルトの名無しさん:2011/09/09(金) 13:33:29.47
グラボのプロパティでフィルタなぞいくらでもONにできる
俺ら側で設定したものは使われない可能性がある
アドレッシングモードにしとけ

704 :692:2011/09/09(金) 13:53:01.66
>>702
ニアレストネイバーってこのことだったんですね

>>703
g_pD3DDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP );
を書けばいいんですか?

705 :デフォルトの名無しさん:2011/09/09(金) 13:56:52.91
>>704
おk
ただ、ものによって使えないのでそこは経験で
今回の関数なら問題無さげ

706 :692:2011/09/09(金) 15:18:30.21
>>705
ありがとうございます。
設定しておきます。
描画時間計測したら
スプライトで4.5秒かかった処理が
DrawPrimitiveだと2.2秒で終わった。

707 :デフォルトの名無しさん:2011/09/09(金) 17:36:48.26
そんな当たり前なことは書かなくていい

708 :デフォルトの名無しさん:2011/09/09(金) 19:22:25.02
意外とスプライト使わないって大変なことなんだな
固定シェーダのバグ取りが相変わらずイケてねぇ

709 :デフォルトの名無しさん:2011/09/09(金) 20:32:02.10
わざわざ固定シェーダー使うのが理解できん

710 :デフォルトの名無しさん:2011/09/09(金) 20:35:22.19
バックバッファのフォーマットをアルファ付きにして意味あるの?

711 :デフォルトの名無しさん:2011/09/09(金) 20:38:45.44
固定機能を固定シェーダーとのたまう馬鹿が早く絶滅しますように。

712 :デフォルトの名無しさん:2011/09/09(金) 20:40:20.33
>>710
まあ、あれだ、気分の問題だよ

713 :デフォルトの名無しさん:2011/09/09(金) 20:42:22.07
>>712
気分の問題ならつかわないほうがいいのかな??

714 :デフォルトの名無しさん:2011/09/09(金) 22:20:31.90
好きにすればいい。
誰も止める権利もない。

いやならやめればいい。



715 :デフォルトの名無しさん:2011/09/09(金) 22:21:31.09
いやいや
意味や意図がないならやめろよ>バックバッファのα付き

716 :667:2011/09/10(土) 20:35:05.87
アドバイスいただきありがとうございます。
スナップショットを撮らせない方法を質問していた者です。
調べていくうちにDirectXとは関連がない方法にて
実装する事柄のような気がしてきました。

↓下記RegisterHotKeyを使う方法があるらしいのですが、
http://msdn.microsoft.com/en-us/magazine/cc163713.aspx
[shift + PrintScreen][ctrl + PrintScreen][shift + ctrl + PrintScreen]など
にてスナップショットが撮れてしまいます。

>>668>>675
HDCPのことについてよく知りませんが、古いPCで
動作させることを想定しているので使えないと思います。

>>669-673
下記メッセージ
IDHOT_SNAPDESKTOP [デスク トップスナップ] [PrintScreen]
IDHOT_SNAPWINDOW [ウィンドウをスナップ] [Alt]+[PrintScreen]
をフックして無効にすれば可能かも知れません。
(私はフックは今まで使ったことがないので本当に推測です。)

>>674
すみませんが、何のことかわかりません

717 :667:2011/09/11(日) 01:37:58.00
稚拙な知識しか持ち合わせないのに>>716のような変なことを書いて申し訳ないです。

色々調べたところ、グローバルフックのキーボードフック(WH_KEYBOARD)を使い
「PrintScreenキー押下後のスナップショットがクリップボードに貼られた後」の
タイミングを捕らえることができました。
しかし、クリップボードに貼られた後にクリップボードを消去しても、あまり意味が
無いように思っています。
いま「スナップショットがクリップボードに貼られる前」のタイミングを捕らえる方法を
探しています。

内容がスレチになってしまったので内容相応のスレに移動します。
どうもありがとうございました。

718 :デフォルトの名無しさん:2011/09/11(日) 02:17:26.54
どんな場合でもチェックしたいというなら、単位時間おきに監視すれば?
要するにポーリング。


719 :デフォルトの名無しさん:2011/09/11(日) 09:41:58.61
無理じゃねぇの?
スクショを効率よくとるソフトってあるじゃん
そういうのまで考えるとPrintScreenキーとかすでに関係ねーし

720 :デフォルトの名無しさん:2011/09/11(日) 10:56:30.36
利用者の後ろに張り付いて監視すりゃいいんだよ。
これで解決なんだから、以後だれもレスすんなよ。

721 :デフォルトの名無しさん:2011/09/11(日) 11:28:55.11
メディアプレーヤーみたいなことやんないとダメなのかもな

722 :デフォルトの名無しさん:2011/09/11(日) 11:33:23.55
>>721
原理がわかっていないクズがレスするなよ。
オーバーレイはAEROでは無効なんだから、みたいなことの意味が全く不明なんだよ。
もう一度言う、クズはレスするな。

723 :667:2011/09/11(日) 15:07:17.91
>>718-722
結局、RegisterHotKeyを使ってPrintScreenキーと修飾キー(ALT、CONTROL、SHIFT、WIN)の
全組み合わせ(16通り)のキー入力をすべてホットキーに登録する方法にて実装しました。
これで物理的に特殊なツールを使われない限り、色々な操作をされてもスナップショットは
撮られないと思います。

デスクトップのHDCを取得してBMPファイルに書き出すなどのプログラムにて、
クリップボードすら経由せずにスナップショットを撮るのと同じことができると思いますが、
どうにしろ防ぎようがないので妥協しました。

724 :デフォルトの名無しさん:2011/09/11(日) 15:46:31.42
なぜそこまでしてSSをとらせたくないのか理解できん。
どうせキャプチャソフトで撮れるんだし。

725 :デフォルトの名無しさん:2011/09/11(日) 16:49:39.41
ニコ動でよくみるみたいな画面操作の動画っぽいのを作成するソフトあったよな?
あれも防げんのかな?

726 :デフォルトの名無しさん:2011/09/11(日) 16:56:39.18
キャプチャーすると真っ暗になる方法が昔あったような無かったような

727 :デフォルトの名無しさん:2011/09/11(日) 19:27:01.05
tcharにするとリテラルに_Tをつけるのめんどくさいのですがどうしたらいいですか

728 :デフォルトの名無しさん:2011/09/11(日) 20:57:58.27
sandyBridgeってGPUがCPU内に入ってるから
頂点座標が多くなってもDrawPrimitiveUPとDrawPrimitiveは
速度が変わらなくなったってことでいいの?

729 :デフォルトの名無しさん:2011/09/11(日) 21:09:03.25
GPU用のメモリからCPU用のメモリへの転送は行われるから、さほど速くはなってないかも。
メモリ空間が完全に統一されたら分からないね。

730 :デフォルトの名無しさん:2011/09/11(日) 21:26:08.49
>>727
tcharなんて使わなければいい
今のpcゲームでcharを切り替えるメリットはほぼ無い

731 :デフォルトの名無しさん:2011/09/11(日) 22:31:35.84
ダイレクトドローのオーバーレイで出せばキャプできないと思う

732 :デフォルトの名無しさん:2011/09/11(日) 22:54:19.88
DirectXをインストールしたいんだけど、

http://www.microsoft.com/downloads/ja-jp/resultsForCategory.aspx?displaylang=ja&categoryid=2
この中のどれをインストールしていいのか分からないので、教えてもらえませんか?

PCのスペック表です
http://store.shopping.yahoo.co.jp/directplus/h8-1080jp.html

733 :デフォルトの名無しさん:2011/09/11(日) 22:54:37.08
どうあがいてもDVIやHDMIでビデオキャプチャされたら
どにもならないよね
HDCPも解除できるし

そんなところより内容に力を入れろってこった
つまんないソフトに限ってコピープロテクトだけは充実しててむかつく

734 :デフォルトの名無しさん:2011/09/11(日) 23:08:00.89
>>730
どうも

735 :デフォルトの名無しさん:2011/09/12(月) 03:07:37.10
>>732
開発ならSDK,
ゲームしたいならエンドユーザーランタイム

736 :デフォルトの名無しさん:2011/09/15(木) 02:24:31.70
Direct3D 11.1の情報: 新 masafumi's Diary
http://masafumi.cocolog-nifty.com/masafumis_diary/2011/09/direct3d-111-2d.html


737 :デフォルトの名無しさん:2011/09/18(日) 04:06:26.63
>>730
どうも

738 :651:2011/09/19(月) 15:41:37.81
スプライトを使うのをやめたけど
D3DXMATRIX d3dm;
D3DXMatrixTranslation(&d3dm, 0, 200.0f,0);
g_pD3DDevice->SetTransform(D3DTS_PROJECTION , &d3dm);
を使っても並行移動できませんでした。
200.0fの部分を0.2fとかにしてもダメでした。
どうすればいいでしょうか。
http://www1.axfc.net/uploader/H/so/143181.zip

739 :デフォルトの名無しさん:2011/09/19(月) 16:57:39.49
と言うレスが入ったんですけど
「笑えばいいと思うよ」か「まず裸になります」のどちらがいいでしょうか?

740 :デフォルトの名無しさん:2011/09/19(月) 17:19:32.93
射影を平行移動?
頭大丈夫?

741 :デフォルトの名無しさん:2011/09/19(月) 20:43:32.44
チュートリアルなんてやらない・・・絶対にだ!
って決意が堅そうな初心者はどうしたものか・・・

742 :651:2011/09/19(月) 21:04:18.62
D3DTS_WORLD、D3DTS_VIEW、D3DTS_PROJECTIONの値をいじってみたけど何も変化が起きません。
SetTransformを有効にする設定みたいな物があるんでしょうか。

743 :デフォルトの名無しさん:2011/09/19(月) 21:12:11.39
>>742
さすがにお前に教えられる猛者はなかなかいねーよ
せめてDirectXのチュートリアルぐらいはやってくれよ
トラのモデルを表示する奴な
チュートリアル通りに進めれば今日の24時ぐらいにはすべてが理解できてっからよ

っていうかお前、今月頭からそんな状態なら入門サイト探すか入門書買うとかなんかやれや

744 :651:2011/09/19(月) 21:21:13.57
directX9実践プログラミングって本かったけど
全然理解できなかった。
http://msdn.microsoft.com/ja-jp/library/bb219685(v=vs.85).aspx
チューとリアルってここですか?

745 :デフォルトの名無しさん:2011/09/19(月) 21:26:17.97

この本を読んでみ
「 15歳からはじめるdirectx 9 3dゲームプログラミング教室 」

746 :651:2011/09/19(月) 21:32:31.14
>>745
2500円か
2D画面の並行移動をやりたいだけなのに
新しい本を買うのは気が進まない・・・
とりあえずチュートリアルやってみます。

747 :デフォルトの名無しさん:2011/09/19(月) 21:39:43.13
>>744
いんじゃねいんじゃね
でチュートリアルのサンプル プロジェクト自分のPCの中からみっかった?

748 :デフォルトの名無しさん:2011/09/19(月) 21:42:05.87
>>746
おめ、チュートリアルは最期までやっとけよ
いまどき、2Dゲーだって3D空間をぺらぺらなキャラクタが移動してたりするだろ

2Dですべてを表現するのって今度は別のセンスやらなにやら必要になって
いまはもうそういう技術だれも教えてくんないから一旦3Dの方進んで2Dゲー作ったほうがなにかと楽だぞ

749 :デフォルトの名無しさん:2011/09/19(月) 22:52:45.87
ようは全体を平行移動したいんだよね
カメラを動かして描画すればいいんじゃないのか

750 :デフォルトの名無しさん:2011/09/19(月) 22:56:58.82
既にある方向を向いているモデルがあったとして、
任意の与えられたベクトルの向きを向くようにワールドマトリクスを変換したいのですが、
どう変換したら良いのでしょうか?

宜しくお願い致します。

751 :デフォルトの名無しさん:2011/09/19(月) 23:00:57.59
視点と注視点のベクトルを任意に設定すればいいだけの話。

752 :デフォルトの名無しさん:2011/09/19(月) 23:00:57.69
lookat で検索

753 :デフォルトの名無しさん:2011/09/19(月) 23:03:35.48
オブジェクトの方を動かすのなら、向かせたい方に回転させるだけ。
何が疑問なのかが分からない。

754 :デフォルトの名無しさん:2011/09/20(火) 01:01:58.55
アークタンジェント使えって話だろ

755 :651:2011/09/20(火) 01:18:50.79
チュートリアルの三角形が回転するプログラムに
三角形を消して画像を表示してみたのですが、
回転しませんでした。
何が原因なのでしょうか。
http://www1.axfc.net/uploader/Ne/so/118012.zip

756 :デフォルトの名無しさん:2011/09/20(火) 06:56:55.84
>>755
サンプルプロジェクトと比較してみた?
sdkに動くサンプル付いてるよね?

757 :651:2011/09/21(水) 22:43:17.94
2日間考えてやっと分かった。
D3DFVF_XYZRHWじゃなくてD3DFVF_XYZじゃないと
カメラは使えないのね。

758 :デフォルトの名無しさん:2011/09/21(水) 23:11:39.85
当たり前だ

759 :デフォルトの名無しさん:2011/09/21(水) 23:37:33.23
DirectXにカメラなど無い。

760 :デフォルトの名無しさん:2011/09/21(水) 23:38:33.36
痺れた。

761 :651:2011/09/23(金) 14:49:56.21
D3DFVF_XYZRHWからD3DFVF_XYZに変えたら処理速度が2倍遅くなったんですが、
普通はそんな物なんですか?

762 :デフォルトの名無しさん:2011/09/23(金) 15:19:58.96
いいえ

763 :デフォルトの名無しさん:2011/09/23(金) 16:30:41.61
>>761
パフォーマンスが気になったらここを読むがよろし
ttp://msdn.microsoft.com/ja-jp/library/bb147263(v=vs.85).aspx

それと早すぎる最適化は諸悪の根源である

764 :デフォルトの名無しさん:2011/09/23(金) 17:15:28.45
>>761
お前、チュートリアルは終わったのか?
頭のおかしい発言繰り返す前にやることやれよ?

765 :教えて君:2011/09/24(土) 10:38:57.59
3Dオブジェクトを背景に表示した空間の手前にテクスチャードクアッドを入れて
その面にビルボーディグをかけています。背景色が抜けず、裏の3Dオブジェクトが四角で
隠れてしまう格好となってしまいます。テクスチャを作るときD3DCreateTextureFromFileEx()で
抜け色指定したのですが、抜け色としたところが黒くなって、その黒い部分が奥の3Dオブジェクトを
透過せず隠してしまうのです。

何故こうなってしまうのですか。対処法はありますか。

766 :デフォルトの名無しさん:2011/09/24(土) 11:15:06.66
>>765
http://marupeke296.com/DXG_No17_ZBufferAndAplhaBlending.html

767 :教えて君:2011/09/25(日) 21:05:46.07
ありがとうございます。アルファブレンドですか。
自分のレベルに合わないものを作ろうとしたかもしれないので、一回2Dで自分でできる
とりあえずの完成形を作ってみようと思うようになりました。

768 :デフォルトの名無しさん:2011/09/26(月) 01:32:22.55
>>763
これのDX11版が欲しいなぁ。
まぁ、共通してるところもあるだろうけど。

769 :デフォルトの名無しさん:2011/09/26(月) 06:54:25.66
>>767
話理解してないじゃん(笑)

770 :デフォルトの名無しさん:2011/09/28(水) 10:26:24.37
最強の入門書はどれですか?

771 :デフォルトの名無しさん:2011/09/28(水) 11:05:12.07
あなたのレベルに一番マッチした本

772 :デフォルトの名無しさん:2011/09/28(水) 13:08:52.52
マジレスすると

 2 c h

773 :デフォルトの名無しさん:2011/09/28(水) 13:41:09.80
World Wide Web

774 :デフォルトの名無しさん:2011/09/28(水) 23:46:15.27
Wild Wild West

775 :デフォルトの名無しさん:2011/09/29(木) 09:13:53.05
逆に情弱な入門書って何よ?

776 :デフォルトの名無しさん:2011/09/29(木) 15:33:13.71
15歳

777 :デフォルトの名無しさん:2011/09/29(木) 15:47:45.79
本屋で入門書を見あさっても、何がいいか分からない奴が−>情弱

778 :デフォルトの名無しさん:2011/09/29(木) 20:44:27.81
懐中電灯を直視したときのように、ライトの部分が光って見えるようにしたいのですが(戦闘機のアフターバーナーの表現)、
D3DLIGHT9のポイントライトを配置しても、それ自身が光って見えるようにならないようです。

素人ですいませんが、どういう風に考えればいいんでしょうか。

779 :デフォルトの名無しさん:2011/09/29(木) 20:59:51.70
あーなんだっけそれ

780 :778:2011/09/29(木) 21:07:57.77
自力で解決できそうなことを考えたので、やって見てからまた質問します。

781 :デフォルトの名無しさん:2011/09/29(木) 21:11:04.40
おお、がんばれ。

782 :デフォルトの名無しさん:2011/09/29(木) 21:11:51.02
○かいたテクスチャ貼った板をライトの場所におく

783 :デフォルトの名無しさん:2011/09/29(木) 21:33:54.25
>>776
俺もあれ嫌いだわ
軽い気持ちで遊ぶ、くらいの手触りで読むなら良書だけど、
しっかり学ぶという視点からは役に立たないことこの上ない

784 :デフォルトの名無しさん:2011/09/29(木) 21:42:48.84
>>783
とりあえず全体像をつかむのにはいい本ってことだな
しっかり学ぶならそれなりのしっかりした本が必要になる

わかりやすい説明サンクス

785 :デフォルトの名無しさん:2011/09/29(木) 21:51:32.08
そういうスタンスの本も大事だね。

786 :デフォルトの名無しさん:2011/09/29(木) 22:07:18.17
子供に重い概念仕込むの大変だからなぁ。
概要だけの本で正しい前知識があったほうが多少ましかもしれんね。

787 :デフォルトの名無しさん:2011/09/29(木) 23:47:32.77
むしろ細かいこと以上に、大局的な概念が重要だったりするw

788 :デフォルトの名無しさん:2011/09/30(金) 23:23:51.25
Z座標からZバッファへの変換って
Z座標からZバッファの変換が1対1でかつ描画したい部分のZバッファが[0, 1]に収まるなら
なら任意の変換でいいの?

789 :デフォルトの名無しさん:2011/09/30(金) 23:34:11.07
書いたようにしかならないんだから、書けるのなら何でもいい。

790 :デフォルトの名無しさん:2011/10/02(日) 08:47:15.39
DirectXでビューとデータってどういう風に分離する?

791 :デフォルトの名無しさん:2011/10/02(日) 10:10:13.22
質問させてください。
DirectX9.0cを使ってゲームを作り始めたのですが、自機のモデルがうまく表示されません。
テクスチャが張られていない部分はきちんと表示されるのですが、テクスチャが張られている部分が真っ白になってしまいます。
以下、読み込み部分のコードです。
D3DXLoadMeshFromX( "data/model/myShip/myShip.x",
D3DXMESH_SYSTEMMEM, // メッシュの展開先
pD3DD, // デバイス
NULL,
&mpD3DXMaterialBuffer, // 属性バッファの設定
NULL,
&mNumMaterials, // 属性の数
&mpMesh );
// マテリアル情報を取り出す
D3DXMATERIAL* d3dxMaterials = ( D3DXMATERIAL* )mpD3DXMaterialBuffer->GetBufferPointer();
mpMaterials = new D3DMATERIAL9[ mNumMaterials ];
mppD3DTexture = new LPDIRECT3DTEXTURE9[ mNumMaterials ];

for( DWORD i=0; i < mNumMaterials; i++ ){
     mpMaterials[ i ] = d3dxMaterials[ i ].MatD3D;
mpMaterials[ i ].Ambient = mpMaterials[ i ].Diffuse;
if( D3DXCreateTextureFromFile( pD3DD, d3dxMaterials[ i ].pTextureFilename, &mppD3DTexture[ i ] ) != S_OK ){
mppD3DTexture[ i ] = NULL; // 読み込めなかったらテクスチャは無効
}
}
この部分コードが間違っているのでしょうか。他に思い当たる部分がなく、困っています。
モデル自体に問題がないことは他のプログラムを使用して確認済みです。
よろしくお願い致します。

792 :デフォルトの名無しさん:2011/10/02(日) 10:14:04.62
常にテクスチャが無いってことになってたりしない?

793 :デフォルトの名無しさん:2011/10/02(日) 10:24:15.22
>>792
レスありがとうございます。
他のモデルのテクスチャがどうかということでしょうか。
モデリングツールで作成したxfileを読み込んだのはこれで初めてなので、
他のテクスチャがどうかはわからないです。
DrawPrimitive()作ったポリゴンにテクスチャを貼り付けることはありましたが、正常に表示されます。

補足になりますが、今回はテクスチャが複数枚あります。
貼られ方はおかしくなりますが、「d3dxMaterials[ i ].pTextureFilename」の部分に「〜.jpeg」等、
直接ファイル名を指定した場合はテクスチャは貼られます。

794 :デフォルトの名無しさん:2011/10/02(日) 10:28:39.12
SetCurrentDirectoryを前に置いて、xファイルのあるパスをカレントディレクトリにしてみ

795 :デフォルトの名無しさん:2011/10/02(日) 10:34:20.92
>>794
正常に表示されました!ありがとうございます!

原因を知りたいのですが、これはパスの設定を間違っていたということなのでしょうか。
また、SetCurrentDirectoryを使わずに正常に表示することは可能でしょうか。
よろしくお願い致します。

796 :デフォルトの名無しさん:2011/10/02(日) 10:59:59.81
相対パスがテクスチャのパスとして設定されていると、xファイルからの相対パスとなる。
しかし、アプリケーションが起動したとき、そのプロセスのカレントディレクトリはexeファイルの場所になる。

だからカレントディレクトリのパスをxファイルに合わせる必要がある
もしくはPath周りの関数を使って相対パスをxファイル基準の絶対パスにしてあげれば良い

797 :デフォルトの名無しさん:2011/10/02(日) 11:15:57.43
>>796
レスありがとうございます。
よくわかりました。

長いこと悩んでいたので本当に助かりました。
ありがとうございました。

798 :デフォルトの名無しさん:2011/10/02(日) 14:55:02.45
そこはDirectXに限らず悩むことが多いところ。
良い経験になったね。

799 :デフォルトの名無しさん:2011/10/02(日) 15:44:53.70
DirectInput8で複数のパッドデバイスを列挙する場合
EnumDevicesを複数回呼び出せばいいんですか?

800 :デフォルトの名無しさん:2011/10/02(日) 15:59:46.30
1回で全部とれる

801 :デフォルトの名無しさん:2011/10/02(日) 16:04:03.11
ありです。

ちょっと調べてきます。

802 :デフォルトの名無しさん:2011/10/02(日) 16:07:17.34
キーコンフィグってどうしてる?
〇が入力されたら〜って感じのソースの○を定数じゃなくて変数にしたらうまくいくんじゃないかと思うんだけど
もっと良いやり方あったら教えて欲しい

803 :デフォルトの名無しさん:2011/10/02(日) 16:21:47.14
うちが昔実装した方法だと
キーコンフィグのページで全ボタンをチェックして押されたボタンの番号を変数に代入
実際に使う際にその番号を使って呼び出してた

804 :デフォルトの名無しさん:2011/10/02(日) 16:28:50.97
一枚レイヤーかまして
実入力とゲームで使う論理入力?をわける

805 :デフォルトの名無しさん:2011/10/02(日) 16:36:49.61
うん もっと効率的な遣り方があるかもしれないけどそうしていた。
それほど処理が落ちる訳じゃああるまいし

間に条件によっては処理を咬ませたりすることも出来るからいろいろと便利だったし

806 :デフォルトの名無しさん:2011/10/02(日) 16:43:38.06
同意。
それが一番合理的じゃね?

807 :デフォルトの名無しさん:2011/10/02(日) 16:48:14.77
経験者の意見は頼りになります、ありがとうございました。

808 :デフォルトの名無しさん:2011/10/03(月) 07:04:05.61
すみません。
現在、直線や曲線を3D空間に描く時は、板ポリをひたすらみっしり並べて描画しているのですが
もっと良い別の表現方法ってないものでしょうか?

809 :デフォルトの名無しさん:2011/10/03(月) 09:04:38.71
D3DXVec3Projectで3次元の座標から画面の位置を取得してるんですが
真後ろに物体があった時にX,Yが普通に画面内に収まってくるんで困ってます
真後ろかどうかってどうやって判定すればいいですか?

810 :デフォルトの名無しさん:2011/10/03(月) 09:36:39.46
D3DXVec3Dot関数に、カメラから注視点へのベクトルとカメラから対象座標へのベクトルを与えれば
返り値のフロートの符号の正負で前後が判断できたはず。

811 :809:2011/10/03(月) 09:43:11.49
今見てたら2次元スクリーンのZが0.5〜1.5くらいに変化してて
背後にあるときは1.0を超えるように見えるんだけど
これって判定に使っても大丈夫?

812 :デフォルトの名無しさん:2011/10/03(月) 10:38:39.99
PIXが対応しているD3DXのバージョンは一緒のSDKに入っていたもの、
つまりその時点で最新のD3DXだけなんでしょうか。

813 :デフォルトの名無しさん:2011/10/04(火) 06:18:49.22
GetTransformでプロジェクション行列を取り出してアスペクトとか距離とか逆算することって出来る?

814 :デフォルトの名無しさん:2011/10/04(火) 07:34:55.74
できるはず

815 :デフォルトの名無しさん:2011/10/06(木) 14:57:45.96
Windows標準のテキストボックスとかボタンの外見をカスタマイズしたいんだけど
DirectXSDKのサンプルがBCCじゃコンパイルが通らない
助けてくれ

816 :デフォルトの名無しさん:2011/10/06(木) 15:04:53.85
だったらVC使えばいいだろう
いったい何を言っているんだ?

817 :デフォルトの名無しさん:2011/10/06(木) 18:44:29.11
      /.|   /.|   ./.|                         反日教育↓
     /核/  ./核/   /核/ ←日本照準
  _ / / _ ./ / _../ /                        || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|∧∧
.  \/ /ヘ \/ /ヘ\/ /ヘ                     || 愛国無罪 。    /中 \
   ◎ 丶i   ◎丶i  ◎丶i.   .|\_______/| ←捏造 ||   日本猪 \ (`ハ´  )
                   _|    3000000  |_       ||_______⊂   ⊂)
   ∧∧/ ̄ ̄ヽ     _ \ ._______ /_           ∧∧ | ̄ ̄ ̄ ̄|
  /中 \資源 i     \ ._南京大屠殺記念館_ /          (   ,,)      |
 (`ハ´  ) ⊂二 ̄⌒\   | ∩ ∩ | ̄| ∩ ∩ |           〜(___ノ  ̄ ̄ ̄ ̄
  (つ とく__,;;ノ)\   ヽ  | ̄ ̄ ̄ ̄ 口  ̄ ̄ ̄ ̄|      llコ
   /⌒__) /__   )   ∧∧        ノ)      , ‐-ll、
   レ' ゝ( ////  /|.  / 中 \       / \ 〜〜l _ l〜〜〜〜〜〜〜
        / / / //\ \( `ハ´ )   _/ /^\)    ,! . ̄ l  「l
 ↑盗掘  / / / (/   ヽ、        ⌒ ̄_/  /漢級 ̄二二二二`γ_、 三二―
      ( ( (/      ノ      / ̄     (`ハ´)        ,`~ソ 三二―
                ./     /           `ー―――――一'´
                    |\                  ↑領海侵犯
              / ̄ ̄ ̄   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
              | 日中関係改善のために我が国は並々ならぬ
              \努力をしており、日本に分かってもらいたい
               \________________



818 :デフォルトの名無しさん:2011/10/06(木) 21:31:28.63
コールバック?

819 :デフォルトの名無しさん:2011/10/06(木) 22:20:59.30
>>815
馬鹿じゃね
そんな予防注射みたいな名前のコンパイラ使ってるのお前ぐらいだぞ

820 :デフォルトの名無しさん:2011/10/06(木) 22:48:58.04
BCC知らないとか

821 :デフォルトの名無しさん:2011/10/06(木) 22:57:09.09
Boost C Compiler

822 :デフォルトの名無しさん:2011/10/06(木) 23:16:03.78
Bust C Compiler

823 :デフォルトの名無しさん:2011/10/07(金) 00:26:13.99
BCC馬鹿にすんなハゲ

824 :デフォルトの名無しさん:2011/10/07(金) 00:29:32.82
B ババア
C クラスタ
C コンパニオン

825 :デフォルトの名無しさん:2011/10/07(金) 05:31:39.43
さすがに今はMinGWのがいいんじゃね。

826 :デフォルトの名無しさん:2011/10/07(金) 08:24:31.78
VisutalStduioが無料なんだからそれでいいじゃないw

827 :デフォルトの名無しさん:2011/10/07(金) 08:53:54.46
>>826
リソースエディタがないとかそーゆーはなしだったりして?

828 :デフォルトの名無しさん:2011/10/07(金) 11:37:03.45
VC Expressは商用コード作成無理じゃなかったっけ。

829 :デフォルトの名無しさん:2011/10/07(金) 11:41:10.71
んな制限ない

830 :デフォルトの名無しさん:2011/10/07(金) 13:02:18.31
金田して買ったアカデミック版は商用不可でタダのexpress 版は商用可能なんだよな

831 :デフォルトの名無しさん:2011/10/07(金) 13:25:11.64
Academic Editionにそんな制限ないぞ
DreamSparkやAcademic Allianceはダメらしいが

832 :デフォルトの名無しさん:2011/10/07(金) 13:31:34.28
今はDreamとかついて制限増えたのか。
vs2003の時は制限もなくサービス終了時に2005proをタダでくれたぞ
と思ったら昔やってたのはspokeだった

833 :デフォルトの名無しさん:2011/10/07(金) 13:56:36.56
>>831
あるよ。

ttp://msdn.microsoft.com/ja-jp/academic/cc987607.aspx

「3. MSDN AA 修正使用許諾主契約書」の「プログラムの制限事項」を見るべし。

834 :デフォルトの名無しさん:2011/10/07(金) 14:06:54.24
奥にある物体が描画されないのはプロジェクションの奥行きの問題だけじゃない?
プロジェクションの奥行きをデカクしても一定ラインより先が描画されない
他に影響するものがあるの?

835 :デフォルトの名無しさん:2011/10/07(金) 14:16:09.86
>>833
お前Academic EditionとAcademic Allianceの区別できてないだろ

836 :デフォルトの名無しさん:2011/10/07(金) 15:39:18.49
アカデミックエディションに関してはいろいろ不明瞭な部分もあったので、MSのカスタマーセンターに聞いてみた。
それによると、VisualStudioのアカデミックエディションは、購入時点における購入者の身分だけに制限があって、
その後の使用や、開発したプログラムに関する取り扱いに制限はないそうだ。
つまり身分が購入の要件を満たさなくなってもそのまま利用できるし、商用ソフトの開発も自由だそうだ。

よかったな。


837 :デフォルトの名無しさん:2011/10/07(金) 16:41:55.74
>>836
ありがとう!

838 :デフォルトの名無しさん:2011/10/07(金) 20:27:45.78
Direct Input に関して質問
全方位シューティング作ってるんだけど、コントローラーで詰まってる。
Geometry Warsみたいにアナログスティックの360回転に同期して自機も360度回転させたい。

8方向は普通に出来る。 (キーボードでも使えるようにするために、キー情報の変数を作ってビットで管理してる。)
8方向だったらフラグで簡単に出来るけど、360度だとDIJOYSTATE2の値を直接参照して、自機の角度を変える感じかな?
でもそれだと、lXやlYの値がどのくらいのとき何度なのかってのが分からない。

みんなはどうやってる?

839 :デフォルトの名無しさん:2011/10/07(金) 20:45:23.73
>>838
どうせ最終的には方向ベクトルにするんだろうから、角度で管理するんじゃなくて
最初から方向ベクトルで扱うのが一番無駄がない。

どうしても角度で扱いたければatan2で角度を求められる。

840 :デフォルトの名無しさん:2011/10/07(金) 21:12:35.42
あたんつー

841 :838:2011/10/07(金) 21:39:32.58
>>839
>>840
ごめん、俺が余計な混乱してたみたいだ。 質問したかったのは、「DIJOYSTATE2のlXとlYの取り扱い方」だった。
デバッガでちまちま値調べたら分かったよ。

ふつうに
DIJOYSTATE2 joyState;
if( FAILED( directInputDevice[controller]->GetDeviceState( sizeof( DIJOYSTATE2 ), &joyState ) ) )
{
return false;
}
data->dir = atan2( ( float )joyState.lY, ( float )joyState.lX );

でぬるぬるです。
なんでこんな簡単なことがすぐに分からなかったんだろう。
本当にすみませんでしたorz

842 :デフォルトの名無しさん:2011/10/08(土) 21:04:59.14
謝ったからゆるしてやるよ
ありがたくおもいなさい

843 :デフォルトの名無しさん:2011/10/09(日) 04:47:50.82
ぶひぃぃぃぃぃぃぃぃぃぃ

844 :デフォルトの名無しさん:2011/10/09(日) 15:19:52.68
>>839
それじゃ3回転の2回転目が表現できないとか前後の話もよく読まず食いついてみる

845 :デフォルトの名無しさん:2011/10/09(日) 15:24:29.76
うんやっぱり的外れだった(笑)
無視してくれ(笑)

846 :デフォルトの名無しさん:2011/10/09(日) 15:36:40.98
今どき、角度なんて使わないよね。
ラジアンの時代だよ。

847 :デフォルトの名無しさん:2011/10/09(日) 15:43:49.81
ラジアンは角度の単位なんだが、使わないとか何いってんのこの馬鹿?

848 :デフォルトの名無しさん:2011/10/09(日) 16:38:56.83
>>846
www

849 :デフォルトの名無しさん:2011/10/09(日) 16:44:57.69
>>847
ネタにマジレスかこわr

850 :デフォルトの名無しさん:2011/10/09(日) 16:51:09.38
みんな、当然自分でライブラリ作ってるよな?

関係ないけど、シューティングのオブジェクト管理にはリスト構造使うべきか?
面倒くさいしあんまり速くなりそうに思えないんだが。

851 :デフォルトの名無しさん:2011/10/09(日) 16:57:59.56
恥ずかしいミスを指摘されるとネタとか言い出して恥の上塗りする奴っているよな

852 :デフォルトの名無しさん:2011/10/09(日) 17:00:51.16
おれ汎用性持たせてmapだよ。スピードいるなら変えるけどな。
たしかlistよりmapの方が遅いけど、そんなに差はなかったよ。独自リストはしらん。


853 :デフォルトの名無しさん:2011/10/09(日) 17:04:05.40
>>851
自己紹介乙w

854 :デフォルトの名無しさん:2011/10/09(日) 17:10:13.78
>>850
IDから検索してアクセスしたい時にリストじゃおそい
ベクタかマップを使いたいところだろう


855 :デフォルトの名無しさん:2011/10/09(日) 17:13:06.31
>>849
ネタはネタでも、自分は馬鹿ですという本気の自虐ネタは哀れすぎるよ。

856 :デフォルトの名無しさん:2011/10/09(日) 17:16:49.71
保守あげ

857 :デフォルトの名無しさん:2011/10/09(日) 17:36:37.24
>>850
俺ライブラリは作ってるけど、STGのオブジェクトは普通に配列使って
検索も逐一検索なんだけど…

コンテナ使うべきかな

858 :デフォルトの名無しさん:2011/10/09(日) 18:22:54.26
>>857
パフォーマンスが問題ないならそれでOKだね。
分かり易いのが一番だよ。

859 :デフォルトの名無しさん:2011/10/09(日) 20:46:04.31
DirectXと関係あんのか、この話

860 :デフォルトの名無しさん:2011/10/09(日) 21:33:05.96
DirectXはゲームで使われることが多い
シューティングはゲームの1ジャンルである
したがってDirectXとシューティングには関係があるので語ってよい

861 :デフォルトの名無しさん:2011/10/09(日) 21:35:25.57
うむ。

862 :デフォルトの名無しさん:2011/10/09(日) 21:57:04.18
>>860
その論法だと、時々やってくるDirectXを使ったゲームが動かないと質問しにくる馬鹿もOKだということになるぞ。
DirectXのAPIが絡まない汎用的な実装の話は完全にスレ違いだ。

863 :デフォルトの名無しさん:2011/10/10(月) 00:26:25.76
じゃあプログラマブルシェーダ内の配列をどう管理するかの話題にしよう
それならいいだろ??

864 :デフォルトの名無しさん:2011/10/10(月) 00:57:19.64
うむ。

865 :デフォルトの名無しさん:2011/10/10(月) 01:06:23.77
>>862
お前がこの世から消えたらすべて丸く収まるんじゃね

866 :デフォルトの名無しさん:2011/10/10(月) 08:46:19.85
>>858
ありがとう! これからもがんばるよ!

867 :デフォルトの名無しさん:2011/10/10(月) 10:11:43.11
シューティングゲーム(非FPS)製作技術総合
http://hibari.2ch.net/test/read.cgi/gamedev/1247841466/

868 :デフォルトの名無しさん:2011/10/10(月) 10:38:08.59
DirectX11って普及するのかな。またすぐに12とかが出てくるんじゃないかと思って。
XP+DirectX9でしばらく様子見がFA?

869 :デフォルトの名無しさん:2011/10/10(月) 10:49:25.58
自分が何をターゲットにするか次第なんだからFAなど無い。
前提条件も示さずに他人に意見を求めるな。

870 :デフォルトの名無しさん:2011/10/10(月) 10:51:27.20
どうせゲームが完成する頃にはWindows8+directX13位になってるから気にするな

871 :デフォルトの名無しさん:2011/10/10(月) 11:03:27.66
DirectX11、興味はあるんだけど、いかんせん情報が少なくて手が出せないでいる・・・
DirectX9のときはXファイルサポートとか、アニメーション関数とかあって重宝したのもあるし。
自分でアニメーション組んだら、糞遅くて凹んだし orz

872 :デフォルトの名無しさん:2011/10/10(月) 11:50:32.27
割りとマジでUnityでいいとおもう。
自分でいじるのは勉強か研究くらいじゃん?

873 :デフォルトの名無しさん:2011/10/10(月) 13:45:31.31
>>872
まあ、最終的に売ることを考えた場合だよね
別にそうでないならどのゲームエンジンも触ってみることをオススメしたいね
とりあえずDirectXを素で叩くことはなさそうってのは同意

874 :デフォルトの名無しさん:2011/10/10(月) 14:04:28.73
何を作るかにもよると思うけど。
テトリス作るのにわざわざゲームエンジン使うのも馬鹿らしい品

875 :デフォルトの名無しさん:2011/10/10(月) 15:18:59.48
3Dゲームエンジンまともに作れる会社ってどれくらいの規模なんだろう
日本では、カプのMTやスクエニクラスだけかな?

零細会社がやるなら勉強でdirect使って
結局は有名どこのエンジン使うことになる?

directx勉強する意味合いってなに?


876 :デフォルトの名無しさん:2011/10/10(月) 15:22:25.54
Windowsのアプリで描写が無駄に綺麗になる

877 :デフォルトの名無しさん:2011/10/10(月) 15:53:20.45
>>874
そうは思わないな
メニューとかモデルで作ったらアニメーションでカーソル移動とか楽になるわけだし
そっから作るとなると結構大変じゃないか?
アニメーションサポートするだけでも

878 :デフォルトの名無しさん:2011/10/10(月) 15:54:28.03
うん、けっこう馬鹿にならないと思うし、簡単なゲームでも意義はあると思うなぁ。

879 :デフォルトの名無しさん:2011/10/10(月) 15:55:45.27
面白いな最近のゆとりは

880 :デフォルトの名無しさん:2011/10/10(月) 15:58:01.14
過疎スレで連投すると自演に見えるから萎える

881 :デフォルトの名無しさん:2011/10/10(月) 16:13:39.71
DirectXスレでDirectX否定ってw

882 :デフォルトの名無しさん:2011/10/10(月) 16:19:36.26
http://blog.livedoor.jp/dqnplus/archives/1668825.html
これを思い出した

883 :デフォルトの名無しさん:2011/10/10(月) 17:03:59.03
DirectXはあまりに仕様を変えすぎるんだよ
DirectX9SDKだけでもいったいいくつバージョンがあるんだよ
しかもコンパイル互換性なしとかもうね
っていう状態なのに10だの11だのポンポン出すんじゃねーよ

ってことを考えると、とてもじゃないが相手してらんないので
ゲームエンジンを使うのが正解だろう

884 :デフォルトの名無しさん:2011/10/10(月) 17:08:09.70
COMなんだから自分の使いやすいバージョンつかってりゃいいんじゃねぇの

885 :デフォルトの名無しさん:2011/10/10(月) 17:19:47.57
>>883

イミフ
そのゲームエンジンの使っているSDKはどうなるんだよ。
と思ったが。使うだけでゲームエンジンのソースは面倒みない人か。


886 :デフォルトの名無しさん:2011/10/10(月) 17:25:54.25
ゲームを作るのが目的なので
ゲイツのアナルのお世話はゲームエンジン作者に任せたいんですよ。
DXのバージョンが変わるごとに、毎回毎回デバイスロストの処理とか
D3Dデバイスの生成とか同じことを何回も何回も同じコードを書いてる気がするわ。

887 :デフォルトの名無しさん:2011/10/10(月) 17:27:45.00
ゲームエンジンのライセンス買うのは、
エンジンの機能を使いたいというのもあるだろうが、
使うだけで面倒みるのがいやだからだというのもあると思うが。

888 :デフォルトの名無しさん:2011/10/10(月) 17:28:01.64
もうデバイスロストの処理なんて必要ないから。

889 :デフォルトの名無しさん:2011/10/10(月) 17:29:35.06
あれ?DirectX11あたりからロストってしにくくなったんじゃねーの?


890 :889:2011/10/10(月) 17:30:19.88
あ、かぶった

891 :デフォルトの名無しさん:2011/10/10(月) 17:31:13.93
DirectXのSDKはすでに1年以上更新されていないが、
ボンボン出すとか、デバイスロストとか、旧世代の知識で、
その後に何の勉強もしないヤツほど、文句たらたらなんだよね。

892 :デフォルトの名無しさん:2011/10/10(月) 17:34:04.34
仕方ないよXPがまだまだ現役でDirectX9の知識で止まってる人実際多いし

893 :デフォルトの名無しさん:2011/10/10(月) 17:41:37.96
>>891
現実問題、XPを切り捨てることは到底できないから
XPでDX11を出してもらわないとね
デバイスロストがしにくくなったのは知らんかったわ。
だがトライアングル1つ出すまでのコードはまた作り直しなんだろうし、
その他排他モードとウィンドウモードでケアするべき項目も違うんだろう。

894 :デフォルトの名無しさん:2011/10/10(月) 17:43:57.46
知識が風化しているのに文句だけ一著前。

コンパイル云々ではDirectX9時代のソース変更が必要な仕様変更は、ID3DXSpriteぐらいで、
引っかかったのは、そんな使わなくていいものを使っていた、ごく一部の馬鹿だけだし。

895 :デフォルトの名無しさん:2011/10/10(月) 17:44:43.70
〜だろう
ってDirectX11調べずに発言してたのかよ

896 :デフォルトの名無しさん:2011/10/10(月) 17:46:43.36
DirectX9時代はDirectX本体ではなく、D3DXのあくまで補助ライブラリのアップデートをしていただけなんだから、
嫌なら使わなければいいだけの話だったのにね。
自分の知識不足のせいなのに、いったい何に文句を付けているんだよ?

897 :デフォルトの名無しさん:2011/10/10(月) 17:46:49.64
つまり印象だけなのね。

898 :デフォルトの名無しさん:2011/10/10(月) 17:48:03.34
つか、D3DXなんて使わないからDirectX9でも問題ないけど?


899 :デフォルトの名無しさん:2011/10/10(月) 17:49:21.77
結局DirectX11時代を迎えてMSのとった対策は、
補助ライブラリを必要最小限に削って、アップデートをしない方向に。
これでサービスで付けていた補助ライブラリに文句を付ける馬鹿をシャットアウトしたんだよ。

900 :デフォルトの名無しさん:2011/10/10(月) 17:51:29.35
うん、まだまともに調べてないよ。
また仕様がコロッコロ変わるなら調べる必要もないから。
現にDX10はビルドを1回もしたことがないがDX11になってしまった。
DX11はいつまでもつのかね。

901 :デフォルトの名無しさん:2011/10/10(月) 17:51:34.16
ハードウェアテッセレーションをエロゲで使いたいとか

902 :デフォルトの名無しさん:2011/10/10(月) 17:53:55.05
>>900
うんうんそうだよねDirectX9でいいよね新しい事覚えるの大変だもんね

903 :デフォルトの名無しさん:2011/10/10(月) 17:54:42.26
>>900
だから一年以上変わってないんだって。
不勉強の言い訳をしている暇があったら、その化石化した知識を何とかしろ。

904 :デフォルトの名無しさん:2011/10/10(月) 17:57:57.23
>>902
同じことしかできないのに
やり方が変わってるっていうのについていけないわ。

>>903
XPユーザーが有意に減少するまであと最低5年はかかるだろうから
それまで変わらないなら、おべんきょう、してもいいよ。

905 :デフォルトの名無しさん:2011/10/10(月) 17:58:57.21
DirectXに限らず日進月歩で変わっていくIT分野で、
どうせ仕様が変わるからといって勉強しないヤツは、
どう考えても使い物にならない。

906 :デフォルトの名無しさん:2011/10/10(月) 18:00:01.88
だからここで管を巻いて文句言ってるんだろうが

907 :デフォルトの名無しさん:2011/10/10(月) 18:01:32.90
>>904
君が勉強しないのは勝手だ。
ただし古い知識で的を射ていない文句を、
自分の日記以外の書き込むのは恥ずかしいからやめた方がいい。

908 :デフォルトの名無しさん:2011/10/10(月) 18:03:07.10
DX3〜9までは文句をいいつつ、ついてきたけど、
今回はOSの非サポートだからな。さすがについていく気にならない。
XPが本当に終わったらまじめにLinuxにいくと思う。
DX10からXファイルサポートがろくになくなったようだし、
なんの未練もないよな。

909 :デフォルトの名無しさん:2011/10/10(月) 18:06:14.72
こいつ自分で作るという決定的なスタンスが欠落してる

910 :デフォルトの名無しさん:2011/10/10(月) 18:06:36.51
それなりの助成金がもらえりゃDX11でもいいけどね

911 :デフォルトの名無しさん:2011/10/10(月) 18:06:53.76
X-Fileも複雑なパーサを通さなくてもいいように簡略化した形式にして読み込む方法もサポートされているんだけどね。
コンバータまでついているし。
知りもしないで文句だけいうヤツって、本当に救いようが無い。

912 :デフォルトの名無しさん:2011/10/10(月) 18:08:25.62
大学生と厨二病の議論ほどかみ合ってないな

913 :デフォルトの名無しさん:2011/10/10(月) 18:18:19.47
古い知識とか化石とか言うけど、
お前らが言ってる内容ってまるで
Windows7のコンパネの内容がXPとこれだけ違いますよw
みたいな”超ウルトラハイパーアメージングマッシブにくっだらねえ”話に聞こえるんだよ。
そんなの知りたくもないわ。
俺はゲームを作りたいだけなのだ。

914 :デフォルトの名無しさん:2011/10/10(月) 18:19:58.43
そのくだらない話にかみついてるお前もくだらないな


915 :デフォルトの名無しさん:2011/10/10(月) 18:29:49.77
DirectX10とか11とかにするからぱっとみ後方互換性がありそうでダメなんだよ
互換性なんか知ったこっちゃねぇっていう意思をきちんと表現した名前にしないと

916 :デフォルトの名無しさん:2011/10/10(月) 19:11:59.83
9から11にAPIを移行するのに、そんな手間はかからなかったけどね。
どちらかというとxnamath用に演算部分を変更する部分に時間をかけた。

917 :デフォルトの名無しさん:2011/10/10(月) 19:20:14.84
>>911
それの詳細載ってるサイト教えて〜!

>>916
勇気付けられる。
がんばって移行してみるか・・・

918 :デフォルトの名無しさん:2011/10/10(月) 19:26:59.85
http://i.imgur.com/B3iNe.jpg
これ

919 :デフォルトの名無しさん:2011/10/10(月) 19:27:23.78
サイトも何もヘルプに載っている上に日本語化済み。

920 :デフォルトの名無しさん:2011/10/11(火) 01:40:35.77
エフェクトライブラリをまた標準サポートしてほしいな。使いやすくして。

921 :デフォルトの名無しさん:2011/10/11(火) 05:16:06.42
ごく一部の人間にはスルーする力がないのはよくわかった。

>>920
エフェクトライブラリはミドルウェアの仕事のような気もする。


922 :デフォルトの名無しさん:2011/10/11(火) 09:08:09.49
それがXNAじゃないの?

923 :デフォルトの名無しさん:2011/10/11(火) 10:37:43.60
エフェクトにD3DCreateEffectFromFile()を使えばいいって言うのが調べたら出たんだけど
よーわからん!なんか特定の拡張子のファイルを読み込めるのかな

924 :923:2011/10/11(火) 10:40:26.52
調べたらシェーダを使うプログラムだった
.fxファイルがシェーダですね!

お手数おかけしました!

925 :デフォルトの名無しさん:2011/10/11(火) 23:55:04.41
教えてエロい人。

ウィンドウ(フルスクリーンでない) + C++ + WIN32API + DirectX のプログラムで、
ウィンドウをデスクトップからはみ出るように動かすと、
はみ出た無効領域が再描画されない。ドラッグを解除すると再描画される。
どうすればドラッグ中でも再描画される?
他のウィンドウを重ねたり一度最小化したりするときは大丈夫。
ドラッグでディスプレイからはみ出させたときだけダメ。

926 :925:2011/10/11(火) 23:58:17.70
sage忘れすまん。

描画周りの処理はこんな感じ。

while(1)
{
if(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
{ // メッセージあり.
if(Message.message == WM_QUIT)
{
break;
}

DispatchMessage(&Message);
}
else
{ // メッセージなし. アイドル.
if(APPLICATION.MainLoop() == false)
{
break;
}
}
}

よろ。


927 :デフォルトの名無しさん:2011/10/12(水) 00:03:47.00
ウィンドウプロシージャでWM_PAINTを捉まえてPresent()すればいい

928 :925:2011/10/12(水) 01:02:08.92
やってみた。
画面が黄緑とピンクのポケモン現象みたいになったw

http://firestorage.jp/download/597748fe5c0d93175500244677affb0ef85c8bdb

わかりにくいかもしれないけど動画。
引きずり出すときは大丈夫だけど、引き戻すときにポケモン現象発生。
ちなみにL字型に黒くなってるのは正しい描画。

929 :デフォルトの名無しさん:2011/10/12(水) 03:53:59.26
2枚のモニタでデバイスが異なっていたら当然そうなるし、
異なっているかもと言うことでするーしても当然そうなる。
ちゃんと2つのデバイスをつくって、個々で描画しないとだめじゃね?

うまくいくようになったら、最大4つのデバイスをまたぐことになるので
それも検討して下さい。


930 :デフォルトの名無しさん:2011/10/12(水) 03:57:56.33
D&D中の描画が崩れて困るような状況が思い浮かばない

931 :デフォルトの名無しさん:2011/10/12(水) 12:54:24.19
DirectX使うのにWM_PAINTでごにょごにょするとかあほだろ

932 :デフォルトの名無しさん:2011/10/12(水) 13:16:56.88
931はゲーム用途以外頭になさそうだな

933 :デフォルトの名無しさん:2011/10/12(水) 15:50:12.49
ドラッグ中のメッセージってNCHITTESTだっけ?
その間に描画処理をかませればいい気がする。
でも、描画処理が重い時は動作が詰まるよ。

934 :デフォルトの名無しさん:2011/10/12(水) 18:27:17.61
       ┌┴───────────────┴┐
       │ フジテレビ・電通合同ネトウヨ対策本部 │
       └─────────────────┘
カタカタ ∧_∧      カタカタ ∧_∧       カタカタ∧_∧   
    < `∀´ > ネトウヨ涙目w < `∀´ > デモナンカムイミw< `∀´ > 花王ハ、カンケイナイダロウ   
   _| ̄ ̄||_)____     _| ̄ ̄||_)____    ___| ̄ ̄||_)___ バッカジャネーノ、ネットウヨw
 /旦|――||// /|  / .|――|l// /|  /  |――|l// /|
 | ̄ ̄ ̄ ̄ ̄| ̄| . |   | ̄ ̄ ̄ ̄ ̄| ̄| . |  | ̄ ̄ ̄ ̄ ̄| ̄| . |
 |_____|三|/  |_____|三|/  |_____|三|/
カタカタ ∧_∧     カタカタ∧_∧         カタカタ∧_∧  
    < `∀´ >k-popサイコー< `∀´ > フバイナンカムイミw< `∀´ > イヤナラミルナキャイイダケ  
   _| ̄ ̄||_)____     _| ̄ ̄||_)____    ___| ̄ ̄||_)___ コウサクインナンカ、イルワケナイダロウw
 /旦|――||// /|  / .|――|l// /|  /. |――|l// /|
 | ̄ ̄ ̄ ̄ ̄| ̄| . |   | ̄ ̄ ̄ ̄ ̄| ̄| . |  | ̄ ̄ ̄ ̄ ̄| ̄| . |
 |_____|三|/  |_____|三|/  |_____|三|/


935 :デフォルトの名無しさん:2011/10/12(水) 23:11:30.95
描画が重いっつっても10FPSくらいで動いてるならウィンドウ操作も許容できるレベルじゃない?
そして、それ以下なら描画も死んでるし、ウィンドウ操作が糞でも諦めるだろ

936 :デフォルトの名無しさん:2011/10/13(木) 01:03:31.32
描画は別スレッドにすれば良いだろ低脳

937 :デフォルトの名無しさん:2011/10/13(木) 06:50:46.92
10FPSとかさすがにゲームとして成立しにくそうだ
標準で60FPS欲しくて、30FPSが最低ラインって感じ。

938 :デフォルトの名無しさん:2011/10/13(木) 07:24:16.31
ジャンル次第かと。

939 :デフォルトの名無しさん:2011/10/13(木) 11:02:58.37
>>937
>>938
ウィンドウをドラッグして移動させている最中の話だぞ?
ゲームとして成立するもクソもない気がするんだけど、
それで成立しないってどんなゲームなんだよw

940 :デフォルトの名無しさん:2011/10/13(木) 18:35:19.17
>>931
DXUTではWM_PAINTでごにょごにょしてるみたいだけど
といってもこういう時用みたいだけど

941 :デフォルトの名無しさん:2011/10/13(木) 20:42:27.54
ドラッグ時に描画とかうざすぎるだろ

942 :デフォルトの名無しさん:2011/10/13(木) 22:35:00.09
速度とか気になってきたので、独自フォーマットに挑戦しようと思ったのですが、
モデリング後のデータを独自形式に変換するのに、どの方法が一般的に使われているのでしょうか?

1・Xファイルを読み取り、独自形式に変換する
2・モデリングソフトのファイルフォーマットを入手or解析して、それを独自形式に変換する
3・モデリングソフトのプラグイン機能で、独自フォーマットを吐き出すDLLを作成する


943 :デフォルトの名無しさん:2011/10/13(木) 22:45:29.58
このあたりは自分も気になる。
是非教えてほしい。

944 :デフォルトの名無しさん:2011/10/13(木) 23:33:53.32
>942
一般的な方法は知らないが
俺は3だね。モデリングソフトのSDK使うのが一番簡単。


945 :デフォルトの名無しさん:2011/10/13(木) 23:43:48.24
状況によるんじゃないの

モデルだけなら、1が汎用的だし
アニメーション、物理なども含めるなら3だろうし
2は現実的ではないな

946 :デフォルトの名無しさん:2011/10/14(金) 02:38:25.75
俺はColladaプラグインをカスタムしたので出力して
更にそのCollada ファイルから自作モデルとモーションにコンバートしてる
例で言うところの1と3の両方の変形だね
Xファイルはあんま知らないけどCollada なら中身ただのXMLだしいろんなカスタム情報のせれるから便利

で2はちょっとおすすめしないかな
バイナリ解析とか好きだけどエクスポートプラグイン作れるならそっちでやった方がいいと思う
ツールのバージョンアップにも耐えれるし

947 :デフォルトの名無しさん:2011/10/14(金) 08:25:49.31
Sprite使ってて時間がたつと画面がぐちゃぐちゃになってくるんだけど
メモリリークかグラフィックカードが壊れてるのか何なのかわからないけど
Windows7でディスプレイドライバをリセットしましたとかって出るじゃない?
あれって自発的にリセットしたり出来るのかな?
いちいち再起動するのがめんどくさい

948 :デフォルトの名無しさん:2011/10/14(金) 09:34:18.88
>>947
まずそのふざけたバグを直せ。
原因なんてデバッグランタイム使えば一瞬でわかるだろ。

949 :デフォルトの名無しさん:2011/10/14(金) 14:13:11.16
いやそれがよくわからん
メモリリークかと思ってBeginSceneでSpriteをCreateして
EndSceneでReleaseするようにして確実にリリースするようにしてみたけど同じなんだよね
あとはテクスチャを1枚それでDrawしてるだけ
テクスチャはプログラム起動時に読み込んでるだけだから仮にメモリリークしててもあんま影響ないだろうし
グラフィックカードが壊れてるのかドライバのバグかなんかだと思うんだけど

950 :デフォルトの名無しさん:2011/10/14(金) 14:58:37.02
馬鹿ほど自分のバグを疑わず、他人のせいにする。
他のサンプルやプログラムで同じ現象が起こっていないのなら、お前のバグだ。

951 :デフォルトの名無しさん:2011/10/14(金) 15:10:54.54
だからデバッグランタイムつかえよ。

952 :デフォルトの名無しさん:2011/10/14(金) 15:18:21.55
理由があってデバッグは使えない

953 :デフォルトの名無しさん:2011/10/14(金) 15:27:05.18
いみがわからん

954 :デフォルトの名無しさん:2011/10/14(金) 15:33:32.85
どんな理由だ?

955 :デフォルトの名無しさん:2011/10/14(金) 16:39:19.32
デバッガのバグで、意味不明なエラーが出る

956 :デフォルトの名無しさん:2011/10/14(金) 16:40:13.91
は?
コンパネから設定切り替えるだけだぞ。

957 :デフォルトの名無しさん:2011/10/14(金) 16:49:01.12
>>955
エラー晒して。 省略するなよ。

>>942 
俺は同人で使ってて、メンバーが各自購入して別々のソフト使ってるという特殊な状況。
3が特定ソフト(場合によってはバージョンやx86/x64等にも)に依存するから、2を選択。
ほかのソフトからでも"エクスポート"とか"書き出し"で他社ファイルで出せたりするから意外に汎用的だったりする。
例[.ma] ttp://download.autodesk.com/largefiles/jp/product/20100520_2011_maya_onlinehelp/index.html?url=./files/WS73099cc142f48755-4bc38c931187aa80bc9-32aa.htm,topicNumber=d0e687824

例外ではあるけど、こんなこともあるよ〜ってことで。

958 :947:2011/10/14(金) 17:14:51.64
DirectXはほとんど知らないんだけど、メモリリークしたくらいでBSOD出たりするもん?
ハード的におかしいよね?

959 :デフォルトの名無しさん:2011/10/14(金) 17:26:45.49
>>958
まずはコード晒せよ
むしろどうやったらBSOD出るのか気になる

960 :デフォルトの名無しさん:2011/10/14(金) 18:20:55.85
>>958
お前のコードがおかしいと言っているだろう。
本当に人の話を聞かない奴だな。

961 :デフォルトの名無しさん:2011/10/14(金) 18:33:17.39
ブルースクリーンって未だに出るものなのか
最後に見たのはWin98時代だ

962 :デフォルトの名無しさん:2011/10/14(金) 18:44:39.72
ウンコなソースかいてるとドライバクラッシュはなくもない

963 :デフォルトの名無しさん:2011/10/14(金) 21:52:29.08
ドライバが問題ないとき、きれいなソースで落ちたことは一度もない
ドライバが腐ってると、きれいなソースでも落ちる。 その時は市販ゲームでもなんでも落ちる。


964 :デフォルトの名無しさん:2011/10/14(金) 21:55:48.76
ハード問題でも落ちるぞ、とても不確定に起るハード問題もある。
と言うか俺のノートがそれ。たまに落ちる原因はたぶんハード。

965 :デフォルトの名無しさん:2011/10/14(金) 21:58:00.89
ドライバもいっしょに固まるってことだろ
俺もあるな
頻繁に色数変えまくってたら画面が赤っぽく変色しちゃったことある
電源入れなおして起動するとだんだん赤くなっていって最期には真っ赤になってなんにも見えなくなっちゃうw

次の日になったら直ってた

後、負荷の高いシェーダを長時間連続運転してるとグラボからおかしい音がずっとなりやまないときがあった

これも次の日になったら直ってた

966 :デフォルトの名無しさん:2011/10/14(金) 23:52:02.18
なんというか、このスレって馬鹿なレスほど積極的にかまってやるよな。

967 :デフォルトの名無しさん:2011/10/14(金) 23:53:19.82
自転車置き場の議論ですよ

968 :デフォルトの名無しさん:2011/10/14(金) 23:59:12.03
>>965
それはただの霊障だろ

969 :デフォルトの名無しさん:2011/10/15(土) 00:29:47.25
もとの質問者はデバッグランタイムをデバッガーと勘違いしている。

970 :デフォルトの名無しさん:2011/10/15(土) 00:35:46.06
でも俺も Win7 でデバッグランタイムが動かないから使ってない
古い SDK 使ってる俺が悪いんだけどな

971 :デフォルトの名無しさん:2011/10/16(日) 13:10:59.11
DXUTをDirect3D11用に書き換えてみようかとCtrl+Shift+Hをポチポチやっていたけど俺レベルじゃ無理だなこれ。
stateblockのようなD3D10とD3D11の根本的な違い(?)も絡んできるみたいで、ここ(↓)だけじゃカバーしきれない。
Direct3D 11 への移行 http://msdn.microsoft.com/ja-jp/library/ee416254(v=vs.85).aspx

そもそも俺ができるくらいならとっくにMicrosoftから出てそう。大人しく次回のSDKを期待するしかないかな。

972 :デフォルトの名無しさん:2011/10/16(日) 14:13:34.13
>>971
うちではリファレンスラスタライザでしか使えないから11は全く手を付けてないけど、
11のサンプルにもDXUTって入ってない?

973 :971:2011/10/16(日) 15:12:14.11
>>972
ありがとうございます!!!
あああ…俺アホス…入ってますねDXUT11として!!
Microsoft DirectX SDK (June 2010)\Samples\C++\DXUT11 に思いっきり入ってました!
サンプルのうちTutorialしか見てなくて、Sample BrowserでD3D11絞り込んでDXUTを検索しても
ヒットしなかったのでてっきりないものだと諦めていました。が、思いっきりD3D11の各種サンプルでも使われてますね…
お手間を取らせてすみません、ありがとうございますすごく助かりました!

974 :デフォルトの名無しさん:2011/10/16(日) 16:55:03.03
>>972
11にREFなど存在しないんだが、いったい何を言っているんだ?

975 :デフォルトの名無しさん:2011/10/16(日) 21:45:02.43
>>974
ttp://msdn.microsoft.com/ja-jp/library/ee417659(v=vs.85).aspx
D3D_DRIVER_TYPE_REFERENCE
リファレンス ドライバー。すべての Direct3D 機能をサポートするソフトウェア実装です。
リファレンス ドライバーは速度より精度を目的に設計されているため、低速ながら高精度です。
このドライバーのラスタライザー部分は、可能であれば専用の CPU 命令を使用しますが、製品版アプリケーションでの使用は想定されていません。
機能のテスト、デモ、デバッグ、または他のドライバーのバグの検証にのみ使用してください。
このドライバーは DirectX SDK によってインストールされます。
このドライバーは、REF ドライバー、リファレンス ドライバー、またはリファレンス ラスタライザーと呼ばれることもあります。

これ違うの?

976 :デフォルトの名無しさん:2011/10/16(日) 23:43:57.79
>>975
うん

977 :デフォルトの名無しさん:2011/10/17(月) 16:23:52.48
円や四角などを大量に描写するとブラシやペンで指定した色が付かなくなったりすることはあるのでしょうか?

978 :デフォルトの名無しさん:2011/10/17(月) 17:24:00.56
ブラシ?ペン?

979 :デフォルトの名無しさん:2011/10/18(火) 23:18:09.82
とても初歩的なでわかりづらい質問で申し訳無いのですが
「ゲームプログラマになる前に覚えておきたい技術」という本のサンプルコードが動きません
本に書いてある通りに設定しても実行しようとすると意味の分からないエラーコードが16個ほど出てきます
同じ症状を経験した事のある方がいらっしゃいましたら解決方法を教えて頂けないでしょうか

980 :デフォルトの名無しさん:2011/10/18(火) 23:19:17.15
わかりづらいと自覚してるならちゃんと説明する努力くらいしたらどうだ?

981 :デフォルトの名無しさん:2011/10/18(火) 23:22:59.86
>>979
出てきたエラーコードを一行一行読んで対応すればできますよ

982 :デフォルトの名無しさん:2011/10/19(水) 00:08:02.96
そうはいかない場合もあるけど
初心者にはキツイんじゃないだろか?
初心者が読む本でもないしなにか別の本を探してみたらどうだろうか?

983 :デフォルトの名無しさん:2011/10/19(水) 00:10:27.93
「意味の分からないエラーコード」だけで読んだ人が理解できると考えるような頭じゃ
本を変えたって結果は一緒だろ

984 :デフォルトの名無しさん:2011/10/19(水) 00:13:37.42
まあ、とりあえずサンプルコードでエラーが出てくるのは回避してやれって感じだが・・・w
しかし、いきなり分厚い本かったな
なにかチュートリアル形式でその番号順に進めていくだけで何か作れるような本にしとけよ

985 :デフォルトの名無しさん:2011/10/19(水) 00:16:51.11
今回は諦めます、失礼しました

986 :デフォルトの名無しさん:2011/10/19(水) 00:19:03.71
つーかマルチポストだろこいつ
スレ違いなのにいろんなとこで同じ質問してるぞ

987 :デフォルトの名無しさん:2011/10/19(水) 01:07:07.64
>>979
あの本はvc10を考慮してない気がするので、サンプルは諦めるんだ。

で、コンソールでもいいのでSinとCosでアフィン変換書いて点を回してみるんだ。
色々わかるから。

回転拡大縮小は男のロマンだ!(キリッ

988 :デフォルトの名無しさん:2011/10/19(水) 15:01:05.42
ありがとうございます
ポリゴンの一枚絵くらいなら出せるのでサンプルコードを参考に自力で作りながら勉強してみます

989 :デフォルトの名無しさん:2011/10/19(水) 15:27:35.10
vs2010用のをネットでダウロードできるじゃない
ここでsin cosアフィン変換が突然でてくる意味はわからんけど

990 :デフォルトの名無しさん:2011/10/19(水) 19:17:40.30
>>989
荷物くんとか爆弾娘とかは、画面見て逆算すれば割りと作れるもんだ。効率は置いといて・・・。

しかし、拡大回転縮小は知らなければ推測では絶対わからん。
なので、アフィン変換楽しいのでやってみれと書いたのだぁ。
三角形回転すればシューティングとか夢膨らむよ。

っていうか、VC10用のサンプル出てたのか。

991 :デフォルトの名無しさん:2011/10/19(水) 20:06:15.10

ゲームプログラマになる前に覚えておきたい技術
 本書CD-ROM収録のサンプルで動作がうまくいかない場合、以下の修正版をダウンロードしてお試し願います。
http://www.shuwasystem.co.jp/support/7980html/2118.html


992 :デフォルトの名無しさん:2011/10/19(水) 20:31:48.50
>>990
座標変換なんて理系なら必修だろ
大学1年で間違いなく一度は証明させられる


993 :990 忍法帖【Lv=1,xxxP】 :2011/10/19(水) 20:57:50.29
工業高校卒で数2までしかやってない俺涙目。
しかも証明問題で正解したことがないっていう・・・。Orz

あー、そだ。そろそろ次スレの季節じゃないか?

994 :デフォルトの名無しさん:2011/10/19(水) 21:15:54.80
ん?回転くらいなら高校数学の範疇じゃね??
数II + 数C かな?
三角関数は一番好きだったとこだから、Direct3Dも楽しいよ。

995 :990 忍法帖【Lv=1,xxxP】 :2011/10/19(水) 21:18:34.67
>>994
羨ましいぜ。=D

996 :923:2011/10/19(水) 21:21:12.22
3次元の回転関数を高校でやってたら、その高校はとてつもない進学校だと言える
2次元の回転行列だったら普通

997 :デフォルトの名無しさん:2011/10/19(水) 21:21:36.40
名前なおし忘れた死にたい

998 :デフォルトの名無しさん:2011/10/19(水) 21:28:46.24
イキロ!!

999 :デフォルトの名無しさん:2011/10/19(水) 22:01:10.78
終了

1000 :デフォルトの名無しさん:2011/10/19(水) 22:01:54.15
1000なら来年DirectX12が出る

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

242 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)