2D 입자를 유체로 렌더링하는 방법은 무엇입니까?


45

물과 같은 유체를 시뮬레이션하기 위해 2D 입자를 이동시키는 좋은 방법이 있다고 가정합니다. 렌더링 방법에 대한 아이디어가 있습니까?

이것은 2D 게임을위한 것 입니다. 물은 넘어져서 다른 물체와 상호 작용하기 위해 깨질 수있는 상자에 담겨 있습니다. 내 마음에 오는 가장 간단한 방법은 각 입자에 작은 이미지를 사용하는 것입니다. 물을 렌더링하는 더 많은 방법을 듣는 데 관심이 있습니다.

답변:


28

GDC2010의 프레젠테이션 (PDF) 에서 PixelJunk Shooter (시뮬레이션 포함)가 어떻게 수행했는지 확인하십시오 .


PixelJunk 슈터 이미지 샘플


1
PixelJunk를 몰랐습니다 ... 정말 좋은 대가입니다. 감사합니다!
— luke

링크 : 트레일러에
— 데이비드 Gouveia의


SPU, PPU, SPURS 란 무엇입니까?
— Martijn Courteaux

@MartjinCourteaux : 그들은 PS3의 Cell CPU의 일부입니다. 몇 가지 중요한 차이점이 있지만 GPU 쉐이더로 생각하십시오.
— Sean Middleditch

12

게임에 완전히 시뮬레이션 된 물이 필요한 경우 George Duckett의 대답은 훨씬 더 직접적이고 잘 표현됩니다. 정확도가 가장 낮은 (물리적 현실감, 장난기있는) 얕은 물 물리 시뮬레이션의 경우이 이미지는 다음과 같은 놀라운 선명도를 제공했습니다.

http://www.patrickmatte.com/stuff/physicsLiquid/


간단하고 좋은! 그런 간단한 사후 처리 단계를 사용하지 않았다 ... 아이폰과 같은 기기가 이것을 처리 할 수 ​​있을지 궁금하다. 좋은 출발점이 될 것 같습니다. 고마워.
— luke

나는이 접근법을 보증 할 수있다. 프로젝트에서 한 번 사용했는데 아름답게 작동했습니다. 경사 필터를 추가하면 얼룩에도 멋진 반월 상 연골이 생길 수 있습니다.
— scriptocalypse 2018

슈퍼 쿨! 그러나 나는 그것을 통해 걷는 캐릭터를 얼마나 잘 수용 할 수 있는지 잘 모르겠습니다. 그것은 모든 구체를 한쪽으로 밀지 않겠습니까?
— Max

6

또는 빠르고 쉬운 방법으로 metaball을 사용하십시오 !

3D 메타 볼


5

그랜트 콧 (Grant Kot) 은 자바 스크립트 (캔버스)와 OpenFrameworks를 사용한 C ++로 구현 된 유체 시뮬레이션 코드를 Github에 추가했습니다. https://github.com/kotsoft

그는 자신의 YouTube 계정에 대한 몇 가지 데모를 가지고 있습니다 : http://youtu.be/HqWheJSEiaw

나는 그것이 어떻게 작동하는지 모른다. 그러나 나는 그것이 빨리 실행되고 그것을 가지고 모든 종류의 변형이 있다는 것을 알고있다. 검색하기에 좋은 키워드는 "멀티 그리드 입자"일 수 있습니다.


Grant Kot이 유체를 시뮬레이션하는 방법을 정말 좋아합니다! 최소한 해당 웹 페이지의 애플릿에서 렌더링이 최소 인 경우에도 마찬가지입니다. 시뮬레이션을 제어하기 위해 많은 파레 미터로 사용됩니다. 더 자세히 살펴볼 가치가 있습니다. 고마워.
— luke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.