소프트-바디 다이내믹스

Soft-body dynamics

소프트-바디 다이내믹스컴퓨터 그래픽의 한 분야로서, 변형 가능한 물체(또는 소프트바디)의 움직임과 특성에 대한 시각적으로 현실적인 물리적 시뮬레이션에 초점을 맞추고 있다.[1]신청서는 대부분 비디오 게임과 영화에 있다.강체 시뮬레이션에서와 달리 부드러운 몸체의 형태가 변할 수 있어 물체에 있는 두 점의 상대적인 거리가 고정되어 있지 않다는 것을 의미한다.점의 상대적인 거리가 고정되어 있지 않지만, 신체는 어느 정도 (유체와는 달리) 형태를 유지할 것으로 예상된다.근육, 지방, 머리카락, 식물과 같은 부드러운 유기물뿐만 아니라 의류, 섬유와 같은 다른 변형 가능한 물질의 시뮬레이션까지 부드러운 신체 역학의 범위는 상당히 넓다.일반적으로 이러한 방법은 과학적 방법, 특히 유한 요소 시뮬레이션의 경우 과학적인 방법과의 교차점이 있지만 정확한 과학/공학 시뮬레이션보다는 시각적으로 타당한 에뮬레이션만 제공한다.몇몇 물리학 엔진은 현재 소프트바디 시뮬레이션을 위한 소프트웨어를 제공하고 있다.[2][3][4][5][6][7]

부드러운 차체 물체는 힘에 반응하여 다른 3D 물체와 충돌할 수 있다.이 예는 블렌더로 만들어졌다.

변형고형물

다양한 접근법을 사용하여 체적 고형 연체의[8] 시뮬레이션을 실현할 수 있다.

스프링/매스 모델

스프링과 댐퍼의 병렬 회로에 의해 연결된 질량 지점으로서의 두 노드.

이 접근 방식에서, 신체는 후크의 법칙의 어떤 변종에 따르는 이상적인 무중력 탄성 스프링에 의해 연결된 점 질량(노드) 집합으로 모델링된다.노드는 물체 표면의 2차원 다각형 망사 표현 가장자리 또는 물체의 내부 구조를 모델링하는 3차원 노드와 가장자리의 3차원 네트워크(또는 로프나 머리카락 가닥을 시뮬레이션하는 경우 1차원 링크 시스템)에서 도출할 수 있다.노드 사이에 추가적인 스프링이 추가되거나 스프링의 강제 법칙이 수정되어 원하는 효과를 얻을 수 있다.뉴턴의 두 번째 법칙을 스프링에 의해 가해지는 힘과 (접촉, 중력, 공기 저항, 바람 등으로 인한) 외부 힘을 포함한 점 질량에 적용하면 노드의 움직임에 대한 미분 방정식의 시스템이 제공되며, 이는 OSE를 해결하기 위한 표준 수치 체계로 해결된다.[9]3차원 질량 스프링 격자 렌더링은 자유형 변형을 사용하는 경우가 많은데,[10] 자유형 변형에서는 렌더링된 메쉬가 격자 안에 박혀 진화에 따라 격자 모양에 맞게 변형된다.모든 점 질량이 0과 동일하다고 가정하면 탄성 그리드 거동에 관련된 몇 가지 엔지니어링 문제 솔루션을 목표로 하는 스트레치 그리드 방법을 얻을 수 있다.이것들은 때로 매스 스프링 데퍼 모델이라고 알려져 있다.가압 연성체에서[11] 스프링-질량 모델은 이상적인 가스 법칙에 기초한 압력력과 결합된다.

유한요소시뮬레이션

