jasu's blog
블로그 메뉴글
[AS3] 3대(APE, Revive, Fisix) Physics Engine 정리
3대 Physics Engine 정리
타이틀 |
|||
제작 |
MIT(Alec Cove) |
Andre michelle |
Fisix 회사 |
라이센스 |
LGPL |
Free |
Free(제한적) |
규모 |
소 |
중 |
대 |
API 문서 |
다운로드 한 소스로부터 |
||
특징 |
Simple |
고속, 정확 |
다기능 |
표현 범위 |
정방형 파티클 등 |
베이지어곡석 표면 처리 등 |
로프, 프렉탈, 지형
등 |
테스트 예 |
APE
먼저 처음 접했던 것은 APE 물리엔진이었다. 이것은 AS2 버전으로 이미 알려졌던 Flade 엔진을 AS3로 고치면서 새롭게 APE라는 이름으로 나오게 되었다. 위 3개의 엔진 중에 가장 심플한 클래스 구조를 가지고 있다. 19개의 클래스 중에 public 클래스는 불과 12개 밖에 되지 않기 때문에 소스를 분석하는데도 그리 어렵지 않을 것 같다.
Revive
Revive는 두 번째로 접하게 된 물리 엔진이다. 2005, 2006 MAX conference에도 스피커로 참여했던 Andre michelle이 만든 엔진이다. Revive의 경우는 베이지어 곡선 처리가 가능하여 surface 표현할 때 곡선처리가 가능하다. 물리엔진의 계산 표현이 비교적 정교하여 움직임이 매끄럽고 속도가 빠르다. 마우스 이벤트에 대해 기본적으로 제공하고 있기 때문에 약간의 확장을 통해서 마우스를 통한 인터렉션이 자유롭다.
클래스 구조
* de/
o popforge/
+
revive/
# application/ - 어플리케이션
* SceneContainer.as
– 뷰어
* Simulation.as - 물리
엔진
# display/ - 표시
* ExtDrawAPI.as – Graphics을 사용하고 호를 그리는
확장
* IDrawAble.as – 표시오브젝트
관련 Interface
# forces/ - 힘
* FixedSpring.as - 고정
용수철
* IForce.as - 힘을
가지는 오브젝트를 위한 Interface
* Spring.as - 용수철
# geom/ - 지오메트리
* BezierCubic.as – 3 베이지어곡선
* BezierQuadric.as - 4 베이지어곡선
* BoundingBox.as - 바운딘
* ICurve.as - 곡선을
위한 Interface
* Vector.as - 2 차원
벡터
# member/ - 물체
* Immovable.as - 움직이지
않는 물체의 base class
*
ImmovableBezierQuadric.as - 움직이지 않는 4 베이지어곡선
*
ImmovableCircleInner.as - 움직이지 않는 원
*
ImmovableCircleInnerSegment.as - 움직이지 않는 호
*
ImmovableCircleOuter.as - 움직이지 않는 원
*
ImmovableCircleOuterSegment.as - 움직이지 않는 호
* ImmovableGate.as
* ImmovableGroup.as
- 움직이지 않는 그룹
* ImmovablePoint.as
- 움직이지 않는 점
* Movable.as - 움직이는
물체의 base class
* MovableCircle.as - 움직이는
원
*
MovableParticle.as - 움직이는 점
* MovableSegment.as
- 움직이는 선
# resolve/
*
DynamicIntersection.as - 동적 접점
* IDynamicIntersectionTestAble.as
- 동적인 접점을 테스트하는Interface
* IResolvable.as
+ surface/ - 인터페이스
# display/ - 표시
*
DefaultTextFormat.as - 이 라이브러리의 디폴트 텍스트 포맷
* FPSCounter.as -
FPS 카운터
# io/ - IO
* PopKey.as – 키
코드 상태를 관리
* PopMouse.as - mouse button의 상태를 관리
# valuation/ -
* Potentiometer.as –
미터
Fisix
Fisix 엔진은 0.5 alpha버전으로 공개되어 있으나 위의 APE, Revive 보다 많은 기능을 포함하고 있다. 소스를 다운로드 하면 API문서, 라이브러리, 샘플 6개와 나머지 라이선스와 관련된 텍스트 파일을 볼 수 있다. Public 클래스는 47개 정도 되어 꽤 많은 기능을 제공하고 있다. as파일은 없으며 swc 파일만을 배포하고 있는 듯 하다.
* Example1 … 타이머, 엔진 표현, 직선 표면 1 개, 차
바퀴
* Example2 … ENTER_FRAME , 엔진 표현, 차 바퀴
*
Example3 … ENTER_FRAME , 엔진 표현, 용수철, 마우스 interaction
*
Example4 … 숫자 키1 ~4 ,5 ~6 모드 변환,
파티클의 자동 삭제
*
Example5 … 로프, SWF 부품(타이어)
*
Example6 … 유모차