Humpalumps/Ultra-Water
FFT 파도, 해안 쇄파, 포말, 카우스틱, 수중 시점, 부유 물체를 지원하는 three.js용 실시간 바다 렌더러(WebGL2).
- 스타
- 634
- 포크
- 94
- 열린 이슈
- 0
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
Ultra Water는 three.js와 WebGL2 기반의 실시간 바다 렌더러로, 데모용 섬 장면이 포함되어 있습니다. 파도는 4개 캐스케이드에 걸친 Tessendorf 스타일의 FFT 시뮬레이션으로 생성하며, 작은 잔물결을 위한 모세관 파동 대역도 지원합니다. 표면은 픽셀 단위로 셰이딩하고, GGX 태양광 스페큘러, 섬의 평면 반사, 굴절, Beer-Lambert 흡수를 적용합니다.
탁 트인 바다뿐 아니라, 아이코날 이동 시간 필드로 구동되는 해안 쇄파, 마루 포말과 레이스 포말, 해변의 스워시, 물체가 물에 부딪힐 때 생기는 충격파 링도 구현합니다. 카우스틱은 굴절된 빛을 여러 깊이의 평면에 스플랫해 계산합니다. 카메라가 수면에 있거나 아래에 있을 때는 수중 모드에서 스넬의 창, 햇빛 기둥, 마린 스노우를 렌더링합니다.
떠 있는 상자, 통, 부표, 보트는 GPU에서 샘플링한 수면 높이를 이용해 부력과 항력을 계산하며, 별도의 섀도 맵을 사용합니다. 프로젝트에는 페이지 내 성능 HUD와 벤치마크가 포함되어 있고, 휴대폰과 태블릿에 맞춰 품질 프로필을 조정합니다.
핵심 기능
- 014개 캐스케이드에 걸친 FFT 기반 바다 파도와 모세관 잔물결.
- 02급강하 기울기, 진행하며 부서지는 파도 마루, 천수화가 적용된 해안 쇄파.
- 03시간이 지나며 적용 범위가 줄어드는 마루 백수와 레이스 포말.
- 04카우스틱, 수중 스넬의 창, 햇빛 기둥.
- 05떠 있는 상자, 통, 부표, 보트를 위한 부력 시뮬레이션.
- 06자동 해상도 조정을 지원하는 모바일 프로필.
활용 사례
- three.js 웹 장면에 사실적인 바다나 호수 배경을 추가할 때.
- WebGL2에서 FFT 바다 셰이딩, 카우스틱, 포말 기법을 살펴볼 때.
- 파도에 반응하는 보트나 부유 물체를 프로토타이핑할 때.
- 브라우저에서 GPU 렌더링 성능을 벤치마킹할 때.
빠른 시작
- 1
종속 항목을 설치합니다
npm install - 2
개발 서버를 시작하고 표시된 localhost URL을 엽니다
npm run dev
사용 전 알아둘 점
- 원활한 프레임 속도를 위해 WebGL2를 지원하는 브라우저와 충분한 성능의 GPU가 필요합니다.
- 휴대폰과 태블릿의 성능은 온도와 기기에 따라 달라지며, 데스크톱 설정에서는 휴대폰에서 프레임이 떨어질 수 있습니다.
토픽
자주 묻는 질문
- Ultra-Water은(는) 무엇인가요?
- FFT 파도, 해안 쇄파, 포말, 카우스틱, 수중 시점, 부유 물체를 지원하는 three.js용 실시간 바다 렌더러(WebGL2). Ultra Water는 three.js와 WebGL2 기반의 실시간 바다 렌더러로, 데모용 섬 장면이 포함되어 있습니다. 파도는 4개 캐스케이드에 걸친 Tessendorf 스타일의 FFT 시뮬레이션으로 생성하며, 작은 잔물결을 위한 모세관 파동 대역도 지원합니다. 표면은 픽셀 단위로 셰이딩하고, GGX 태양광 스페큘러, 섬의 평면 반사, 굴절, Beer-Lambert 흡수를 적용합니다.
- Ultra-Water은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Ultra-Water은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Ultra-Water은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Ultra-Water의 마지막 커밋은 2026년 11월 2일입니다.
- Ultra-Water은(는) 어디에 사용할 수 있나요?
- three.js 웹 장면에 사실적인 바다나 호수 배경을 추가할 때. WebGL2에서 FFT 바다 셰이딩, 카우스틱, 포말 기법을 살펴볼 때. 파도에 반응하는 보트나 부유 물체를 프로토타이핑할 때. 브라우저에서 GPU 렌더링 성능을 벤치마킹할 때.
- Ultra-Water는 어떻게 설치하나요?
- 종속 항목을 설치합니다: npm install 개발 서버를 시작하고 표시된 localhost URL을 엽니다: npm run dev
- Ultra-Water은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Humpalumps/Ultra-Water
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
공유 GPU 상태를 없애고, 드로우 호출을 명령으로 기술해 최적화된 JavaScript로 컴파일하는 함수형 WebGL 래퍼입니다.
웹, 모바일, Apple, Android, Rust 및 동영상 도구에서 사용할 수 있는 커뮤니티 제작 GLSL 전환 효과 100여 종을 공개 컬렉션으로 제공합니다.
사계절과 하루 중 언제든 일본 계곡의 강을 따라가는 브라우저 기반 3D 보트 여정
three.js용 WebGPU 패스 트레이싱 렌더러로, three-mesh-bvh를 사용해 브라우저에서 물리 기반 이미지를 렌더링합니다.