Why Nostr? What is Njump?
2024-05-09 03:06:41

YoshikuniJujo on Nostr: #vulkan #Vulkan ...

#vulkan #Vulkan

シェーダーに(頂点以外の)データを渡す方法には、(すくなくとも)4通りある。

* Specialization Constant (特殊化定数)
* Push Constant
* Uniform Buffer Object
* Storage Buffer Object

だ。

Specialization Constantはひとつのプロセスのなかで値が変化しない場合に使う。Pipelineを作るときに決めてしまう値だ。

Push Constantは小さな値を手軽に使える。Specialization Constantと異なり、vkCmdPushConstantsで表示ごとに変化させることができる。

Uniform Buffer Objectは、それほど大きくないデータを渡すときに使える。Storage Buffer Objectより多少速いらしい。

Storage Buffer Objectはより大きなデータを渡すことができる。また、シェーダー側からの書き込みができる。
Author Public Key
npub1a7y7u324paehw2zdx8jfl3t72ue0ls4etfalxhg0z2gad738savqhxfdm2