X



【C++】 DirectX初心者質問スレ Part40 【C】©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん 転載ダメ©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リンク
0840デフォルトの名無しさん
垢版 |
2017/09/30(土) 19:02:31.09ID:lbDBR/Ab
スレタイ読んでからこのスレ頭から読むとひでぇな
偉そうなのがずっと文句言うだけのスレという

そら廃れますわ、まぁおかしいのが一人、ずっと常駐しているだけかもしれないが
0841デフォルトの名無しさん
垢版 |
2017/09/30(土) 19:07:27.65ID:4rbkY8QZ
>>835 がトドメを刺した感
0842デフォルトの名無しさん
垢版 |
2017/10/05(木) 08:18:45.16ID:x43hX61A
>>836
答:MediaFoundation
メディアGUIDハードコーディング
0843デフォルトの名無しさん
垢版 |
2017/10/05(木) 08:23:23.06ID:x43hX61A
愚痴だがWindowsのカメラフレームワークは、なんであんなに使いにくのか。
デバイスから取り出した映像と音源のストリームをそのまま寄越せといいたい。
0845デフォルトの名無しさん
垢版 |
2017/10/06(金) 13:10:55.44ID:tpun3BeY
すいません教えてください。D3DX11CreateShaderResourceViewFromMemoryを使って、テクスチャの画像更新をしているんですが遅いんです。
FPSは1桁台になっています。テクスチャのサイズは1024×1024です。他で高速に処理できる方法を教えてください。よろしくお願いします。
0846デフォルトの名無しさん
垢版 |
2017/10/06(金) 13:40:18.39ID:40ZvkFqX
予め画像を全部GPUに送り込む
画像の中味をCPUで触るのならば、定数バッファでレバ利かせる。
0848デフォルトの名無しさん
垢版 |
2017/10/06(金) 14:33:31.40ID:tpun3BeY
>>847 了解しました。UpdateSubresourceを調べてみます。
0849デフォルトの名無しさん
垢版 |
2017/10/06(金) 14:40:11.29ID:Io3aoX13
>>846
お前さ、
自分の回答がズレズレなのわかってる?それがわからないなら
迷惑だから答えるのやめろよ
0854デフォルトの名無しさん
垢版 |
2017/10/10(火) 19:12:35.90ID:htUB1pET
色々なわけがあって、dx9で個人制作のゲーム作ってるんだけど、dx9の作品でゲーム業界行けるかねぇ
unity,ueのが断然良いってのはわかってるんだけどさー
0856デフォルトの名無しさん
垢版 |
2017/10/10(火) 20:35:30.51ID:1r+ihQ9l
vista以降DirectSoundの中はソフトウェアでやってるって聞いたけど回避策はないのかなあ
0857デフォルトの名無しさん
垢版 |
2017/10/10(火) 23:13:05.04ID:2hrMSkCE
ソフトウェアでなんか困るのけ?
レイテンシをタイトに突き詰めたいとかならWASAPIで自前で頑張るしかないんじゃね
0861デフォルトの名無しさん
垢版 |
2017/10/12(木) 20:13:58.87ID:TOfXJpFs
WASAPIネタで便乗

排他モードで複数ソースを同時発音するには
自力でミキシングするしかない、という理解で正しい?

ていうかスレチ?
0862デフォルトの名無しさん
垢版 |
2017/10/12(木) 20:21:11.63ID:KwqHDVjm
サウンドカードが一個ならたぶん排他モードで専有しちゃうと思う
2つあれば1つを共有モード
1つを排他モードとかできるかもしれない

やってみないと

普通に作り混んでるとハードウェア列挙したりAPI選べるから行けそう
0863861
垢版 |
2017/10/12(木) 21:51:11.16ID:TOfXJpFs
なるほどー、たしかに複数デバイス使っての同時発音なら
出来そうだけど流石にニッチすぎるかな?w

