有关计算着色器DispatchThreadID的问题?

时间:2015-04-06 21:28:41

标签: directcompute

Texture2D<float> InputTex : register( t0 );
RWTexture2D<float> OutputTex : register( u0 );

// Group size
#define size_x 20
#define size_y 20

// Declare one thread fo r each texel of the input texture.
[numthreads(size_x, size_y, 1)]

void CSMAIN( uint3 DispatchThreadID : SV_DispatchThreadID )
{
  int3 texturelocation = int3( 0,0, 0 );
  texturelocation.x = DispatchThreadID.x;
  texturelocation.y = DispatchThreadID.y;
  float Value = InputTex.Load( texturelocation );
  OutputTex[DispatchThreadID.xy] = 2.0f * Value;
}

第一个问题:

在此代码中,DispatchThreadID.xDispatchThreadID.y是否具有相同的值,例如x的第17行和y的第17行?

第二个问题:

我可以写这个吗?

 OutputTex[ texturelocation ] = 2.0f * Value; 

是或否答案就足够了,但如果不是,请提供简短解释原因。

0 个答案:

没有答案