티스토리 뷰
cbuffer cbPerFrame
{
float gTexelWidth;
float gTexelHeight;
bool gHorizontalBlur;
};
bool 은 32 bit 이다. 놀랍게도.
답글에 32 bit int 랑 같다고 적혀있어서 먼 약먹었나 했는데;
Reflection API로 조사해온 결과 진짜 4 byte 이다
결국 int 를 bit flag로 조사하거나,
http://theinstructionlimit.com/encoding-boolean-flags-into-a-float-in-hlsl
float 의 bit를 조사할 수 있는데 float는 23 bit까지가 가수부니까 주의
원글에서는 int를 flaot으로 cast 해서 넘기고, 받은 부분에서 int로 복원 후 fmod 로 int 를 fmod로 조사한다
int flags = data[2][3];
bool fullbright = fmod(flags, 2) == 1; bool clampTexture = fmod(flags, 4) >= 2; bool xTextureRepeat = fmod(flags, 8) >= 4; bool yTextureRepeat = fmod(flags, 16) >= 8;
'Game > DirectX 11' 카테고리의 다른 글
SSAO(3) (0) | 2017.05.09 |
---|---|
SSAO(2) (0) | 2017.05.07 |
SSAO (1) (1) | 2017.05.05 |
Renderer (2) - Constant Buffer (0) | 2017.04.23 |
Renderer (1) - Hierography3 (0) | 2017.04.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크