heightmap을 사용하여 libgdx 기반의 2D 게임에서 shader를 사용하여 멋진 물 왜곡 효과를 만들려고합니다. 처음에는shader heightmap 번역 다음 카메라를 tiledmap의 libgdx에 넣습니다.
, 나는 그때 렌더링 FBO에 왜곡 효과를 적용하고 폭포의 위치를 결정하기 위해 마스크를 사용하십시오 FBO
에 전체 장면을 렌더링합니다. 마스크를 적용하기 전에
이 효과를 달성하기 위해, I는 Y 그것이 fract(heighmapCoord)
을 사용하여 시간 및 I 루프에 기초 쉐이더 하이트 좌표 변환.
카메라가 플레이어를 따라 움직일 때, heighmap은 X 축에 정적으로 머무르는 것이 문제입니다. camera.position
및 fract()
기능을 기반으로 heightmapCoord
을 번역하기로 결정했습니다. heighmap은 카메라를 따라가는 것처럼 보이지만 속도가 느려서 효과가 폭포 마스크 안쪽으로 미끄러 져 움직입니다.
투영 문제가있는 것으로 보입니다. 또한, 이것이 이런 종류의 효과를 창출하는 좋은 방법인지 확신 할 수 없습니다.
정확하게 카메라 움직임에 따라 하이트 맵을 만들려면 어떻게해야합니까?
EDIT :
I에서만 프래그먼트 쉐이더를 사용하여 하나의 정점 셰이더 passthrought이다
void main() {
v_color = a_color;
v_texCoord0 = a_texCoord0;
gl_Position = u_projTrans * vec4(a_position, 1.);
}