2009-06-23 9 views
1

설명서에는 3D 렌더링 또는 프레임 버퍼 모드가 있고 각각 활성 디스플레이에만 적용될 수 있음을 의미합니다. 한 화면에 3D를 렌더링하고 다른 화면에 프레임 버퍼를 렌더링하는 방법이 있습니까?DS에서 3D 및 프레임 버퍼 모드 조합

+0

: 당신은 당신이 두 화면에 3D 렌더링 할 수 있도록 3D 엔진의 출력을 캡처하는 프레임 버퍼 모드를 사용하는 것을 의미하는 경우

는 바로이 작업을 수행되는 libnds 예제 폴더에있는 예제를보실 수 있습니다 우리는 3D 화면을 주 화면으로, 프레임 버퍼를 하위 화면으로, 아니면 한 배경에서 3D를, 다른 화면에서 프레임 버퍼를 사용하고 있습니까? FB로 모션 블러를하고 싶기 때문에 후자도 알고 싶습니다. – Skurmedel

+0

전자는 나에게 충분합니다. :) – FeepingCreature

답변

0

음 하위 엔진 (아래쪽 화면)에서 3D를 그릴 수 있도록 디스플레이 캡쳐 기능이 있다는 것을 들었습니다. 그래서 그것을 살펴본 결과 example을 발견했습니다.

슬프게도 DCAP 매크로는 문서화하지 않는 것, 그래서 현실에서의 모습 NDS/ARM9/video.h 정의했다 :

// Display capture control 

#define REG_DISPCAPCNT  (*(vu32*)0x04000064) 
#define REG_DISP_MMEM_FIFO (*(vu32*)0x04000068) 

#define DCAP_ENABLE BIT(31) 
#define DCAP_MODE(n) (((n) & 3) << 29) 
#define DCAP_DST(n) (((n) & 3) << 26) 
#define DCAP_SRC(n) (((n) & 3) << 24) 
#define DCAP_SIZE(n) (((n) & 3) << 20) 
#define DCAP_OFFSET(n) (((n) & 3) << 18) 
#define DCAP_BANK(n) (((n) & 3) << 16) 
#define DCAP_B(n)  (((n) & 0x1F) << 8) 
#define DCAP_A(n)  (((n) & 0x1F) << 0) 

내 미약 한 마음에 당신처럼 보이는을 3D를 캡처하고, 하위에 그려 넣고, 원하는 경우 주 프레임 버퍼를 사용할 수 있습니다. 서브 엔진에서 프레임 버퍼를 사용하려면 화면을 lcdSwap()으로 바꿔야합니다.

0

메인 디스플레이 엔진에서 3D를 사용하면 여전히 전체 서브 엔진이 프레임 버퍼 (또는 다른 2D) 유형의 그래픽 (예 : 확장 순환 배경 사용)을 수행합니다.

http://libnds.devkitpro.org/a00035.html