自分はおとなしく共有モード使っときます・・・
0864デフォルトの名無しさん
垢版 |
2017/10/14(土) 10:04:55.46ID:lNs4t54f
質問です。
DirectInputでゲームパッドをEnumDevicesしたのですが
引数をDIEDFL_ATTACHEDONLY | DIEDFL_FORCEFEEDBACK にすると
上手く取得できません。
引数をDIEDFL_ATTACHEDONLY のみにすると上手く取得できます。
という事はこれは自分が使ってるゲームパッドのフォースフードバック機能を
DirectInputから認識できないという事になるでしょうか?
パッドはEDGE301というものです。
0869デフォルトの名無しさん
垢版 |
2017/10/14(土) 13:44:28.39ID:lNs4t54f
>>865
そうなんですか?
DIEDFL_ATTACHEDONLYにすれば一応取得できて
方向キーと一部のボタンだけの情報はDirectInputから取得もできました。

XInputの方も試しましたが、どうしてもLT,RTの情報が取得できません…
XINPUT_GAMEPAD 構造体のbLeftTrigger, bRightTriggerも変化なく
ボタンの、XINPUT_GAMEPAD_LEFT_THUMB, XINPUT_GAMEPAD_RIGHT_THUMBも変化無しでした。
LB,RBの方はボタンのXINPUT_GAMEPAD_LEFT_SHOULDER, XINPUT_GAMEPAD_RIGHT_SHOULDERで取得できるのですが…
LT,RTの取得は無理なんでしょうか。
0870869
垢版 |
2017/10/14(土) 13:53:26.01ID:lNs4t54f
すいません。自分の勘違いでした。
XInputからはbLeftTrigger, bRightTriggerの値で取得できました。
お騒がせしました。
0873デフォルトの名無しさん
垢版 |
2017/10/14(土) 14:45:59.43ID:lNs4t54f
やはりこのパッドのフォースフィードバックの機能は
DirectInputからは見えないようです。
どのコードを動かしてもDIEDFL_FORCEFEEDBACKを指定すると
EnumDevicesでこけます。
という事で大人しくDInputから動かそうと思います。
0874デフォルトの名無しさん
垢版 |
2017/10/14(土) 14:47:22.44ID:lNs4t54f
× DInputから動かそうと思います。
〇 XInputから動かそうと思います。

お騒がせしました。
0875デフォルトの名無しさん
垢版 |
2017/10/15(日) 08:25:46.90ID:j9ytzH6V
今ってXInput非対応のゲームコントローラどのくらい残ってるんだろう。
もう無視してよいくらいのレベルの話?
市販ゲームだとXInputのみ対応って結構あるよね。
0876デフォルトの名無しさん
垢版 |
2017/10/15(日) 12:36:58.88ID:qhZC2lPC
>>875
Amazonとかではまだまだ売ってるよ。アナログスティックの無いシンプルなやつとかね
でも昔と比べると減った(XInput対応が増えた)から、
キーボードに対応してればゲームパッドはXInputのみ、でも問題ないかと
0877デフォルトの名無しさん
垢版 |
2017/10/16(月) 12:11:56.65ID:vBbvYvxJ
>>861
たぶん正しい。
問題の根底にあるのは、
・ソースのサンプリング周波数のバリエーション
・再生デバイスの再生周波数
当たり前だが、再生周波数は一つを選択する必要
つまりリサンプリングは避けて通れず、リサンプリングするならば、ボリュームやイコライザーもソフトウェア処理する方が多様性(みんな大好き♥ダイバシティ)が増すので応用なら好ましい。
0878デフォルトの名無しさん
垢版 |
2017/10/16(月) 12:24:15.65ID:VQErYyq9
なんかカメラの質問に人気があるのね
カメラで盗撮したいなら、Linuxのが簡単だと思うの
0879デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:25:01.04ID:GdITaHh3
>>877
と、思いきや
基本的にWASAPIは共有モードでもサンプリングレートの変換は自前でするもの
デバイスの共有モードのサンプリングレートと再生したいソースのレートが合ってない場合は
自前で変換してから渡すのが普通
IAudioClockAdjustmentもあるけど音が悪いのと対応してないサンプリングレートもあるので
0880デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:56:59.04ID:JxIRdCj7
>>879
IAudioClockAdjustmentは微妙なクロックのずれを補正するためのもので、所謂サンプリングレート変換は想定外だよ。
共有モードで良いなら、XAudio2でも使えば良いんじゃないかな。
0881デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:04:55.64ID:IoNkIxpF
Windowsの機能でサンプリングレート変換するなら、Media FoundationのResampler MFT
XAudio2のサンプリングレート変換は音が悪かったはず
0883デフォルトの名無しさん
垢版 |
2017/10/21(土) 09:52:38.26ID:vdRTfJ1I
ここの住人で自分のコード公開とかしてる人いる?
0885名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:00:13.78ID:X89+L6eo
DirectSoundなんですが
DSBUFFERDESC::dwFlagsにDSBCAPS_CTRLFXを加えると
IDirectSound8::CreateSoundBuffer()でINVALIDPARAMが返ってきて失敗します…
DSBCAPS_CTRLFXは指定できないのでしょうか?
DirectSoundCreate8()のところで指定するデバイスのミスとかでしょうか…?
一応、DSBCAPS_CTRLFXを外せば普通に動きます。
0886デフォルトの名無しさん
垢版 |
2017/10/25(水) 19:02:15.61ID:Xt9K9uyp
>>885
getdevcap
0887デフォルトの名無しさん
垢版 |
2017/10/26(木) 08:31:02.36ID:DZBV7Mqr
面白い現象に出くわした。
Intel内蔵グラフィックスとnVidia
環境がd3d11、x64、7
同じバイナリを使って深度バッファシャドウで影をだしたら、影のでき方が違う。
インテルだと右に影ができる。
nVidiaだと左右に影がでる。

