0
嘿,我正在學習dxd11,這是我的問題。如何在着色器中初始化cbuffer
我想在.hlsl代碼中初始化cbuffer。
是這樣的
[着色器代碼]
cbuffer cbFixed{
float gWeights[11] = {0.05f, 0.05f,......};
}
但它不能在幾何着色器的工作。
所以我定義在主要的功能 [在着色器代碼]
... variables...
[maxvertexcount(4)]
void main(
point VertexOut input[1],
uint primID : SV_PrimitiveID,
inout TriangleStream<GSOutput> tristream
)
{
float2 tex[4] = {
float2(0,1),
float2(0,0),
float2(1,1),
float2(1,0)
};
.... do something
}
常量我所定義,並宣佈在主函數的常數。 在此代碼中,float2 tex [4]是常量。
如果我在主func中聲明常量,是否有任何優化問題?
還是有什麼好的建議嗎?
謝謝。