티스토리 뷰

Game/Graphics

HLSL pow

newpolaris 2018. 8. 1. 13:47

DirectX 9 에서는 내장 DirectX 11 log / exp 를 사용하여 구현했다고 알려져있다 (OpenGL 도 마찬가지)

http://blog.techlab-xe.net/archives/5550 https://www.opengl.org/discussion_boards/showthread.php/182833-pow%28x-2%29-different-then-x%2Ax

보통 경우에서 가장 큰 차이는 전에는 x 부분이 음수면 0이었는데 Nan 으로 바뀌었다는거

https://www.opengl.org/discussion_boards/showthread.php/182833-pow%28x-2%29-different-then-x%2Ax

Fx 기반 MMD 에선,

float3 lambda = float3(680e-9, 550e-9, 450e-9);
c = pow(lambda, 2.0) * float3(1e6, 1e6, 1e6);
return float4(c, 1.0);

0.68, 0.55, 0.45 의 갈색이 나온다

반면, pow(float3(680e-9,550e-9, 450e-9), 2) 는

정상적으로 계산되어 검정색으로 나온다

그로인해 포팅할 때 다른 식으로 바꾸거나 파라메터 수정이 필요했다

'Game > Graphics' 카테고리의 다른 글

GPU culling  (0) 2018.11.27
HLSL TO OPENGL  (0) 2018.10.14
Volumetric Light  (0) 2018.03.21
Area light cont.  (0) 2018.03.18
Real-Time Area Lighting: a Journey from Research to Production  (0) 2018.03.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크