射影行列かラスタライザの生成座標(z成分)か出力マージャが深度値を出す部分に機種依存する所があるみたい。

不思議…
0889デフォルトの名無しさん
垢版 |
2017/10/26(木) 09:46:01.63ID:5HwalKyO
>>886
GetDeviceCaps()は
IDirect3DとIDirect3DDeviceにしか無いみたいなのですが。
それからIDirectSound8とIDirectSoundBuffer8の方にはGetCaps()がありますが
IDirectSoundBuffer8::GetCaps()の方はバッファ作成時に指定したフラグが何かだけが取得できるようです(dwFlagsに指定したものがそのまま取得できるようです)。
IDirectSound8::GetCaps()の方にはエフェクト関係の能力値は無いような気がします。
どこで調べれば良いのでしょうか?
0890デフォルトの名無しさん
垢版 |
2017/10/26(木) 14:16:23.49ID:5HwalKyO
自己解決しました。
dsbdesc.dwFlags = DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFX;
このフラグ指定でいけました。
DSBCAPS_STATICとDSBCAPS_CTRLFREQUENCYとDSBCAPS_CTRLFXは同時指定できないみたいですね。
今回はDSBCAPS_STATICを同時に指定してるのが原因でした。
0891デフォルトの名無しさん
垢版 |
2017/10/26(木) 15:36:50.90ID:Bl1h7ruS
インテルiGPUはちょくちょく仕様外の挙動するから困る
俺はテクスチャフィルタリングで悩んだ
0892デフォルトの名無しさん
垢版 |
2017/11/20(月) 21:25:05.41ID:OdK/uj9I
DirectX 9 シェーダプログラミングブック
古本探しまくったが、CD付きが売ってない。
なくても勉強する上で問題ない?
0893デフォルトの名無しさん
垢版 |
2017/11/24(金) 22:58:36.59ID:XYQirtg4
>>892
なくても大丈夫。
昔のVisualStudioのアプリウィザードベースだから簡単に実行もできないだろうし。
今給黎本はとにかく本の内容が充実してるし、それ読めば十分。
0894デフォルトの名無しさん
垢版 |
2017/12/03(日) 18:44:30.00ID:qMNlGUHN
質問があります。
当方、vvvvというフリーのソフトでシェーダーを書こうとしているものですが、
HLSLに関する質問です。

次のようなエフェクトを考えています。
@ビデオからの入力をリアルタイムに取る
Aそれをパーティクル化する
Bパーティクルをいろいろ動かす

@とBはどうにでもなるのですが、Aをどうやって実践したらよいかが色々調べましたが
分かりません。

テクスチャをサンプリングして、それをピクセル単位にスケーリングして(ここまではできます)、
それを分解するというか、とにかくテクスチャからパーティクルを生成したいのですが、
考え方等を教えて頂けないでしょうか。

