오픈 루프를 사용하여 2D 배경을 물 아래 렌더링했습니다. 시간이 지남에 따라 텍스처를 왜곡시킬 수 있습니까? 나는 죄 (시간) 또는 궤변 (시간)으로 이것을 깨닫는다. 하지만 나는 glsl에 가난합니다. 나는 어떻게 해야할지 잘 모릅니다. 샤 우드, 시간이 지남에 따라 x, y 좌표가 바뀌 었습니까? 전체 텍스처를 반복적으로 이동하지 않으려면 어떻게해야합니까? 도움을 주셔서 감사합니다.오픈 GL을 사용하여 물 아래에서 2D 배경을 렌더링하는 방법
0
A
답변
1
이 목표를 달성하기 위해 텍스처 좌표가 왜곡 될 수 있지만 몇 가지 매개 변수가 필요합니다.
예를 들어, X
텍스처 좌표를 소량 이동하여 가로 또는 세로로 죄는 sin 또는 cos 함수 (그 차이는 크지 않음)를 사용할 수 있습니다. 예를 들어, .1
이 최대 10 %까지 왜곡 될 때와 같은 텍스처에 상대적이어야하는 유니폼 (strength
)을 삽입합니다. 그러면 아이디어는 X=sin(Y)*strength
으로 설정하는 것입니다. Y
이 0에서 1까지의 범위에 있기 때문에 예를 들어 20과 같은 범위에 있어야하는 "더 많은 웨이브"를 얻으려면 density
과 같은 다른 파라미터를 추가해야합니다 (예를 들어 몇 가지 웨이브를 얻으려면이 값을 변경하십시오. 좋은 효과). 그러면 방정식은 X=sin(Y*density)*strength
이됩니다. 여전히 정적 왜곡 된 이미지가 생성되지만 원하는 것은 시간이 경과함에 따라 이동하므로 시간에 따라 변경해야하는 몇 가지 수직 시간 계수 delta
이 필요하고 .0
과 2*PI
사이의 범위에 도달하면 수식은 X=sin(Y*density + delta)*strength
입니다. 모든 프레임에서 delta
을 늘려야하고 더 큰 경우 2*PI
을 2*PI
으로 줄이면 부드러운 애니메이션을 얻을 수 있습니다. delta
을 값을 늘리면 효과의 속도가 제어됩니다.
이제는 원하는 효과를 얻으려면 놀아야하는 3 가지 균일 한 매개 변수가 있습니다. 네가 찾길 바래.
관련 문제
- 1. 오픈 GL을 사용하는 Qt의 스테레오
- 2. 열린 gl을 사용하여 아이폰에 여러 가지 색의 사각형을 렌더링하는 방법
- 3. 오픈 배경을 사용하여 투명한 배경을 가지고 있습니다.
- 4. iphone에서 2D 평면도를 렌더링하는 방법
- 5. 에서 OpenGL은 2D 물 시뮬레이션
- 6. LWJGL에서 3D로 투명도로 2D 텍스처를 렌더링하는 방법
- 7. WebGL을 사용하여 2D 스프라이트를 렌더링하는 방법은 무엇입니까?
- 8. three.js에서 점의 2D 모양을 렌더링하는 방법
- 9. 2D 게임의 물 효과 "android". 어디서 시작하나요?
- 10. 도움이 필요하십니까 - Monogame 2D 물 반사
- 11. SDL과 GL을 monodevelop에 연결하는 방법 (C++)
- 12. React와 Redbox에서 Mapbox GL을 사용하는 방법?
- 13. OpenGL에서 횡단면을 렌더링하는 방법
- 14. 열려있는 gl을 사용하여 내 벡터 정규화에 어려움이있다
- 15. iPhone에서 open gl을 사용하여 텍스트 쓰기
- 16. Android 오픈 글래스 2d 컬링
- 17. Open GL을 이해하려고 시도했습니다
- 18. 많은 양의 동적 2D 원을 렌더링하는 OpenGL
- 19. jquery를 사용하여 다시 렌더링하는 방법
- 20. QOpenGLWidget을 사용하여 텍스트를 렌더링하는 방법
- 21. InkManager를 사용하여 점을 렌더링하는 방법
- 22. AJAX를 사용하여 fullCalendar를 렌더링하는 방법
- 23. json을 사용하여 렌더링하는 방법 : contains?
- 24. MathQuill을 사용하여 수식을 렌더링하는 방법
- 25. 2D 텍스트를 lwjgl로 렌더링하는 방법은 무엇입니까?
- 26. 파이썬에서 3D 서페이스를 렌더링하는 방법
- 27. 쉐이더가없는 실시간 물 효과
- 28. oCanvas.js를 사용하여 투명한 배경 이미지를 렌더링하는 방법
- 29. Webgl : 2D의 물 효과
- 30. "기능 물"?
고맙습니다. –