2013-05-16 1 views
4

쉐이더를 사용한 물 시뮬레이션과 관련하여 Nvidia GPU Gems Chapter 1을 따릅니다. OpenGL es 2.0 (iOS)에서 glsl을 사용하여 해수 쉐이더를 만드는 장을 따르려고합니다.엔비디아 GPU 젬에 이어 GLSL 오션 워터 쉐이더 설정 1 장

이 장에서 설명한대로 기하학 파를 만들 수 있지만 텍스처 노멀 맵을 만들 때 문제가 있습니다. 이 장은 실제로 텍스쳐 렌더 타겟으로 렌더링되는 것에 대해 약간 불분명하다. 노멀 맵이나 높이 맵을 렌더링해야합니까? 본문에서는 법선이 rgb 색상으로 대상에 렌더링되지만 다시 1.3 절의 "제작"아래에있는 이미지 (b) 및 (d)는 그레이 스케일 높이 맵이 텍스처 대상에 렌더링되어야 함을 나타냅니다 . 이 장에서는 텍스처의 u 좌표에 룩업 텍스처를 사용하는 방법에 대해서도 설명하지만 텍스처에 렌더링 할 때 이것이 어떻게 맞는지는 분명치 않다. 렌더링 할 두 가지 텍스처가 있습니까? 누구든지이 구성 요소가 어떻게 어울리는 지 명확하게 설명하면 도움이 될 수 있습니다.

답변

0

왜 텍스처로 렌더링하는 것입니까? 지오메트리 셰이더에서이 값을 즉석에서 쉽게 계산할 수 있습니다. 그들은 각 프레임을 변경하기 때문에 어쨌든 매번 이러한 계산을 반복해야하므로 텍스쳐로 렌더링하여 얻는 것을 볼 수 없습니다.

높이 변위 (식 3 사용) 및 각 꼭지점에 대한 법선 (식 6b 사용)은 두 값을 계산해야합니다.

+1

튜토리얼에서는 시뮬레이션에서 더 높은 해상도의 파동을 얻으려면 텍스처 타겟에 일반 값을 렌더링 할 수 있다고 제안합니다. "우리는 또한 기술을 픽셀 쉐이더 영역으로 확장하여주기적인 웨이브 함수의 합을 사용하여 동적 인 타일링 범프 맵을 만들어 수면의 미세한 부분을 캡처합니다." - 1.1 목표 및 범위. 기하학적 파도와 법선이 작동합니다 (정점 쉐이더에서 "즉석에서"생성됨). 문제가 발생하는 정상적인지도입니다. –

+0

종이가 노멀 맵을 만드는 이유는 그것이 꽤 오래 되었기 때문입니다. 정점 별 법선을 계산하여 Fragment 셰이더에 전달할 수 있습니다. 그게 내가 이것을 구현하고 잘 작동합니다. – fluffels