よろしくお願いします。
0895デフォルトの名無しさん
垢版 |
2017/12/03(日) 19:31:21.97ID:goJgyMoW
考えるな
感じるんだ
0897デフォルトの名無しさん
垢版 |
2017/12/03(日) 20:19:00.98ID:qMNlGUHN
>>896

要するに映像効果としては、画像をピクセルレベルで分解して好き勝手にいじりたいんです。
ダンサーさんとのセッションか何かで、動いているダンサーさんをパーティクル上にして縦横無尽に動かしたら、
面白い効果が得られるのではないかと思いまして。

ここ↓でやっているようなことを、HLSLの文法で実装したいのです。つまりテクスチャの対応する
ピクセルの色を取得したいのです。
https://mike-neko.github.io/blog/metal-image/

ですので、考え方というよりは↑のサイトのコードのHLSLへの翻訳をしたい、ということです。
0899デフォルトの名無しさん
垢版 |
2017/12/03(日) 21:03:11.39ID:qMNlGUHN
すみません、初心者なもので、HLSLの文法がよく分かっていないのです。
例えばこの一文にしても、

particles[index].color = image.read(id);

このままじゃHLSLでは使えませんよね、
じゃあ、済みません、一つだけに質問を絞って消えます。

上の変数particlesですが、Metalという言語において
元のテクスチャを格納したバッファだと思われます。
HLSLだと、サンプラーを使いたいテクスチャで定義することと同義だと思われます。

というかここまで書いてきて思ったのですが、要するにテキスチャを読みこむというのは、
文字通り画像を分解することじゃなくて、画像と同じスケールの板を用意して、それに画像の色を取得させて、
元画像をパーティクル化しているように見せている、ということですよね。

ですので、分からないのは、
particles[index].position = float4(id.x / (float)size.x, id.y / (float)size.y, 0, 1);
これをHLSLでどう表現するかです。変数パーティクルの後に配列[index]があり、
さらにpositionなるメソッド?が用意されている。ここでパーティクルが配置されているものと思われます。
とても直感的で分かりやすいですが、これをどうHLSLに翻訳するか、教えて頂けないでしょうか。
0900デフォルトの名無しさん
垢版 |
2017/12/03(日) 22:05:15.66ID:xSL5mF2a
DirectXしかわからないけど

入力で座標とどのピクセルを描画するかの情報を送る

頂点シェーダでパーティクルのポリゴン作る

ピクセルシェーダで入力情報をもとにテクスチャの1pxを描画

って感じだと思う
0901デフォルトの名無しさん
垢版 |
2017/12/04(月) 01:03:00.54ID:g/Dvecy1
シェーダコード見てみたけど100行ぐらいしかないやん
しかもシェーダなんて似たようなコードだし
リファレンス見ながら書き直してもたいしたことないだろ

「真性の馬鹿なので勉強の仕方がわかりません。答え教えてください」
こういう風にしか見えんわ
0905デフォルトの名無しさん
垢版 |
2017/12/04(月) 19:45:16.62ID:5zvUhAUl
馬鹿だから無理でした。

内容としては、

頂点シェーダで、テキスチャのサイズにテキスチャ座標をスケーリングしたものと同様の変数を
x座標、y座標ように2つ用意する



それをそのまま2つの配列にする



頂点座標のx成分、y成分にそれぞれ配列を代入する




確保していたテクスチャから色情報を取得してそれを頂点座標に代入



頂点座標を出力(ピクセルシェーダはスルー)

そうしたら、何も映りませんでしたが、入力していたメッシュをワイヤーフレームワイヤーフレームとか
ソリッドとかで表示できる機能がvvvvにはあるのですが、それをポイントにしたら
点が一つだけ表示されました。

書いていて情けなくなるくらい自分馬鹿だなあと思っています。
でも実現の方法が分からず・・・優しい方教えてください。
0909デフォルトの名無しさん
垢版 |
2017/12/05(火) 16:03:39.98ID:D/e4ygg6
とりあえず最低限の頂点シェーダだけです。配列index[],index2[]にはソフトウェアの方から、座標を任意個数リニアに出力してくれるノードを使っています。
入力してるメッシュは1つだけで、出力されてるのも1つだけなので、このコードをどういじってもせいぜい変形したメッシュにビデオ入力がそのまま映るだけです。目的としては320*240個のパーティクルを作りたいのですが、
ソフトウェア側でその数のパーティクルを用意するのでなく、単にその数の座標を入力しているだけの状態です。
struct vs2ps
{
float4 Pos : POSITION;
float2 TexCd : TEXCOORD0;

};
// --------------------------------------------------------------------------------------------------
// VERTEXSHADERS
// --------------------------------------------------------------------------------------------------

