Akashic Engine에서 3D
Akashic Engine은 2D 전용 게임 엔진입니다.콘솔기로 말하자면 슈퍼 홈 컴퓨터와 대형 드라이브의 세대라고 할 수 있으며, 그 시대에도 진정한 3D 게임이 있다.이 글은 소프트웨어 3D 렌더링기amber를 사용하여 Akashic Engine에서 3D 게임을 개발하는 것을 연구할 것이다.
amber
amber는 소프트웨어 3차원 렌더링기입니다.WebGL과 같은 하드웨어 기능이나 API를 사용하지 않습니다.
이미지가 README에서 로드됩니다.
이러한 기능은 다음과 같습니다.
amber 배포
amber는 publish에서 npmjs로 가지 않았습니다.GitHub에서 설치
npm install blackspotbear/amber
Akashic Engine 사용
amber의 예는 Akashic Engine의 내장 예입니다.3D 모델의 그리기 방법에 대한 설명을 샘플에 양보합니다. 여기에는amber의 내장 단계만 표시됩니다.
amber를 조립할 때,amber와 게임 엔진을 연결하는 두 가지 기능을 실현해야 한다.
ObjResource
amber 투시obj 파일는 재료와 무늬 등 관련 파일을 가져오는 기능을 제공합니다.파일을 읽는 방법은 게임 엔진에 따라 다르기 때문에 사용자는 이 인터페이스를 실현할 것이다.
interface ObjResource {
getTextureData(name: string): { width: number; height: number; rgba: Uint8ClampedArray};
getMaterialText(name: string): string;
}
예시 코드의 main.ts#L31-L47 는 실현 예이다.FrameBuffer
amber는 렌더링 결과를 기록합니다
FrameBuffer
.FrameBuffer
의 내용이 실제로 화면에 표시되는 것은 사용자의 책임이다.interface FrameBuffer {
resolution: {
width: number;
height: number;
};
colorBuffer: number[];
zBuffer: number[];
}
예시 코드의 FrameBuffer.ts#L20-L62 는 실현 예이다.이상은amber와 게임 엔진을 결합한 실현이다.
어떤 게임을 할 수 있을까요?
amber는 JS 엔진에서 모든 드로잉을 수행합니다.따라서 다각형의 수량이 비교적 많은 모델을 그리는 데는 비교적 긴 시간이 필요하다.증가FrameBuffer
도 부하를 증가시킵니다(저해상도 렌더링을 확대해서 보여 줍니다).게임에서의 사용을 고려하여 프레임 속도의 안정에 주의해야 한다.몇 개의 정점을 사용할 수 있는지 확인하십시오 (해상도가 프레젠테이션과 같다고 가정).
프레젠테이션과 함께 제공된 모델로켓의 정점 수는 646이다.akashic-sandbox 프로필에서 CPU 사용 시간을 확인합니다.이는 필자 MacBook Pro(1.4GHz Intel Core i5)의 결과입니다.
프레임당 9[ms] 정도 걸립니다.30[FPS]의 게임에서 프레임당 33.3[ms]의 종료 처리가 필요합니다.묘사에 사용할 시간을 15[ms]로 설정하면 646x15/9=1076이면 1000개의 정점이 표준이 됩니다.간단하게 3으로 자르면 333다각형이다.
슈퍼판 스타크래프트와 메가 드라이브 버전의 가상 경주가 한계입니까?
마지막
우리는 소프트웨어 3D 렌더링 머신을 이용하여 Akashic Engine에서 3D 게임을 개발하는 것을 고려한다.나는 상당히 엄격한 제한이 있다는 것을 발견했다.나는 득실과 합리성보다 더 중요한 것이 있는 사람이 인생을 즐기는 적당한 방법이라고 생각한다.
Reference
이 문제에 관하여(Akashic Engine에서 3D), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/blackspotbear/items/5fec690680636a50ce80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우리는 소프트웨어 3D 렌더링 머신을 이용하여 Akashic Engine에서 3D 게임을 개발하는 것을 고려한다.나는 상당히 엄격한 제한이 있다는 것을 발견했다.나는 득실과 합리성보다 더 중요한 것이 있는 사람이 인생을 즐기는 적당한 방법이라고 생각한다.
Reference
이 문제에 관하여(Akashic Engine에서 3D), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/blackspotbear/items/5fec690680636a50ce80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)