티스토리 뷰

cbuffer Constants : register(b0)
{
    float2 ViewportSize;
};

static float Scaling = 0.1;
static float Strength = 0.7;
static float Extent = 0.002;
static float2 ViewportOffset = (float2(0.5,0.5)/ViewportSize);
static float2 SampStep = (float2(Extent,Extent)/ViewportSize*ViewportSize.y) * Scaling;

ViewportSize는 디버거에서 1920, 1080 으로 나왔으나, Viewportoffset 은 0 으로 찍혔다.

SampStep 도 마찬가지

float2 viewport = float2(1920, 1080);
float2 stex = texcoord + float2(0.5, 0.5) * rcp( viewport );
color = SourceColor.Sample( LinearSampler, stex );
return float4(color, 1);

답답해서 위처럼 해놓고 하니 잘되었다.

0.5/1920 을 float 은 처리 못하나 부터 별 생각이 다들었는데

문제는, 디버거가 값을 잘못표시해준것이다.

정확히는,

Context.SetConstants( 0, g_SceneColorBuffer.GetWidth(), g_SceneColorBuffer.GetHeight(), { kBindPixel } );

uint32_t, uint32_t 으로 값이 올라간다.

cbuffer 에는 float2 로 되어있어서 맛이간거다.

그걸 디버거는 정상적으로 표시해준거고

Context.SetConstants( 0, (float)g_SceneColorBuffer.GetWidth(), (float)g_SceneColorBuffer.GetHeight(), { kBindPixel } );

로 바꾸지 정상작동.

20분은 날린듯. (추가 20분은 빡쳐서 따른거 봄)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크