float index[320];
float index2[240];
vs2ps VS(
float4 PosO : POSITION,
float4 TexCd : TEXCOORD0

)
{
vs2ps Out;

PosO.x=index[TexCd.x * (ArrSize-1)];
PosO.y=index2[TexCd.x * (ArrSize-1)];


Out.Pos = mul(PosO, tWVP);
Out.TexCd = mul(TexCd, tTex);

return Out;
}
0910デフォルトの名無しさん
垢版 |
2017/12/05(火) 16:14:07.63ID:D/e4ygg6
あとPSとVSのバージョンは3.0までしかソフトウェアが対応していません。
DX9の環境です。
よろしくお願いします。
0912デフォルトの名無しさん
垢版 |
2017/12/06(水) 07:35:08.83ID:wUCWLeX9
その場合、単一のメッシュ(320*240)をピクセル毎になるように分割する、ということになるのでしょうか?
幸い、メッシュを任意個に分割するノードがvvvvにはあります。
0914デフォルトの名無しさん
垢版 |
2017/12/06(水) 17:04:03.53ID:wUCWLeX9
流石に潮時ですかね
スレ汚し失礼しました
ただ、具体的な回答があればもっと早く消えていたのですが。
残念です。
0915デフォルトの名無しさん
垢版 |
2017/12/14(木) 23:24:46.89ID:EX9aqF1y
このスレはバカしかいないからな
0919デフォルトの名無しさん
垢版 |
2018/02/05(月) 15:47:52.04ID:D7qesvRf
CreateCompatibleBitmapでメモリビットマップを作成し、
それに対してGDIのDrawTextで描画し、それを画面にBitBltするという、
昔からよくある手法で画面に大量の文字を描画する処理があるのですが、
DirectWriteに置き換えると文字を綺麗にできると聞きました。

CreateCompatibleBitmapなどの仕組みは残したまま、
メモリビットマップへのDrawTextの部分を置き換えることは可能でしょうか?
よいサンプルがあれば勉強してみたいのですが。
0920デフォルトの名無しさん
垢版 |
2018/02/05(月) 18:26:14.26ID:qXocenM+
>>919
GDIでTextOut/DrawTextやってる程度なら出力先をGDIとしてDirect2D上に描画

Direct2D and GDI Interoperability Overview
https://msdn.microsoft.com/en-us/library/windows/desktop/dd370971
Rendering DirectWrite
https://msdn.microsoft.com/en-us/library/windows/desktop/ff485855.aspx

文字単位で凝った処理してるならリンク先にもあるけどDrawGlyphRunというメソッド中心で調査されたし

リッチなレンダリング目的ならどの方法でやるにしても
既定だと基本的にGDI互換の方向で描画して大差無いので
IDWriteRenderingParamsを適切に設定する
0922デフォルトの名無しさん
垢版 |
2018/02/06(火) 12:56:29.36ID:HnlXhHfV
テクスチャに描画は知ってた方がよくね
0927デフォルトの名無しさん
垢版 |
2018/02/11(日) 18:35:56.75ID:3GTkA4HB
質問の目的は明確だし1レス目の回答で完了してるのに
どんだけバカが揃えばこんなうんこみたいな流れになるんだ...
0928デフォルトの名無しさん
垢版 |
2018/02/17(土) 11:36:46.23ID:0Y0wbDyD
頂点を射影変換して、さらにクリッピングまでされた頂点をテッセレーションで分割したいのですが、
パイプラインの流れ的に普通にはできません。

やれるとしたら、ジオメトリシェーダでプログラマブルにクリッピングして、
それをストリームアウトし、再度頂点シェーダから読み込んでテッセレーションするというやり方でしょうか?
プログラマブルなクリッピングが可能かどうかが問題ではりますが・・・。

