SlideShare a Scribd company logo
1 of 25
Download to read offline
PhysX :
A Practical introduction to
  Rigid Body Dynamics
                         2007.12.9
             김성익 (noerror@hitel.net)
                      NTREEVSOFT
Overview
•   PhysX SDK 소개

•   PhysX 구성 요소 소개
•   기본 샘플 예제를 이용한 구성 요소 Review
•   구성 요소 정리

•   오브젝트 바인딩
•   이슈
PhysX SDK 소개
• 물리 엔진
• by AGEIA (http://www.ageia.com)

• 라이센스
  – PC용 SDK package : 무료
  – 풀 소스 라이센스 (xbox 360, pc) : 50,000$
PhysX SDK 특징(1)
• 무료
• 충실한 튜터리얼 셈플제공
• 지속적인 업데이트

• 빠른 물리 연산
• 심플한 프로그래밍 인터페이스

• 드라이버를 반드시 설치해야 됨
• 소스 코드는 별도의 라이선스 필요
PhysX SDK 특징(2)
•   복잡한 강체 물리 시스템
•   캐릭터 컨트롤
•   자동차 다이나믹스
•   멀티 쓰레드/멀티 플렛폼/PPU지원
•   유체 시뮬레이션
•   옷, 깃발 등의 천 시뮬레이션
•   소프트 바디
•   역장 시뮬레이션
PhysX 구성 요소
• Scene
• Actor
   – Shape/Multi shape
   – Material
   – Force
• Joint

• Framework
• Thread Model
• Remote Debugger
기본 흐름
•   SDK 초기화
•   SDK 파라메터 세팅
•   Scene 생성

•   Scene 에 머트리얼 추가
•   Actor 추가
    – 위치, COM (center of mass), 머트리얼, Mass(혹은 Density) 등 설정
    – Shape
•   Joint 추가

•   Update

•   정보 얻어서 렌더링
샘플 Review(1) : Box on plane
• 간단한 Box를 이용한 Rigid
  Body Dynamics 샘플
• 처음 접해보기 좋음
• (동영상1)
샘플 Review(2)
• SDK 초기화




• SCENE 생성 및 초기화
샘플 Review(3)
• 머트리얼 설정



• 박스 Actor 생성
샘플 Review(4)
• 업데이트




• 힘
샘플 Review(5)
• 결과 얻기 / 적용
Scene
•   시뮬레이션이 이루어지는 Scene
•   NxPhysicsSDK 객체를 이용해서 생성, 소멸
    – NxPhysicsSDK ::createScene, NxPhysicsSDK::releaseSDK
•   Multiple Scene
•   Actor, Joint, Material 등 물리 객체 생성 소멸 관리
    – Actor : 물리 객체
    – Joint : 물리 객체를 구속
    – Material : 물리 객체의 표면 (마찰, 탄성)
Actor(1)
•   물리 객체
•   생성
    – Shape
         •   Plane, Sphere, Capsule, Box
         •   Heightfield
         •   ConvexhullMesh
         •   TriangleMesh
    – Multi Shape
    – CCD
•   속성
    –   무게, 관성
    –   위치, 모멘트
    –   속도, 각속도
    –   힘, 토크
Actor(2)
•   기타 속성
    – 충돌 그룹
    – gravity, frozen, kinematic,
      sleep
•   Awake/Sleep
•   Sweep
Joint
•   Actor를 구속 (축, 각도, 거리, 위치)
•   종류
    –   6 DOF. Revolute, Pulley : 모터
    –   6 DOF, Spherical, Revolute, Distance : 스프링
    –   6 DOF, Spherical, Revolute : 각 제한
    –   Prismatic, Fixed, Point In Plane, Point On Line
•   부서지는 Joint
Thread model
•   기본적으로 내부 쓰레드로 물리연산
    – NX_SF_SIMULATE_SEPARATE_THREAD




•   백그라운드 작업 중 Scene, Actor 객체 접근
Remote Debugger
•   어플리케이션 독립적으로 씬 디버깅



•   리플레이
•   (동영상2)
좌표계
•   회전과 이동 분리
•   Direct3D 좌표계
물리 모델링
• 단순화
• 단순화
• 단순화

• (동영상3)

• Joint 활용한 계층적인 구조
바인딩(1)
• 좌표계
• Actor TM => 오브젝트 TM

• 오브젝트와 Actor 초기위치가 동일 X
  – Actor 초기 TM = 오브젝트 TM * PivotTM
  – Actor world TM * Inverse(PivotTM) => 오브젝트 TM
바인딩(2)
• 계층 구조 오브젝트
 – A <- B
    • A   TM = A LOCAL * TM WORLD
    • B   TM = B LOCAL * A TM

    • B   LOCAL = B TM * Inverse(A   TM)

 – A’, B’ Actor와 A’와 B’를 Joint로 연결
    • A’TM = A LOCAL * TM WORLD
    • B’TM = B LOCAL * A’TM
    • B LOCAL = B’TM * Inverse(A’TM)
 – Actor 의 WORLD TM을 이용해서 Object의 Local TM을 구함
 – Rag Doll
바인딩(3)
• 단순화된 계층 구조 오브젝트
 – A <- B <- C <- D 를 (A’ <- B’ <- C’) <- D’로 모델링
    •   Actor 2개와 1개의 조인트로 구성
    •   B LOCAL, C LOCAL 은 고정
    •   A의 TM은 (A’ <- B’ <- C’) 액터로 결정
    •   D의 local TM은 (A’ <- B’ <- C’) 와 D’ 액터로 결정
         – D TM = D LOCAL * C LOCAL * B LOCAL * A TM
         – D’ TM = D LOCAL * C LOCAL * B LOCAL * (A’<-B’<-C’)TM
         – D LOCAL = D’ TM * Inverse(C LOCAL * B LOCAL * (A’<-B’<-C’)TM)
이슈
• 퍼포먼스
• 래그 돌

• 엔진 통합
• 물리 추상 객체

• 서버 사이드 다이나믹스

• PPU
질문
•

More Related Content

What's hot

2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑Sukwoo Lee
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기강 민우
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해tartist
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머포프 김
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflectionBongseok Cho
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow MappingSukwoo Lee
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門Shuichi Hayashi
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 

What's hot (20)

2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑
 
Motion blur
Motion blurMotion blur
Motion blur
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
물리 기반 셰이더의 이해
물리 기반 셰이더의 이해물리 기반 셰이더의 이해
물리 기반 셰이더의 이해
 
[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머[2012 대학특강] 아티스트 + 프로그래머
[2012 대학특강] 아티스트 + 프로그래머
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflection
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 

Viewers also liked

2.7 재귀적 차원 클러스터링 충돌 검출을 위한 빠른 알고리즘
2.7 재귀적 차원 클러스터링   충돌 검출을 위한 빠른 알고리즘2.7 재귀적 차원 클러스터링   충돌 검출을 위한 빠른 알고리즘
2.7 재귀적 차원 클러스터링 충돌 검출을 위한 빠른 알고리즘준섭 김
 
1 future discovery_research
1 future discovery_research1 future discovery_research
1 future discovery_researchatelier t*h
 
증강현실을 통한 두더지 잡기 게임
증강현실을 통한 두더지 잡기 게임증강현실을 통한 두더지 잡기 게임
증강현실을 통한 두더지 잡기 게임Junhee Han
 
Physics for Game Programmers
Physics for Game ProgrammersPhysics for Game Programmers
Physics for Game ProgrammersUng-Su Lee
 
1 introduction - Mechanics of Materials - 4th - Beer
1 introduction - Mechanics of Materials - 4th - Beer1 introduction - Mechanics of Materials - 4th - Beer
1 introduction - Mechanics of Materials - 4th - BeerNhan Tran
 
3 torsion- Mechanics of Materials - 4th - Beer
3 torsion- Mechanics of Materials - 4th - Beer3 torsion- Mechanics of Materials - 4th - Beer
3 torsion- Mechanics of Materials - 4th - BeerNhan Tran
 
Engineering mechanics dynamics, 6th edition
Engineering mechanics dynamics, 6th editionEngineering mechanics dynamics, 6th edition
Engineering mechanics dynamics, 6th editionAndre Duque
 

Viewers also liked (7)

2.7 재귀적 차원 클러스터링 충돌 검출을 위한 빠른 알고리즘
2.7 재귀적 차원 클러스터링   충돌 검출을 위한 빠른 알고리즘2.7 재귀적 차원 클러스터링   충돌 검출을 위한 빠른 알고리즘
2.7 재귀적 차원 클러스터링 충돌 검출을 위한 빠른 알고리즘
 
1 future discovery_research
1 future discovery_research1 future discovery_research
1 future discovery_research
 
증강현실을 통한 두더지 잡기 게임
증강현실을 통한 두더지 잡기 게임증강현실을 통한 두더지 잡기 게임
증강현실을 통한 두더지 잡기 게임
 
Physics for Game Programmers
Physics for Game ProgrammersPhysics for Game Programmers
Physics for Game Programmers
 
1 introduction - Mechanics of Materials - 4th - Beer
1 introduction - Mechanics of Materials - 4th - Beer1 introduction - Mechanics of Materials - 4th - Beer
1 introduction - Mechanics of Materials - 4th - Beer
 
3 torsion- Mechanics of Materials - 4th - Beer
3 torsion- Mechanics of Materials - 4th - Beer3 torsion- Mechanics of Materials - 4th - Beer
3 torsion- Mechanics of Materials - 4th - Beer
 
Engineering mechanics dynamics, 6th edition
Engineering mechanics dynamics, 6th editionEngineering mechanics dynamics, 6th edition
Engineering mechanics dynamics, 6th edition
 

Similar to 07_PhysX 강체물리 입문

120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseerChan-hyun Park
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
Unity performanceoptimzation
Unity performanceoptimzationUnity performanceoptimzation
Unity performanceoptimzationegohim
 
Stingray with Physx
Stingray with PhysxStingray with Physx
Stingray with PhysxJaehoon Lee
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon
 
Node.js and react
Node.js and reactNode.js and react
Node.js and reactHyungKuIm
 
09_motionblur
09_motionblur09_motionblur
09_motionblurnoerror
 
Decentraland Software Development Kit(SDK) 2.0 버전
Decentraland Software Development Kit(SDK) 2.0 버전Decentraland Software Development Kit(SDK) 2.0 버전
Decentraland Software Development Kit(SDK) 2.0 버전Jiseob Park
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기Chris Ohk
 
우송비트 10기 1조 ar mechanic craft
우송비트 10기 1조 ar mechanic craft우송비트 10기 1조 ar mechanic craft
우송비트 10기 1조 ar mechanic craft상우 김
 
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)Donggi Hahm
 
상속 관련 이것저것
상속 관련 이것저것상속 관련 이것저것
상속 관련 이것저것EG Lim
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSSukwoo Lee
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...BOAZ Bigdata
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...Gyubin Son
 

Similar to 07_PhysX 강체물리 입문 (20)

120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer120513 unity3 d_start_skyseer
120513 unity3 d_start_skyseer
 
Metalslug ppt
Metalslug pptMetalslug ppt
Metalslug ppt
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
Unity performanceoptimzation
Unity performanceoptimzationUnity performanceoptimzation
Unity performanceoptimzation
 
iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발iOS7 Sprite Kit을 이용한 게임 개발
iOS7 Sprite Kit을 이용한 게임 개발
 
D2 Havok
D2 HavokD2 Havok
D2 Havok
 
Stingray with Physx
Stingray with PhysxStingray with Physx
Stingray with Physx
 
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
09_motionblur
09_motionblur09_motionblur
09_motionblur
 
Decentraland Software Development Kit(SDK) 2.0 버전
Decentraland Software Development Kit(SDK) 2.0 버전Decentraland Software Development Kit(SDK) 2.0 버전
Decentraland Software Development Kit(SDK) 2.0 버전
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기
 
우송비트 10기 1조 ar mechanic craft
우송비트 10기 1조 ar mechanic craft우송비트 10기 1조 ar mechanic craft
우송비트 10기 1조 ar mechanic craft
 
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
[NDC2014] 직접 만들어서 즐겨보자 - Cocos2d-x3.0으로 한 시간만에 횡스크롤 슈팅게임 만들기 (함동기)
 
상속 관련 이것저것
상속 관련 이것저것상속 관련 이것저것
상속 관련 이것저것
 
ES6 for Node.js Study 4주차
ES6 for Node.js Study 4주차ES6 for Node.js Study 4주차
ES6 for Node.js Study 4주차
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTS
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [전진 4드론] : RAD(Reinforcement learning method for ...
 
Feature Pyramid Network, FPN
Feature Pyramid Network, FPNFeature Pyramid Network, FPN
Feature Pyramid Network, FPN
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
 

More from noerror

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlasnoerror
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집noerror
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법noerror
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문noerror
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법noerror
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법noerror
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrainsnoerror
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기noerror
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강noerror
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개noerror
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개noerror
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editornoerror
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개noerror
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁noerror
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 
06_자동차물리입문(1)
06_자동차물리입문(1)06_자동차물리입문(1)
06_자동차물리입문(1)noerror
 

More from noerror (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법KCGS11_실시간 피사계 심도 렌더링 개선 기법
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 
11_통계 자료분석 입문
11_통계 자료분석 입문11_통계 자료분석 입문
11_통계 자료분석 입문
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법11_SH를 이용한 실시간 투명 근사법
11_SH를 이용한 실시간 투명 근사법
 
ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법ICON08_게임 애니메이션 최적화 기법
ICON08_게임 애니메이션 최적화 기법
 
08_Marching Cube Terrains
08_Marching Cube Terrains08_Marching Cube Terrains
08_Marching Cube Terrains
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
08_플래시 맛보기
08_플래시 맛보기08_플래시 맛보기
08_플래시 맛보기
 
08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강08_애니메이션고등학교 게임과 특강
08_애니메이션고등학교 게임과 특강
 
08_Wxwidgets 소개
08_Wxwidgets 소개08_Wxwidgets 소개
08_Wxwidgets 소개
 
07_스케일폼 소개
07_스케일폼 소개07_스케일폼 소개
07_스케일폼 소개
 
07_Visual Shader Editor
07_Visual Shader Editor07_Visual Shader Editor
07_Visual Shader Editor
 
06_HDR 소개
06_HDR 소개06_HDR 소개
06_HDR 소개
 
06_게임엔진 활용팁
06_게임엔진 활용팁06_게임엔진 활용팁
06_게임엔진 활용팁
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
06_자동차물리입문(1)
06_자동차물리입문(1)06_자동차물리입문(1)
06_자동차물리입문(1)
 

07_PhysX 강체물리 입문

  • 1. PhysX : A Practical introduction to Rigid Body Dynamics 2007.12.9 김성익 (noerror@hitel.net) NTREEVSOFT
  • 2. Overview • PhysX SDK 소개 • PhysX 구성 요소 소개 • 기본 샘플 예제를 이용한 구성 요소 Review • 구성 요소 정리 • 오브젝트 바인딩 • 이슈
  • 3. PhysX SDK 소개 • 물리 엔진 • by AGEIA (http://www.ageia.com) • 라이센스 – PC용 SDK package : 무료 – 풀 소스 라이센스 (xbox 360, pc) : 50,000$
  • 4. PhysX SDK 특징(1) • 무료 • 충실한 튜터리얼 셈플제공 • 지속적인 업데이트 • 빠른 물리 연산 • 심플한 프로그래밍 인터페이스 • 드라이버를 반드시 설치해야 됨 • 소스 코드는 별도의 라이선스 필요
  • 5. PhysX SDK 특징(2) • 복잡한 강체 물리 시스템 • 캐릭터 컨트롤 • 자동차 다이나믹스 • 멀티 쓰레드/멀티 플렛폼/PPU지원 • 유체 시뮬레이션 • 옷, 깃발 등의 천 시뮬레이션 • 소프트 바디 • 역장 시뮬레이션
  • 6. PhysX 구성 요소 • Scene • Actor – Shape/Multi shape – Material – Force • Joint • Framework • Thread Model • Remote Debugger
  • 7. 기본 흐름 • SDK 초기화 • SDK 파라메터 세팅 • Scene 생성 • Scene 에 머트리얼 추가 • Actor 추가 – 위치, COM (center of mass), 머트리얼, Mass(혹은 Density) 등 설정 – Shape • Joint 추가 • Update • 정보 얻어서 렌더링
  • 8. 샘플 Review(1) : Box on plane • 간단한 Box를 이용한 Rigid Body Dynamics 샘플 • 처음 접해보기 좋음 • (동영상1)
  • 9. 샘플 Review(2) • SDK 초기화 • SCENE 생성 및 초기화
  • 10. 샘플 Review(3) • 머트리얼 설정 • 박스 Actor 생성
  • 12. 샘플 Review(5) • 결과 얻기 / 적용
  • 13. Scene • 시뮬레이션이 이루어지는 Scene • NxPhysicsSDK 객체를 이용해서 생성, 소멸 – NxPhysicsSDK ::createScene, NxPhysicsSDK::releaseSDK • Multiple Scene • Actor, Joint, Material 등 물리 객체 생성 소멸 관리 – Actor : 물리 객체 – Joint : 물리 객체를 구속 – Material : 물리 객체의 표면 (마찰, 탄성)
  • 14. Actor(1) • 물리 객체 • 생성 – Shape • Plane, Sphere, Capsule, Box • Heightfield • ConvexhullMesh • TriangleMesh – Multi Shape – CCD • 속성 – 무게, 관성 – 위치, 모멘트 – 속도, 각속도 – 힘, 토크
  • 15. Actor(2) • 기타 속성 – 충돌 그룹 – gravity, frozen, kinematic, sleep • Awake/Sleep • Sweep
  • 16. Joint • Actor를 구속 (축, 각도, 거리, 위치) • 종류 – 6 DOF. Revolute, Pulley : 모터 – 6 DOF, Spherical, Revolute, Distance : 스프링 – 6 DOF, Spherical, Revolute : 각 제한 – Prismatic, Fixed, Point In Plane, Point On Line • 부서지는 Joint
  • 17. Thread model • 기본적으로 내부 쓰레드로 물리연산 – NX_SF_SIMULATE_SEPARATE_THREAD • 백그라운드 작업 중 Scene, Actor 객체 접근
  • 18. Remote Debugger • 어플리케이션 독립적으로 씬 디버깅 • 리플레이 • (동영상2)
  • 19. 좌표계 • 회전과 이동 분리 • Direct3D 좌표계
  • 20. 물리 모델링 • 단순화 • 단순화 • 단순화 • (동영상3) • Joint 활용한 계층적인 구조
  • 21. 바인딩(1) • 좌표계 • Actor TM => 오브젝트 TM • 오브젝트와 Actor 초기위치가 동일 X – Actor 초기 TM = 오브젝트 TM * PivotTM – Actor world TM * Inverse(PivotTM) => 오브젝트 TM
  • 22. 바인딩(2) • 계층 구조 오브젝트 – A <- B • A TM = A LOCAL * TM WORLD • B TM = B LOCAL * A TM • B LOCAL = B TM * Inverse(A TM) – A’, B’ Actor와 A’와 B’를 Joint로 연결 • A’TM = A LOCAL * TM WORLD • B’TM = B LOCAL * A’TM • B LOCAL = B’TM * Inverse(A’TM) – Actor 의 WORLD TM을 이용해서 Object의 Local TM을 구함 – Rag Doll
  • 23. 바인딩(3) • 단순화된 계층 구조 오브젝트 – A <- B <- C <- D 를 (A’ <- B’ <- C’) <- D’로 모델링 • Actor 2개와 1개의 조인트로 구성 • B LOCAL, C LOCAL 은 고정 • A의 TM은 (A’ <- B’ <- C’) 액터로 결정 • D의 local TM은 (A’ <- B’ <- C’) 와 D’ 액터로 결정 – D TM = D LOCAL * C LOCAL * B LOCAL * A TM – D’ TM = D LOCAL * C LOCAL * B LOCAL * (A’<-B’<-C’)TM – D LOCAL = D’ TM * Inverse(C LOCAL * B LOCAL * (A’<-B’<-C’)TM)
  • 24. 이슈 • 퍼포먼스 • 래그 돌 • 엔진 통합 • 물리 추상 객체 • 서버 사이드 다이나믹스 • PPU