私はユニティを使用しています、そして、私はバイト配列をHLSLを使ってGPUに送りたいと思います。私はByteAddressBufferについて知っていますが、私はそれをどのように使用するか考えていません。私はちょうど "バイト"をGPUに送る方法を知りたがっています。私は計算シェーダにStructuredBuffer<byte>
を持っています。バイト[]をGPUに送信していますか?
答えて
シェーダ部分では、StructuredBuffer
を使用できます。 HLSLにバイトデータ型があるかどうかは正確に分かりませんので、この例では整数だけを使用します。
シェーダコード:C#の側で
Shader "Name" {
SubShader {
...
StructuredBuffer<int> _Data;
...
}
}
、あなたのシェーダに対応素材を持っている、mat
それを呼び出すと、あなたのバイト配列bArr
することができます。さらに、gpuバッファを作成してシェーダにバインドする必要があります:ComputeBuffer dataBuf = new ComputeBuffer(bArr.Length, sizeof(int))
。
最後に、GPU dataBuf.SetData(bArr)
にあなたの配列をロードし、私は私のコンピュートシェーダでStructuredBuffer <バイト>を持つようにしたいあなたのシェーダmat.SetBuffer("_Data", dataBuf);
編集
にバッファをバインドします。
私が読んだことから、あなたはできません。 HLSLにはbyte
というデータ型はありません(また、1つの単位で使用されるCGもありません)。上記の例は、標準的な頂点/フラグメントシェーダです。計算シェーダを使用する場合は、他の質問でanswerを参照してください。それをあなたの必要に応えてください。すでにコメントに書いてあるとおり、byte
データにint
を使用しないようにして24ビットを無駄にしないようにするには、ビットシフタで1 int
に4 bytes
をパンチングできます。シェーダモデル4(DX10.1など)を使用している場合、シフト操作はシェーダで使用可能になるはずです
構造化バッファの使い方を知っていて、intをGPUに送る方法を知っています。私はGPUに "byte"を送る方法を知りたい@xyLe_ – None
HLSLにもCGにも(バイト単位ではない)データ型はありません。 CGでは 'char'と一緒に行くことができますが、' int'だけで行くことはできませんか? – TheDjentleman
あなたが実際に使用されていたスペースを持っている場合は、1バイトに4バイトをパックし、ビットシフトを使用してください – TheDjentleman
- 1. ネットワークを介して生のバイトを送信します。悪い?
- 2. シリアルポートにバイトを送信
- 3. Java UUIDをC++にバイトとして送信し、TCPに戻す
- 4. サーバに2バイト文字列を送信しようとしています
- 5. Python TCPはオブジェクトにバイト様オブジェクトを送信しようとしています
- 6. ソケット[0]を使用してバイト[]を送受信しています
- 7. ソケットを使用してバイト[]を交互に送受信する
- 8. powershellでnetshコマンドを使用して受信バイトと送信バイトを取得します。
- 9. OpenGL ESでGPUにデータを送信するという概念
- 10. Golang gopacket udpLayerをバイトに変換して送信する
- 11. フォームの送信ボタンの値を送信していますか?
- 12. GPUに一様データを正しく送信する
- 13. ベストプラクティスメールを送信していますか?
- 14. 送信バイト数に基づいてプログレスバーを更新
- 15. イメージをバイト配列としてRESTサービスに送信
- 16. C# - double - バイトを介してJavaクライアントに送信される値
- 17. BlackberryのPOSTとしてPHPスクリプトにバイト配列を送信
- 18. NameValuePairを使用してバイトHTTPを送信する方法
- 19. ATMega328p:USARTを介してバイトを送信する奇妙な動作
- 20. jacksonを使用してjsonでバイト配列を送信する
- 21. 送信バイト[]または画像のURL
- 22. ProcessingからArduinoへのバイトの送信
- 23. TCP送受信に欠けているバイト
- 24. 圧縮データをGPUに転送してから、GPUで解凍することはできますか?
- 25. WCFはバイト[]を送付しますか?
- 26. rails send_fileとsend_dataは0バイトのファイルを送信します
- 27. JavaのJade ACLMessageでバイトを送信します。
- 28. 1バイトのnetを送信します。Conn Go
- 29. Python SocketIOクライアントはバイトを送信します
- 30. 特定のバイト数の送信後にファイル転送が停止します
なぜ私はあまりにも多くのダウン票を得ましたか?私が逃したものはありますか? – None
あなたの質問では、あなたの問題を解決しようとしたことは実際には表示されません。 (私はそれが理由だと思う) – TheDjentleman