もっといい方法があれば教えてほしいです。
0930デフォルトの名無しさん
垢版 |
2018/02/17(土) 15:15:17.47ID:zOfD1Lkw
4ヶ月ぶりに覗いたけど
相変わらずかそってんのな
amdのfetch4ってgatherredで効くの?
Sample()で4点フェチして自前でバイリニアすると(dx9のshadowmapのサンプル)
ちゃんと補完されるのに
gatherredだとモザイクみたくなるんだよな
コツ教えて
0931928
垢版 |
2018/02/17(土) 16:01:19.76ID:A6BmBrel
>>929
クリッピング後じゃないとダメなんです
0932デフォルトの名無しさん
垢版 |
2018/02/19(月) 15:18:33.91ID:LkkqjNZ1
ピクセルシェーダはピクセル単位だし
クリッピングされた頂点が欲しいというなら
これは不適当だ
アンタの言うとおり
ジオメトリで三角形分割して
ストリームアウトプットしか無いんじゃないか
0933デフォルトの名無しさん
垢版 |
2018/02/20(火) 12:16:25.68ID:/DCDJ0JE
何がしたいのか、サッパリわからん。
この説明だと、二次元に落とし混んだ後に三次元計算したい!と無理なロジックを考えとるように聞こえるの。
0934デフォルトの名無しさん
垢版 |
2018/02/20(火) 12:24:07.25ID:/DCDJ0JE
そもそも「クリップ」が何を、どのような結果を期待しているのか?がわからない。

「ワールド座標内から三次元に空間を切り取りたい」
だけならば、頂点シェーダで空間外にある頂点を捨てれば済む訳なんだが、
するとドメイン、ハルシェーダに流し込むべきプリミティブの整合がなくなる。

そうなるとジオメトリシェーダでプリミティブ単位で落とすことになるが、これだとパイプラインの工程に制約され、テセレータに戻すには二バス目が必須となる。
0935デフォルトの名無しさん
垢版 |
2018/02/20(火) 12:29:55.68ID:/DCDJ0JE
書きながらなんとなく、メッシュをピクセル単位で落としたい、
メッシュの衝突をシェーダでやりたいのかと思ったが、そうなるとテセレータが欲しいという意図が不明。

もちっと具体的に実現したい結果を説明しないと有意義な答えは出てこないと思う。
0936デフォルトの名無しさん
垢版 |
2018/02/20(火) 12:34:30.91ID:/DCDJ0JE
シェーダは別に1パスであらゆることが実現できるようには設計されていない、
一般的な三次元描画のセオリーを基軸にして、高速に計算できるように設計している。

パイプラインのフローに合わないものを実現するならば、マルチパスにするか、アルゴリズムを変えないと実現できずにアシぶみするだけ。
0937デフォルトの名無しさん
垢版 |
2018/02/20(火) 14:06:33.85ID:ZhrEO/E0
930だがcapsviewerみたらshader _gather4がoffだった
このせいか?
GPUは超最新のRX470だから意外だ・・

クリッピングに関しては
やってることがおかしいのは
皆わかっていることだろう
大事なのは本人が満足することであって
忠告は余計なお世話だ
0938デフォルトの名無しさん
垢版 |
2018/02/20(火) 18:24:40.52ID:ptcA/Sk+
仰有る通りです。
0939デフォルトの名無しさん
垢版 |
2018/02/20(火) 18:40:51.90ID:Q8WKYTfx
1パスでやるなら一つ方法がある。
頂点シェーダは頂点番号を引数に取れたはずだから、三角形リスト(ようはストリップとファン以外)を前提に頂点番号の剰余をとる。
あとは定数バッファにクリップしたい空間をいれるなりする。

というか、クリップしたいのが何なのかがわからんと、これでいけるのかもわからんが。
0940デフォルトの名無しさん
垢版 |
2018/02/20(火) 18:53:53.14ID:NF5x4bMT
そうだ。俺が知る限り、ピクセルシェーダ以外にdiscard命令はないから、厳密にはクリップはできないと思う。
これはプリミティブの一貫性を担保出来なくなるからだと思う。

つまりクリップ後じゃないとダメというなら、それはかなり無理をしないと実装しにくいと思います。

おわり
レス数が900を超えています。1000を超えると表示できなくなるよ。