이것은 탄성 물질의 역학을 지배하는 부분 미분 방정식을 풀기 위해 널리 사용되는 유한 요소 방법을 사용하는 보다 물리적으로 정확한 접근법이다.신체는 3차원 탄성 연속체를 3차원 탄성 연속체로 모델링하여 서로 잘 맞는 다량의 고체 원소로 분해하고, 재료의 모델을 이용하여 각 원소의 응력과 균주를 해결한다.[12]원소들은 전형적으로 사면체인데, 노드는 사면체의 정점이 된다(상대적으로 간단한 방법은 2차원 다각형을 삼각형으로 삼각형으로 삼각형 모양으로 삼각형화할 수 있는 방법과 유사하게 폴리곤 망사로 둘러싸인 3차원 영역을 사면체로 사면체화시키는 방법이[13][14] 존재한다.변형률(휴식 상태에서 재료 점의 국소 변형을 측정하는 변형률)은 변형률 텐서 에 의해 정량화된다응력(물질에 작용하는 모든 방향에서 단위 면적당 국부력을 측정하는 것)은 Cauchy stress tensor 에 의해 정량화된다 현재의 국부 변형을 감안할 때 국부 스트레스는 Hoke의 일반화된 형태인 = bytype{\. 여기서 는 재료 특성(포아송 비와 영의 계수에 의해 등방성 물질의 선형 탄성으로 매개변수)을 인코딩하는 "탄성 텐서"이다.

요소 노드의 운동 방정식은 각 요소에 대한 응력장을 통합하고 뉴턴의 두 번째 법칙을 통해 노드 가속도에 관련시킴으로써 얻어진다.

픽셀럭스(디지털 분자 물질 시스템의 개발자)는 4면 메시를 사용하고 응력 텐서를 노드 힘으로 직접 변환하여 부드러운 신체에 유한 요소 기반 접근법을 사용한다.[15]렌더링은 자유형 변형 형태를 통해 이루어진다.[10]

에너지 최소화 방법

이 접근방식은 가변 원리와 표면 물리학에 의해 동기 부여되며, 이는 제한된 표면이 변형의 에너지(비누 방울과 유사)를 최소화하는 형상을 가정하도록 지시한다.표면의 에너지를 국부적 변형( 스트레칭과 휨의 조합에 기인함)으로 표현하면, 위치에 대한 에너지를 구별하여 표면의 국부적인 힘을 주어 표준적인 방법으로 해결할 수 있는 운동 방정식을 산출한다.[16][17]

도형 일치

이 계획에서, 형벌력이나 제약조건이 모델에 적용되어 원래의 형상을[18] 향하게 한다(즉, 물질은 마치 형상기억을 가지고 있는 것처럼 작용한다).운동량을 보존하려면 예를 들어 극분해를 통해 신체의 회전을 적절하게 추정해야 한다.유한 요소 시뮬레이션에 근사적으로 적용하기 위해 형상 일치를 3차원 격자와 다중 형상 일치 제약조건이 혼합되어 적용할 수 있다.[19]

강체 기반 변형

변형도 전통적인 강체 물리 엔진에 의해 처리될 수 있으며, 제약조건에 의해 연결된 복수의 강체 신체의 네트워크를 이용한 연체 운동을 모델링할 수 있으며, 렌더링을 위한 표면 망사를 생성하기 위해 (예를 들어) 매트릭스 팔레트 스키닝을 사용할 수 있다.이것은 하복 파괴에서 변형 가능한 물체에 사용되는 접근법이다.[20]

천 시뮬레이션

컴퓨터 그래픽의 맥락에서 보자면, 천 시뮬레이션은 2차원 연속체 탄성막 형태의 부드러운 신체의 시뮬레이션을 말하는데, 이를 위해 실 높이의 실제 의 구조는 무시할 수 있다(실 레벨의 모델링 천은 시도되었다).[21]렌더링 효과를 통해, 이것은 비디오 게임, 애니메이션 및 필름에서 다양한 맥락에서 사용되는 직물의류의 시각적으로 타당한 에뮬레이션을 만들 수 있다.또한 변형 가능한 금속 패널이나 식물과 같은 직물 이외의 2차원 재료의 시트를 시뮬레이션하는 데도 사용할 수 있다.비디오 게임에서 그것은 종종 옷을 입은 애니메이션 등장인물의 사실성을 높이기 위해 사용된다.

천 시뮬레이터는 일반적으로 매스 스프링 모델에 기초하지만 힘 기반 솔버와 위치 기반 솔버를 구별해야 한다.

힘 기반 천

질량 스프링 모델(천재의 폴리곤 망사 표현으로 관찰됨)은 각 시간 단계에서 노드에 작용하는 내부 스프링 힘을 결정한다(중력 및 적용된 힘과 결합).뉴턴의 두 번째 법칙은 표준 ODE 해결기를 통해 해결할 수 있는 운동 방정식을 제공한다.그러나 (잘 알려져[citation needed] 있듯이, 명시적 통합자는 충분히 견고한 시스템에 대해 수치적으로 불안정하므로) 대화형 애플리케이션에 대해 너무 작은 시간 단계를 만들지 않는 한, 현실적인 강성을 가진 고해상도 천을 만드는 것은 단순한 명시적 솔버(예: 전방 오일러 통합)로는 불가능하다.따라서 암묵적 솔버를 사용해야 하며,[22] 대화형 프레임률에서도 달성하기 어려울 수 있는 대규모 희소성 매트릭스 시스템(예: 결합 그라데이션 방법)의 솔루션을 요구해야 한다.대안은[23][24] 불안정성과 과도한 스트레칭을 피하기 위한 특별방법과 함께 강성이 낮은 명시적 방법을 사용하는 것이다(예: 변형률 제한 보정).

위치 기반 역학

ODE 시스템의 값비싼 암묵적 해결책의 필요성을 피하기 위해, 많은 실시간 천 시뮬레이터(특히 PhysX, Havok Cleot, Maya nBoe)는 구속조건 완화에 기반한 접근방식인 위치 기반 역학(PBD)을 사용한다.[25]매스 스프링 모델은 구속조건의 시스템으로 변환되며, 이는 연결된 노드 사이의 거리가 초기 거리와 같아야 한다는 것을 요구한다.이 시스템은 각각의 제약을 만족시키기 위해 노드를 직접 이동하여 충분히 뻣뻣한 천을 얻을 때까지 순차적이고 반복적으로 해결된다.이는 매스 스프링 모델에 대한 암묵적 매트릭스 시스템의 가우스-사이델 솔루션과 유사하다.그러나 각 시간 단계에서 동일한 순서로 제약을 해결하고, 거짓 진동을 방지하며, 제약 조건이 선형각운동량 보존을 위반하지 않도록 주의해야 한다.예를 들어 노드를 원하는 공간 영역 내에 유지하거나(예를 들어 애니메이션 모델에 충분히 근접하게), 형상 일치를 통해 신체의 전체적인 모양을 유지하기 위해 추가적인 위치 제약 조건을 적용할 수 있다.

변형 가능한 물체에 대한 충돌 감지

시뮬레이션된 부드러운 물체와 그 환경의 현실적인 상호작용은 시각적으로 현실적인 결과를 얻기 위해 중요할 수 있다.천의 자가 절개는 허용 가능할 정도로 사실적인 모의 의복을 위한 일부 적용에서 중요하다.이것은 특히 둘 이상의 변형 가능한 물체들 사이의 자기 충돌과 상호 충돌을 감지하고 해결할 경우, 대화형 프레임률에서 달성하기 어렵다.

충돌 검출은 이산/후방(물체는 미리 정해진 간격을 통해 시간 내에 진각되고, 그 다음에 침투가 감지되어 해결됨) 또는 연속/사전i(물체는 충돌이 일어날 때까지 진각되며, 계속 진행하기 전에 충돌을 처리함)일 수 있다.전자는 구현이 더 쉽고 빨라지지만 물체가 충분히 빠르게 움직이면 충돌을 감지하지 못하게 된다(또는 모의 충돌 감지).실시간 시스템은 일반적으로 충돌을 감지하지 못하는 것을 방지하기 위해 별개의 충돌 감지 방법을 사용해야 한다.

잘 정의된 "내부"로 천과 환경 물체 사이의 충돌을 감지하는 것은 시스템이 천 그물망 정점과 면이 신체를 교차하는지를 명확하게 감지하고 그에 따라 해결할 수 있기 때문에 간단하다.잘 정의된 "내부"가 존재하지 않는 경우(예: 닫힌 경계를 형성하지 않는 망사와의 충돌의 경우), 압출로 "내부"를 구성할 수 있다.사면체 사이의 충돌 탐지로 감소하기 때문에 사면체로 정의되는 연성체의 상호 또는 자가 결합은 간단하다.

그러나 침투한 천 노드가 "잘못된" 쪽에 있는지 여부를 시간 단계 후에 국소적으로 탐지할 수 있는 확실한 방법이 없기 때문에 이산 충돌 탐지를 통해 두 다각형 천 사이의 충돌을 탐지하는 것은 훨씬 더 어렵다.해결책에는 천운동의 이력을 사용하여 교차로 이벤트가 발생했는지 여부를 확인하거나, 천 상태를 전체적으로 분석하여 자체 교차를 감지하고 해결하는 방법이 포함된다.픽사는 천의 자기간섭을 검출하고 해결하기 위해 구성공간에서 메쉬 교차로에 대한 글로벌 위상학적 분석을 활용하는 방법을 제시했다.[26]현재, 이것은 일반적으로 실시간 천 시스템에 대해 계산적으로 너무 비싸다.

충돌 탐지를 효율적으로 하기 위해서는 충돌하지 않는 원형을 가능한 한 빨리 식별하고 시간을 낭비하지 않도록 배려에서 버려야 한다.이를 위해서는 [ 원시적 충돌에 대한 무차별력 시험을 피하기 위해 어떤 형태의 공간 분할 체계가 필수적이다.사용되는 접근법에는 다음이 포함된다.

  • 경계 볼륨 계층 구조(AABB 트리,[27] OBB 트리, 구면 트리)
  • 그리드[28], 균일(메모리 효율을 위해 해싱 사용) 또는 계층적(: 옥트리, kd-트리)
  • 삽입 정렬이 있는 스위프 가지치기 또는 프론트 트래킹과의 트리 충돌과 같은 일관성 탐색 체계.
  • 예를 들어 거친 AABB 트리와 충돌 잎 사이에 일관성이 있는 스윕 및 스윕과 같은 다양한 스키마의 조합을 포함하는 혼합 방법.

기타 응용 프로그램

소프트 바디 역학 방법을 통해 시뮬레이션할 수 있는 기타 효과는 다음과 같다.

  • 파괴할 수 있는 물질: 부서지기 쉬운 고체의 파손, 부드러운 몸체의 절단[29], 천의 찢김.유한요소법파단 역학에 따라 파단 발생시 물리적으로 결정되는 물질 내 응력 분포의 현실적인 모델을 포함하기 때문에 특히 파단[15] 모델링에 적합하다.
  • 가소성[18](영구 변형) 및 용해[30]
  • 모발,[31] 털, 깃털
  • 생체 의료 응용을[32] 위한 시뮬레이션 기관

컴퓨터 그래픽의 맥락에서 유체를 시뮬레이션하는 것은 보통 부드러운 신체 역학으로 간주되지 않을 것이며, 이것은 보통 모양과 형태를 유지하는 경향이 있는 물질의 시뮬레이션을 의미하도록 제한된다.이와는 대조적으로, 유체는 입자들이 상대적으로 약한 힘에 의해 결합되기 때문에, 그것을 포함하는 어떤 용기의 형태를 가정한다.

소프트 바디 물리학을 지원하는 소프트웨어

시뮬레이션 엔진

엔진 웹사이트 면허증 설명
총알 http://bulletphysics.org zlib 라이센스
탄소 http://numerion-software.com 소유권
크라이엔진 3 http://mycryengine.com 비무료
디지털 분자 물질 http://pixelux.com 소유권
하복 천 http://havok.com 비무료
후디니 https://www.sidefx.com/products/houdini/ 소유권 절차 생성 및 VFX 소프트웨어 - 부드러운 차체 FEM, 천 시뮬레이션(벨럼)
마야 엔보 http://autodesk.com/maya 비무료
오픈보 https://github.com/mmmovania/opencloth ? OpenGL에서 천 시뮬레이션 알고리즘과 소프트 바디 다이내믹스를 구현하는 소스 코드 모음입니다.
오픈티슈 http://opentissue.org zlib 라이센스
물리학 추상화 계층 http://www.adrianboeing.com/pal/index.html 3-clause BSD 균일 API, 다중 물리 엔진을 지원한다.
물리X http://developer.nvidia.com/physx 비무료
피즈 http://phyz.ath.cx 공용 도메인
개방형 시뮬레이션 프레임워크 아키텍처 http://www.sofa-framework.org/ GNU 약소 일반 공중 라이센스 v2.1+
스텝 http://edu.kde.org/step/ GNU 일반 공용 라이센스 v2
사이플렉스 http://syflex.biz 비무료
언리얼 엔진 https://unrealengine.com 소유권
베가 FEM http://run.usc.edu/vega 3-clause BSD
블렌더(소프트웨어) https://www.blender.org/ GNU 일반 공용 라이센스 v2
지바 VFX http://zivadynamics.com 소유권 캐릭터 시뮬레이션 소프트웨어 - FEM 근육, 지방, 피부 및 천

게임.

게임 웹사이트 면허증 설명
BeamNG.drive http://beamng.com 비무료 소프트바디 차량물리학을 기반으로 한 상업용 샌드박스 에스크 게임.차량의 작동 방식보다 차량의 구조를 시뮬레이션하십시오.
릭스 오브 로드스 https://rigsofrods.github.io GNU 일반 공용 라이센스 v3 자유 및 오픈 소스 차량 시뮬레이터.
레크페스트 http://nextcargame.com 비무료 더비 레이싱 게임.연체물리학(soft-body physics)은 상부구조에 대해 구현되지만 부품과 구성품(예: 엔진)은 간단한 손상 모델링(modeling)을 사용한다.

참고 항목

참조

  1. ^ Nealen, Müller, Keiser, Boxerman & Carlson (2005). "Physically Based Deformable Models in Computer Graphics". CiteSeerX 10.1.1.124.4664. {{cite web}}:누락 또는 비어 있음 url=(도움말)CS1 maint: 여러 이름: 작성자 목록(링크)
  2. ^ "Numerion Software - Carbon Physics".
  3. ^ "PhysX soft bodies". 24 February 2014.
  4. ^ "Pixelux's Digital Molecular Matter (DMM)".
  5. ^ "Havok Cloth".
  6. ^ "Bullet Physics".
  7. ^ "Maya Nucleus".
  8. ^ "Doc:2.4/Manual/Physics/Soft Bodies 2.46 - BlenderWiki". wiki.blender.org. Retrieved 2015-09-19.
  9. ^ Desbrun, Schroder & Barr (1999). "Interactive animation of structured deformable objects" (PDF).
  10. ^ a b Sederberg & Parry (1986). "Free-Form Deformation of Solid Geometric Models" (PDF).
  11. ^ Matyka & Ollila (2003). "A pressure model for soft body simulation" (PDF).
  12. ^ Kaufmann, Martin, Botsch & Gross (2008). "Flexible Simulation of Deformable Models Using Discontinuous Galerkin FEM" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  13. ^ Spillmann, Wagner & Teschner (2006). "Robust Tetrahedral Meshing of Triangle Soups" (PDF).
  14. ^ Bridson, Teran, Molino & Fedkiw (2003). "Adaptive Physics Based Tetrahedral Mesh Generation Using Level Sets" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  15. ^ a b Parker & O'Brien (2009). "Real-Time Deformation and Fracture in a Game Environment".
  16. ^ Terzopoulos, Platt, Barr & Fleischer (1987). "Elastically Deformable Models" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  17. ^ Wardetzky, Bergou, Harmon, Zorin & Grinspun (2007). "Discrete Quadratic Curvature Energies" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  18. ^ a b Müller, Heidelberger, Teschner & Gross (2005). "Meshless Deformations Based on Shape Matching" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  19. ^ Steinemann, Otaduy & Gross (2008). "Fast Adaptive Shape Matching Deformations".
  20. ^ "Havok Destruction".
  21. ^ Kaldor, James & Marschner (2008). "Simulating Knitted Cloth at the Yarn Level" (PDF).
  22. ^ Baraff & Witkin (1998). "Large Steps in Cloth Simulation" (PDF).
  23. ^ Provot (1997). "Collision and self-collision handling in cloth model dedicated to design garments". CiteSeerX 10.1.1.89.9232. {{cite web}}:누락 또는 비어 있음 url=(도움말)
  24. ^ Bridson, Fedkiw & Anderson (2002). "Robust Treatment of Collisions, Contact and Friction for Cloth Animation" (PDF).
  25. ^ Müller, Heidelberger, Hennix & Ratcliff (2006). "Position Based Dynamics" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  26. ^ Baraff, Witkin & Kass (2003). "Untangling Cloth" (PDF).
  27. ^ Van Den Bergen (1998). "Efficient Collision Detection of Complex Deformable Models using AABB Trees" (PDF).
  28. ^ Teschner, Heidelberger, Müller, Pomeranets & Gross (2003). "Optimized Spatial Hashing for Collision Detection of Deformable Objects" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  29. ^ Steinemann, Otaduy & Gross (2006). "Fast Arbitrary Splitting of Deforming Objects" (PDF).
  30. ^ Müller, Keiser, Nealen, Pauly, Gross & Alexa (2004). "Point Based Animation of Elastic, Plastic and Melting Objects" (PDF).{{cite web}}: CS1 maint : 복수이름 : 작성자 목록(링크)
  31. ^ Selle, Lentine & Fedkiw (2008). "A Mass Spring Model for Hair Simulation".
  32. ^ "When Will Virtual Surgery Make the Cut?". Scientific American. 2007.

외부 링크