【C++】 DirectX初心者質問スレ Part40 【C】©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/09/25(日) 14:43:57.34ID:3wiQalb8
回答する人も、質問する人も必ず読んでください

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

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

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


【C++】 DirectX初心者質問スレ Part39 【C】
http://echo.2ch.net/test/read.cgi/tech/1418438785/

>>2リンク
2016/11/27(日) 03:56:51.15ID:heIG8JcR
>>199
遅くなりましたがありがとうございます
201デフォルトの名無しさん
垢版 |
2016/11/27(日) 17:01:58.60ID:Q/59TbJy
文字列 buf を入力とし、buf を空白で分割する。
空白で分割した場合の数を返り値に、
分割した文字列のそれぞれのポインタを,charへの
ポインタの配列へ代入して返す関数を作成せよ。

int split(char buf[], char *out[]);

これ作れる神いませんか?
2016/11/27(日) 17:05:46.20ID:CC34oqbC
なぜここできく
2016/11/27(日) 17:06:07.94ID:5qBhLNsq
>>201
istringstreamやstrtokを使えば比較的容易に作れるんじゃまいか?
2016/11/27(日) 17:09:04.47ID:ngTSc2Wz
int split(char buf[], char *out[])
{
int c = 0;
for(char *p=strtok(buf,' '); p; p=strtok(p+1,' '))
out[c++]=p;
return c;
}
試してないけど
205デフォルトの名無しさん
垢版 |
2016/11/27(日) 17:12:09.38ID:Q/59TbJy
>>202
ごめんなさいよく見たらスレチでした
206デフォルトの名無しさん
垢版 |
2016/11/27(日) 17:13:19.77ID:Q/59TbJy
連投すいません&返答くださった方ありがとうございました
2016/11/28(月) 14:41:51.80ID:TfUhzTaG
DirectXMath.hをインクルードしているのですが
識別子XMFLOAT3が定義されていませんと出ます
なにか別にインクルードすべきものがあるのでしょうか?
visual studio 2015 communityです
208デフォルトの名無しさん
垢版 |
2016/11/28(月) 14:43:29.94ID:TfUhzTaG
DirectX12です
209デフォルトの名無しさん
垢版 |
2016/11/28(月) 15:30:57.06ID:msYXnjQ5
#ifndef XMFLOAT3
struct XMFLOAT3 {
float x;
float y;
float z;
};
#endif
2016/11/28(月) 15:34:31.41ID:qOUBWjRD
Windows.hはインクルードした?
2016/11/28(月) 16:01:26.18ID:TfUhzTaG
>>209
それでもできました。ありがとうございます。
しかし、できればDirectXMath.hをインクルードする方法でやりたいです。
参考にしているサイトがその方法なので
>>210
してあります
2016/11/28(月) 16:06:56.12ID:qOUBWjRD
足りないんじゃなくて余計なものを入れてるんじゃないか?
2016/11/28(月) 16:38:27.37ID:TfUhzTaG
えー、何回かリビルドを繰り返していたら治りました
大変ご迷惑をおかけしました
2016/11/28(月) 16:57:19.54ID:C9tEXsrv
あるあるw
2016/11/28(月) 16:59:31.45ID:kmgUcgPq
.pchを消すのは常識
2016/11/28(月) 22:20:21.19ID:QcR2IcGy
>>209
その#ifndef意味ないだろ
217デフォルトの名無しさん
垢版 |
2016/11/30(水) 02:18:16.55ID:WhaKofQb
ある
218デフォルトの名無しさん
垢版 |
2016/11/30(水) 02:33:40.01ID:PeC/aWZc
http://imgur.com/a/XVI2u.jpg
2016/11/30(水) 02:47:33.50ID:favm3NhS
>>217
あると言うなら説明してみろよ
2016/11/30(水) 19:59:59.63ID:nzjQqOB4
DirectX11で動的リンクを使うように変えるとうまく表示できなかったので出力を見てみると頂点シェーダのコンスタントバッファスロット1が96byteなのに64byteしか入ってないという警告が出てました
サイズがおかしいだけならいいのですが同じシェーダーしか使ってないのにも関わらず96byteが160byteになったり96byteになったりします
Visual Studio Graphic Analyzerでシェーダーファイルを確認しても96や160という数字がありませんでした
SM5.0や動的リンクを使うと必要な量が変動したりするのでしょうか?
221220
垢版 |
2016/12/01(木) 02:44:19.68ID:fJf0Drwy
いろいろ試した結果動的リンクの設定がうまくいっておらず処理がおかしくなっていたようです
222デフォルトの名無しさん
垢版 |
2016/12/02(金) 04:06:19.85ID:iaQwEbwm
プリミティブの法線を変更して両面に照明効果がでるようにしたいんですが
どう値を設定すればいいんでしょうか?
v[0].nz = -1.0f;
v[1].nz = -1.0f;
v[2].nz = -1.0f;
v[3].nz = -1.0f;
223222
垢版 |
2016/12/02(金) 04:17:37.07ID:iaQwEbwm
要するにこれは該当プリミティブが今どの方向を向いているかを算出して
そこから法線を(照明効果を有効にする面を)求める必要があるという事ですかね?
2016/12/02(金) 10:47:19.70ID:0IfQ/0op
test
2016/12/02(金) 10:50:54.56ID:8KVLBNXW
シェーダ上で絶対値取るのではだめなん?
法線をどうこうするのでは無理な気が
2016/12/02(金) 10:51:30.78ID:0IfQ/0op
照明の計算では
光源への方向とほうせんの内積をとるが箇所があるが
そこにabsかませばいーんじゃないかな
2016/12/02(金) 12:56:03.88ID:KtN9vVHB
カリングに引っかかって計算されないような?
普通に片面2枚書いたほうが楽?
2016/12/02(金) 14:03:38.77ID:0IfQ/0op
まあカリングoffは当たり前
2016/12/02(金) 14:05:43.45ID:LG3SGwVv
いやカリングは関係ないでしょ
あれは画面との角度だから別問題でしょ
今言ってるのは光源との角度でしょ
2016/12/02(金) 14:08:45.44ID:LG3SGwVv
つまり、裏側から光が当たっているのに
まるで手前に光源があるかのようにレンダリングするという
気持ちの悪いことがしたいんでしょ
なんでそんなことがしたいのかは謎だが
2016/12/03(土) 01:12:55.59ID:xAW6Jx/O
>>230
両面ポリは指定できるくせに光源があると破綻するってほうが感覚的にはおかしい気もする
232222
垢版 |
2016/12/03(土) 10:43:34.87ID:TV4EJMVW
すいません。質問者です。
両面を単に表示したいなら二枚描画するのが簡単だとは思ったのですが
一枚のみでもむりやり照明効果つける事は可能なのかなと疑問に思いまして。
ただ何か作る時は単純に表と裏、二枚表示するのが簡潔でいいですね。
2016/12/03(土) 15:54:14.55ID:iU+ignEA
>>231
カリングなんてただのフェイクですし
2016/12/03(土) 15:55:13.55ID:iU+ignEA
>>232
一枚だけ前後でカリングon/offじゃいかんの
235デフォルトの名無しさん
垢版 |
2016/12/03(土) 17:20:48.29ID:I8LztAU2
質問なんですけども
複数メッシュが有る場合ってメッシュ毎に描画が一般的?
ちなみにFBXSDKしようしております
2016/12/03(土) 17:22:09.50ID:TtP1/9i/
俺もカリングoffで良いと思ったが、法線は向こう向きなのでライティングはどうなるんだろって思った
237デフォルトの名無しさん
垢版 |
2016/12/03(土) 18:19:44.49ID:iU+ignEA
とりあえずやってみろ
2016/12/03(土) 18:37:44.64ID:m/bMJWUU
カリングオフにして
ピクセルシェーダーで法線にVFACEかけてる

