2011-05-16 2 views
2

픽셀 당 의사 난수 생성을 필요로하는 셰이더를 작성하려고합니다. 텍스처에서 가져 오는 것은 너무 비쌉니다.비트 단위의 대안

내가 발견 한 모든 생성기는 ^, < <, & 연산자를 사용하지만, 내가 지원하는 쉐이더 모델은 이것을 지원하지 않습니다. 대신에 사용할 수있는 연산자의 수학적으로 동일한 기능이 있습니까?

참고로, 나는 정밀도보다 속도를 중시하고 있습니다.

감사합니다.

+0

어떤 정수 연산자 *를 사용할 수 있는지 알 수 있습니까? –

답변

0

그 중 제가 수학적으로 알고있는 유일한 사람은 << 연산자입니다. 즉 :

N < < X = N *의 (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 등)

예컨대

N < < 5 * 32 = N

단순히 값 (2^X)에 대한 조회를 생성하고, 그 값을 곱한다.

다른 것들은 더 복잡해질 것이고 아마도 당신은 그것을 해결하기위한 알고리즘을 작성해야 할 것입니다. 나는 그들이 직접적인 수학적으로 동등한 것을 가지고 있다고 생각하지 않는다.

C 런타임 구현을위한 소스 코드가 유용 할 수 있습니다. 또는 각각을 구현하는 알고리즘을 검색하십시오 : Fast implementation/approximation of pow() function in C/C++