|
Deki 0.19.0
임베디드 디스플레이와 데스크톱을 위한 모듈식 C++ 2D 엔진
|
하나의 프로젝트가 어떤 화면에서든 실행됩니다. 모든 장치는 자신의 네이티브 해상도로 렌더링하며, 월드를 얼마나 보여 줄지는 카메라가 결정합니다.
| 설정 | 하는 일 |
|---|---|
| 직교 높이 | 카메라가 위에서 아래까지 보여 주는 월드의 양으로, 단위는 미터입니다. 너비는 화면 모양을 따릅니다. 픽셀 모드에서는 인스펙터가 이를 미터당 픽셀 값으로 환산해 표시합니다. 16 px/m에서 11.25 m는 180 px로 표시됩니다. |
| 픽셀 퍼펙트 | 정수 배율로만 확대하고, 카메라와 그려지는 모든 것을 아트 픽셀 격자에 맞춥니다. 픽셀 아트용입니다. |
| 투영 | 직교(평면, 2D용) 또는 원근(세로 시야각, 3D 메시용). |
모양이 같은 더 큰 화면은 같은 월드를 더 크게 그려 보여 줍니다. 더 넓은 화면은 양옆을 더 많이 보여 주고, 더 좁은 화면은 덜 보여 줍니다. 더 가까이 보려면 직교 높이를 줄이십시오.
미터당 픽셀(프로젝트 설정 > 단위)은 아트의 밀도입니다. 16 px/m에서 16 px 스프라이트의 너비는 1미터입니다.
직교 높이가 11.25 m인 카메라의 경우:
| 화면 | 보이는 것 |
|---|---|
| 1280x720 (16:9) | 20 x 11.25 m |
| 1920x1080 (16:9) | 20 x 11.25 m, 1.5x로 그림 |
| 320x240 (4:3) | 15 x 11.25 m: 16:9 뷰의 양옆이 잘림 |
| 2560x1080 (21:9) | 26.7 x 11.25 m: 양옆이 더 보임 |
| 240x320 (세로) | 8.4 x 11.25 m |
중요한 것은 타겟으로 하는 가장 좁은 화면 안에 두고, 더 넓은 화면을 위해 그 바깥에도 월드를 조금 만들어 두십시오. 그렇지 않으면 플레이어에게는 그곳에 카메라의 클리어 색상이 보입니다.
HUD는 월드가 아니라 화면에 속합니다. 왼쪽 위 모서리의 하트, 오른쪽 위의 점수 같은 것입니다. 오브젝트에 화면 앵커를 추가하고 격자에서 점을 고르십시오: 모서리, 변의 가운데, 또는 중앙. 오프셋은 그 점으로부터의 거리로, 단위는 미터이고 Y는 위쪽입니다. 따라서 왼쪽에서 0.875 m 안쪽, 위에서 1 m 아래에 있는 하트는 왼쪽 위에 오프셋 (0.875, -1)입니다.
그러면 오브젝트는 모든 화면에서, 그리고 카메라가 움직이는 동안에도 그 점에 머뭅니다. 다른 모든 것처럼 미터 단위로 크기가 정해지므로 카메라에 따라 크기가 바뀝니다. 320x240 화면과 536x240 화면에서는 같은 크기이고, 720p에서는 픽셀 수가 세 배입니다.
2D 픽셀 아트. 직교 높이를 아트의 네이티브 높이로 설정합니다. 예를 들어 16 px/m에서 240 px라면 15 m입니다. 픽셀 퍼펙트를 켭니다. 640x480 화면은 아트 픽셀 하나를 2x2로, 1280x720은 3x3으로, 400x300은 1x로 그리며 월드가 조금 더 보입니다. 픽셀 퍼펙트는 내림하므로, 카메라는 직교 높이의 일부를 잘라 내지 않고 조금 더 많이 보여 줍니다. 1x에도 못 미치는 작은 화면에서는 잘립니다.
2D 고해상도 또는 벡터 아트. 직교 높이를 주 화면에서 보여 줄 양으로, 미터당 픽셀을 아트의 밀도로 설정합니다. 모든 화면이 매끄럽게 확대·축소됩니다. 렌더러는 최근접 이웃 샘플링을 사용하므로, 크게 축소한 아트(1280에서 320으로)는 움직일 때 깜박입니다. 가장 작은 화면에 가깝게 제작하십시오.
3D 메시가 있는 2D. 2D와 같게 하되 카메라의 투영을 원근으로 설정합니다. 시야각은 직교 높이처럼 세로 방향이므로, 메시와 스프라이트가 모든 화면에서 맞춰집니다. 스프라이트는 여전히 평면으로 그려지며, 3D 공간에 배치하는 기능은 다음에 추가될 예정입니다.
3D. 카메라를 원근으로 설정하고 시야각을 정합니다. 직교 높이처럼 세로 방향이므로, 더 넓은 화면은 양옆을 더 많이 봅니다.
플레이 뷰의 툴바에서 볼 화면을 고릅니다. Unity의 Game 뷰와 같은 방식입니다.
그 옆에는 화면의 픽셀 포맷이 있습니다. 플레이는 그 크기와 포맷으로 실행됩니다. 크기는 장치의 화면이 바뀐 것처럼 플레이 중에도 바꿀 수 있지만, 포맷은 정지할 때까지 고정됩니다. 씬 뷰의 카메라 기즈모는 그 화면에 보이는 영역의 윤곽을 표시하며, 카메라가 없으면 씬 뷰는 원점 주위에 화면을 그립니다. 플레이 뷰는 프로젝트별로 선택을 기억합니다.
DekiEditor --render-scenes는 활성 플랫폼의 화면 크기에서 RGB565로 렌더링합니다. DEKI_RENDER_SIZE=WxH는 다른 크기로, DEKI_RENDER_FORMAT은 다른 포맷으로 렌더링합니다. --export --platform <id>는 활성 타겟이 아닌 다른 타겟용으로 익스포트합니다.
모든 화면에는 고유한 픽셀 포맷도 있습니다. 대부분의 소형 패널은 RGB565, 데스크톱은 풀 컬러입니다. 이를 따르는 것이 두 가지 있습니다.
플랫폼의 colorFormat은 그 화면의 포맷입니다. 에디터 자체의 캐시는 활성 플랫폼을 따르므로, 씬 뷰에 보이는 것이 곧 그 타겟이 받는 것입니다. 플레이 뷰의 포맷 드롭다운은 다른 포맷을 미리 보여 줍니다. 이미지는 그려질 때 변환되므로 어떤 포맷이든 어떤 화면에서든 그려집니다.
3D 모델도 .data 파일에서 같은 포맷 및 최대 크기 설정을 받으며, 모든 프레임버퍼 포맷으로 그려집니다. 모델의 텍스처는 2의 거듭제곱 크기로 저장되므로 최대 크기가 그 상한이 됩니다. 없음인 경우에는 소형 보드가 상주시킬 수 있는 크기인 256으로 제한됩니다.
프레임버퍼는 디스플레이 고유의 크기와 포맷이며, 디스플레이가 시작할 때 읽어 들입니다. 하나의 빌드가 크기가 다른 여러 화면에서 실행됩니다. 플랫폼의 screenWidth, screenHeight, colorFormat은 에디터가 미리 보여 주는 것이자 데스크톱 시뮬레이터가 여는 창의 크기와 포맷입니다.