E D R , A S I H C RSS

플레이오네 엔진

last modified: 2015-03-01 18:21:30 by Contributors


이미지는 This Is Games 에서.
영어 : Pleione Engine
프로젝트 마비노기에서 사용되는 3D 게임 엔진이다. 사하라 엔진과 매칭된다.

처음 나왔을 때엔 최적화가 잘 되어 있다고 칭찬을 많이 받았으나, 시간이 많이 흐르면서 멀티 코어 시대와 그래픽 카드 성능의 발전 때문에 버틸수가 없는 불쌍한 엔진.

Contents

1. 구성
2. 특징
3. 현행 문제
4. 어째서 랙의 주원인으로 까이게 되었는가?

1. 구성

  • 셸 셰이더 1.X
  • 자체적인 GI 시뮬레이터
  • 포스트 스크립트 필터
  • 3D 레스터라이저
  • 사하라 엔진과의 통신을 위한 리우드넷 기반 미들웨어

2. 특징

  • 플레이오네 엔진은 다른 엔진들과 달리 맵 데이터를 실시간으로 읽어들이기도 하지만, 게임 존이 나누어져 있기도 하며, 특정 위치를 넘어갈 때 새로 데이터들을 읽어들이는 기능들도 가지고 있다.[1]
  • GPU 부하보다 CPU 부하량이 훨씬 높고, 듀얼코어 이상을 지원하지 못한다. 이는 당시 하드웨어 환경 때문이다. 당시에 그래픽카드들의 성능은 CPU 연산을 보조하는 수준에 그쳤기 때문에 GPU 연산의 비중을 늘릴 수가 없었고(전혀 사용하지않는것은 아니다), CPU는 전부 싱글코어였기 때문. 아래의 성능과 관련된 모든 문제들은 이 특징 때문이다!
  • 맵이 좁은 경우에 한정이지만, 동적 로드 및 데이터 압축 기능들과 더불어 맵핑 품질 자동 제어 등 편리하면서 사양이 덜타게 하는 기능들이 많다.
  • 데이터를 조각내서 불러오는 특징이 있다. 물론 멀티스레드라는 건 아니다.
  • Z-축이 없다.
  • 텍스처 순환 기능이 있다.
  • 카툰렌더링을 기준으로 렌더 이미지 생성.
  • 윤곽선 추출 아웃라인 그리기를 한다. 3D 로의 착시감을 준다.

3. 현행 문제

  • 사람이 많은곳의 쿼드 코어로도 감당이 안될 정도로 랙이 심각하다. 스카이림 ENB 풀옵 모드 떡칠 고정 60프레임이 가능한 CPU로도 마비노기에서는 랙이 걸린다. 애초에 클라이언트 자체가 싱글코어밖에 지원 못하니 쿼드코어든 옥타코어든 랙이 걸리는건 매한가지다...
  • 대량의 맵 데이터 로드시 느려지는 현상. 이는 초기 2002년도에 생각하지 못한 것으로, 엔진 개발 시 맵 데이터와 텍스쳐의 로드가 증가할 것을 예상하지 못해 발생한 일이다.
  • 수직 동기화 옵션이 존재하지만 전체화면일 경우에만 해당되며 별도의 프레임 제한이 없다. 이 말인즉 그래픽 카드에 엄청난 과부하를 준다는 뜻. 마비노기를 창모드로 하면 고주파를 미친듯이 뿜어내는 그래픽 카드의 절규를 들을 수 있다. 별도의 프레임 제한 프로그램을 사용할 것.
  • 글로우 이펙트 효과 구동 시 매우 느려지는 현상. 이 역시 엔진용량의 한계에 의함.
  • 윤곽선 그리기 속도가 매우 느리다. 이것도 CPU에 의해 처리된다.
  • ATi 계열 그래픽 카드에서의 성능 급하락[2]

4. 어째서 랙의 주원인으로 까이게 되었는가?

플레이오네 엔진의 문제는 시대가 바뀌었지만, 껍데기만 바뀌고 자신은 안바뀌었다는 것.
그래픽 기술이 발전하면서, 처리해야할 데이터와 텍스처의 양이 증가하였지만, CPU와 메모리에서 그래픽 카드로 데이터를 전송해야 할 버스의 성능은 크게 향상되지 않았다. 덕분에 그래픽 관련 계산할 일은 미리미리 그래픽카드 쪽으로 보내서 GPU에서 연산해야한다.
하지만 플레이오네 엔진은 이런 일들이 일어나기 전에 만들어진 엔진. 그 당시에는 CPU에서 연산해서 보내도 충분했고, 애초에 GPU가 그렇게 성능이 좋지도 않았다. 결국 CPU가 계산의 대부분을 수행하는 방식을 택하게 된 것. 결국 CPU가 처리해야 하는 양이 늘어나는데, CPU 연산에 있어서 멀티코어는 지원하지도 않는다 맙소사
위에서 말하는 엔진용량이란 결국 그래픽 카드에 데이터를 전송하는 버스의 한계치라는 것이다. 이런 방식 때문에 CPU와 그래픽 카드의 성능이 좋아져도, 그만큼 효과를 보지 못하는 문제가 발생. 랙을 불러오게 되었다.
----
  • [1] 이것을 보고 프리로딩이라고 한다. 언리얼 엔진에도 이런기능이 있다.
  • [2] FireGL 이던지 HD 이던지 상관이 없다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2015-03-01 18:21:30
Processing time 1.5059 sec