https://msdn.microsoft.com/ja-jp/library/bb509647(v=vs.85).aspx
2016/12/03(土) 18:45:20.76ID:gsIq6P2V
やっぱり片面2枚だなって想う
ディフューズのuvひっくり返して表示してます面倒なのではデザイナも多分頂けない
2016/12/03(土) 20:39:24.18ID:n4qAjcrC
>>235
一般的なのは多分マテリアル毎
2016/12/03(土) 21:32:39.17ID:TtP1/9i/
ステートの切り替えにコストがかかるから、マテリアル毎が普通だね
2016/12/03(土) 21:38:38.09ID:7Y/68QXj
マテリアルが増えてくると結局オーバーヘッドが嵩んでくるから、
ディファードレンダリングのほうがお得になってくるのかね?
2016/12/03(土) 22:31:34.72ID:r47XRuJ6
lines描画で、頂点位置のピクセルであることを、ピクセルシェーダに伝える方法あります?1passで。
2016/12/03(土) 22:52:15.08ID:7Y/68QXj
1パスは厳しいなぁ・・・
2016/12/04(日) 00:32:11.69ID:tP3D55j/
>>243
何がやりたいんだ?
2016/12/04(日) 03:50:02.59ID:eQT8AG3c
ベクタースキャンディスプレイみたいに頂点部分を明るくするとか?
2016/12/04(日) 07:47:06.30ID:w27m7Q2w
>>245
いくつかの頂点位置に2パス目でビルボードを描きたい。
そのためにpsからuavに位置を出力しようとしてます。
vsからuav出力できない環境です。
2016/12/04(日) 12:09:03.58ID:2oWP1KKC
結局半透明合成時のZソートの自動化はどうなったの?
Aバッファか何か知らないが、DirectX側が自動でピクセル単位で
Zソートをかけてくれるようにするだとかしないだとかの
話があったようななかったような
2016/12/04(日) 12:21:08.10ID:SxgHpTya
その話はもう終わってる
2016/12/04(日) 13:35:37.09ID:I0xulVQO
>>248
12でサポートって話だったけど、どうなったんだろうね?
まぁいずれにせよ、12自体が11世代とHWは変わらないことを考えると、
HWアクセラレートでリーズナブルにはできないだろうね。
2016/12/04(日) 14:11:10.07ID:pFGLCkvX
>>247
僕そういうの小手先で解決しない派
2016/12/04(日) 14:21:41.30ID:JMHjI5uO
>>248
そんな話あったのか
めっちゃ欲しいですぅ……
253デフォルトの名無しさん
垢版 |
2016/12/05(月) 00:02:25.15ID:zX+H7XFN
DirectX12を勉強しているのですが、
for (UINT i = 0; i < RTV_BUFFER_NUM; ++i) {
//スワップチェインからバッファを受け取る
hr = g_swapChain->GetBuffer(i, IID_PPV_ARGS(&g_renderTargets[i]));
//以下略
の所で、アクセス違反が発生したのですが、原因がわかりません。
iが配列の範囲を超えたのかと思いましたが、RTV_BUFFER_NUM = 2 で、g_renderTargets
の要素数も2なので範囲を超えることはないと思うのですが、
他に原因として何が考えられるでしょうか?
2016/12/05(月) 13:45:22.87ID:Y7gXLjvG
そんなもんVSのデバッグ機能で普通にわかるだろ
変数の中身くらいちゃんと調べろよw
255デフォルトの名無しさん
垢版 |
2016/12/05(月) 15:36:37.46ID:dF177W8B
>>253
ぬるぽ
256デフォルトの名無しさん
垢版 |
2016/12/05(月) 22:47:25.15ID:4IptZuBG
ちらほら12の話も出始めてきたね
257デフォルトの名無しさん
垢版 |
2016/12/05(月) 23:00:41.60ID:zX+H7XFN
>>254 >>255
g_renderTargets が原因でした
よく見ていませんでした。失礼しました
258デフォルトの名無しさん
垢版 |
2016/12/09(金) 00:26:54.45ID:WzSsU1Dc
DirectX11からチュートリアルがないから手も足も出ないんだけど、どうやって勉強すればいいの?
俺の作るゲームなんてDirectX9でも十分なんだが、DirectX12でブイブイ言わせたいんだ。
259デフォルトの名無しさん
垢版 |
2016/12/09(金) 00:28:02.18ID:WzSsU1Dc
やっぱ何でもない。
Windows7だったわ。
260デフォルトの名無しさん
垢版 |
2016/12/09(金) 00:29:11.53ID:WzSsU1Dc
やっぱ何でもなくないわ。
12は無理でも11はいけるだろ。
11でブイブイ言わせたい。
DirectX12ってWindows10からだったよな?
2016/12/09(金) 01:37:29.53ID:58iScSw3
11は9よりは幾分マシだぞ
おぬぬめ
2016/12/09(金) 02:03:27.47ID:s0CstlLJ
>>258
公式のならこの辺から
https://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef

ストアアプリで良いなら日本語のチュートリアルもある
https://msdn.microsoft.com/windows/uwp/gaming/index

SDK統合後のドキュメントはやる気無さすぎなのでとりあえずDirectX SDKも入れとくべし
そっちのドキュメントの方がはるかに優秀(わかりやすいと言わんが)


DirectX 12のことは忘れろ
2016/12/09(金) 02:34:52.54ID:WzSsU1Dc
>>261-262
ありがとう!
読んでみるぜ!
264デフォルトの名無しさん
垢版 |
2016/12/10(土) 11:01:55.92ID:Z/0/wf6x
9から11だとテセレーションとか出て来るから随分変わるんだけど
11から12ってそんなに変わらんよな。
どうやったら11より早くかけるんだろうな・・
2016/12/10(土) 11:49:12.52ID:zn51y+oU
それが12の難しい部分だろうな
11より遅くなるなら12にする意味ないしな
単に動かすだけなら何とかなると思うが
11よりも速く動かすとなると
OSやドライバの細かな動きまで把握しとかないと
最適化できないんじゃないかな
何も考えずにテキトーに書いたら11より遅くなったっていう報告もあったし

11が裏で自動でやっていたことを自分で書かなきゃダメなってのがね
果たして俺らの知識量と技量で11のMSのコード以上のものが書けるんだろうか
素人は速くするためのノウハウとか雛形が出回るまで
手を出さないほうが良いんじゃないかと思うね
手探りで最適解を探すのはかなり大変だし、Win10でしか動かんしね
266デフォルトの名無しさん
垢版 |
2016/12/10(土) 11:51:10.25ID:qQjpy7Dv
13いつ出んの
はよ
2016/12/10(土) 12:52:19.50ID:fzPfqbMK
>>265
うん、はっきりいって割りに合わない
2016/12/13(火) 11:58:50.04ID:igjLAbdx
directXってチップ上に関数があるからDirectXのような
リアルタイム3Dライブラリーを作るには結局
DirectXを使わないといけないからパフォーマンスでは
directx未満の物しかつくれないんですか?
2016/12/13(火) 12:16:42.11ID:hu4l98Ut
未満ではない
2016/12/13(火) 12:32:19.38ID:igjLAbdx
未満ではないとすると以上になりますが
2016/12/13(火) 13:39:11.54ID:ldvtmHT6
AMDのOpenGPUってあったろ
参照してみれば?
まあこの手の質問してくる奴って
程度が決まってるから見もしないんだろうけど
2016/12/13(火) 15:35:44.85ID:igjLAbdx
程度が決まってるとは知りませんでした。
そんなことがわかるなんてあなたは天才ですね。
273デフォルトの名無しさん
垢版 |
2016/12/13(火) 15:44:17.95ID:wETuuVVa
匂いが漂ってますし
2016/12/13(火) 16:16:56.00ID:igjLAbdx
匂いまで感じるとは妄想力が素晴らしいですね。
さすがマイクロソフトのゲーム開発ライブラリーに詳しいだけあります。
275156
垢版 |
2016/12/13(火) 20:01:48.28ID:qlaiv3LO
directx12の開発をノートでやってる人いる?
いたらおすすめのノートpcおしえてくんろ
276デフォルトの名無しさん
垢版 |
2016/12/13(火) 21:10:08.00ID:64KEq9+3
ライトの方向ってライトの方向かよ。
普通光の向きだと思うだろうがハゲ。
2016/12/13(火) 22:52:48.47ID:xy+MDmye

前の話題のことか?
ちゃんと光源への方向って書いてるけど・・
2016/12/13(火) 23:09:29.73ID:Xh+e0kWD
いやま、普通、点光源でも平行光源でも
「光の向き」と「光源への方向」は単に符号が反対になるだけだから
会話の上ではさしてどちらでも問題ないわな
2016/12/13(火) 23:37:13.91ID:90meTMDV
>ライトの方向ってライトの方向かよ。
意味分かんない… ライトの方向ってこと?
2016/12/13(火) 23:39:13.82ID:AlD2ABgf
lightの方向?
rightの方向?
281デフォルトの名無しさん
垢版 |
2016/12/14(水) 02:03:57.49ID:HaZaHK9N
>>277-279
気軽に愚痴ってごめん。
正確に書くと、

平行光線のライトを指定するためのベクトルって、原点からライトへのベクトルかよ。
普通は光線の向きを持った単位ベクトルだと思うだろハゲ。

知ってる人同士の会話ではあまり問題にならないのかもしれないが、
オブジェクトがずっと真っ黒で困ってた。
チュートリアルのサンプルと説明をもう一度じっくり読んでやっと解決した。
2016/12/14(水) 02:30:13.88ID:fQ/5Slqg
>>281
おまえ馬鹿すぎだわ
2016/12/14(水) 05:29:05.07ID:4M3UBTBr
原点関係なくね?
2016/12/14(水) 07:34:16.88ID:mgFKDVAs
次はEyeベクトルで詰まりそうだなw
2016/12/14(水) 08:26:04.45ID:CHM7IDYE
>>47
遠回しなXboxさんdis
2016/12/14(水) 08:32:28.02ID:CHM7IDYE
>>253
スワップチェインを初期化してない
そもデバイスを初期化してない
デバイスから無理やりスワップチェインをクエリで取った

てかスワップチェインに複数のスワップを確保させていないんだと思われる。
287デフォルトの名無しさん
垢版 |
2016/12/14(水) 17:17:24.33ID:HaZaHK9N
>>284
そういえばEyeベクトルでは引っかからなかった。
何でだろうな。
Eyeは多分ベクトルではなく座標で考えてたんだと思う。
288デフォルトの名無しさん
垢版 |
2016/12/16(金) 00:50:11.01ID:H5MzS4I3
フォグのかけかた教えてください
DirectX10です
2016/12/21(水) 14:29:50.98ID:LwztW9Gj
おめえら!
フォグのかけ方の話しろや!

まずは、フォグマップを作ります
↓次よろ
2016/12/21(水) 14:36:22.63ID:nJMKQe1t
終了
2016/12/21(水) 14:41:48.50ID:X85ACbqH
とりあえず英語の勉強をします
292デフォルトの名無しさん
垢版 |
2016/12/22(木) 19:45:32.23ID:nvYqGsNN
クリスマスもDirectXだよな?
2016/12/22(木) 20:18:35.84ID:tdZaPcfE
当然だ
2016/12/22(木) 21:38:31.61ID:igbmVVlV
お正月も?
2016/12/22(木) 22:24:39.06ID:3YXXukyT
当然だ
296デフォルトの名無しさん
垢版 |
2016/12/22(木) 22:56:50.40ID:nvYqGsNN
それくらいの心意気が無いとdirectxなんて使いこなせん
>>288
とりあえず難しい事は抜きにしてピクセルシェーダー内で
頂点の色に白まぜてみたら?視点からその頂点までの距離計算して
距離に応じて白混ぜる割合変えたり
2016/12/23(金) 09:13:29.03ID:Bl+qvNSy
マスターDirectXカッコイイぜ


unity使うわ
298デフォルトの名無しさん
垢版 |
2016/12/23(金) 22:36:25.11ID:+V847GJq
太陽とか月とか電球とか光ってるものってどうやって表現すればいいの?
2016/12/23(金) 23:19:59.93ID:404u70BF
影を付けずに発光色で描画すればよろし。
ぼや〜っとさせたいなら、マルチパスレンダリングでぼかした絵に係数を掛けて加算合成するよろし。
2016/12/23(金) 23:40:52.82ID:obdvvzWA
まあ、月に関しては普通のマテリアルだけどね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況