我正在尝试在多个效果文件中分享这个内容:
matrix worldMatrix : register(vs_4_0, b0);
如果你将一个常量绑定到一个寄存器,那么它将一直存在,直到某个东西在同一个地方绑定,或者如果你将这个地方绑定到null。
我想要“分享”的常量缓冲区的方法是在包含文件中有一个恒定的缓冲区结构。 然后将该文件包含在所有着色器中使用。 这很方便,简单。
与单个值和cbuffer的区别在于,如何绑定数据以及如何分配缓冲区。 如果你有一个cbuffer,有128个浮点数,你必须创建一个相同大小的缓冲区。 而一个单一的值不会让你创建一个与这种types不同的注册点。 定期地,有一个具有特定含义的缓冲区是很好的。 换句话说,每一帧都有一个cbuffer被更新,一个每个材质都会被更新,另一个可能包含某种每秒数据。