[HLSL] Shader Model 4.0/DirectX 10 이전버전에서 비트연산하기

비트연산이 필요해서 찾아보니 쉐이더의 비트연산은 SM4.0/DirectX10 이상에서만 지원한다고 한다.

그러나 이전버전이라도 기본산술연사자를 이용하면 비트 연산의 효과를 낼 수 있다.

2의 승수를 이용한 곱셉/나눗셈은 비트쉬프트연산과 같은 효과인 것을 이용하는 것이다.

예로 10(1100) & 12(1100)를 하고 싶다면 (10 / 4) * 2를 수행하면 된다.


100110001010
위에서 볼드처리된 비트만 구할려면 먼저 위 방식을 이용해서 100100000000를 구한 후
원래 수에서 빼서 구한 10001010를 위 방식대로 변환하면 된다. 

아무래도 전용 비트연산자를 이용한 것보다 속도는 떨어지고 손이 많이 가지만
비트 연산이 꼭 필요하다면 이렇게 쓸 수 있다.


by hellz | 2011/03/06 02:00 | Programming | 트랙백 | 덧글(0)

트랙백 주소 : http://hellzblog.egloos.com/tb/3130069
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