설명서에는 3D 렌더링 또는 프레임 버퍼 모드가 있고 각각 활성 디스플레이에만 적용될 수 있음을 의미합니다. 한 화면에 3D를 렌더링하고 다른 화면에 프레임 버퍼를 렌더링하는 방법이 있습니까?DS에서 3D 및 프레임 버퍼 모드 조합
1
A
답변
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) 유형의 그래픽 (예 : 확장 순환 배경 사용)을 수행합니다.
: 당신은 당신이 두 화면에 3D 렌더링 할 수 있도록 3D 엔진의 출력을 캡처하는 프레임 버퍼 모드를 사용하는 것을 의미하는 경우
는 바로이 작업을 수행되는 libnds 예제 폴더에있는 예제를보실 수 있습니다 우리는 3D 화면을 주 화면으로, 프레임 버퍼를 하위 화면으로, 아니면 한 배경에서 3D를, 다른 화면에서 프레임 버퍼를 사용하고 있습니까? FB로 모션 블러를하고 싶기 때문에 후자도 알고 싶습니다. – Skurmedel
전자는 나에게 충분합니다. :) – FeepingCreature