저는 프로젝트의 게임 플레이 (ios-opengles 2.0)를 녹음하기 위해 everyplay SDK를 사용했습니다. 그 잘 작동합니다. 그러나 RenderToTexture (그림자)를 사용하면 빈 화면 만 기록됩니다. 어떻게이 문제를 극복 할 수 있습니까?Everyplay는 다중 렌더링 패스를 지원합니까? (ios)
그림자의 경우 rendertarget을 여러 번 렌더 패스해야합니다. 다른 방법이 있습니까?
저는 프로젝트의 게임 플레이 (ios-opengles 2.0)를 녹음하기 위해 everyplay SDK를 사용했습니다. 그 잘 작동합니다. 그러나 RenderToTexture (그림자)를 사용하면 빈 화면 만 기록됩니다. 어떻게이 문제를 극복 할 수 있습니까?Everyplay는 다중 렌더링 패스를 지원합니까? (ios)
그림자의 경우 rendertarget을 여러 번 렌더 패스해야합니다. 다른 방법이 있습니까?
은 다음과 같이 그것을 시도 :
while(1) {
renderShadow();
glBindFramebuffer(GL_FRAMEBUFFER, fbo1);
[everyplayCapture afterPresentRenderbuffer:fbo1];
glClearColor(0.45f, 0.45f, 0.45f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
....
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
...
[everyplayCapture beforePresentRenderbuffer:fbo1];
[(EAGLView *)self.view presentFramebuffer];
}
+1이 절차는 문제를 완전히 해결했습니다. 지침에 감사드립니다. – VivekParamasivam
나중에 나는 createframebuffer.As에서 정의한 프레임 버퍼에 대해 afterPresentRenderbuffer를 호출하고 있다고 확신합니다. 다중 렌더링 패스는 단일 패스에 2 개 이상의 프레임 버퍼를 바인딩해야합니다.
가 fbo1 (프레임 버퍼 개체) everyplay 사용되며 fb02 그림자위한 것임을 고려할 다음 그림자를 렌더링하기위한 코드 순서 아래while(1){
glClearColor(0.45f, 0.45f, 0.45f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
....
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
...
[(EAGLView *)self.view presentFramebuffer];
}
이 그림자없이 프레임마다 실행 순서를 제공
while(1) {
glClearColor(0.45f, 0.45f, 0.45f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
renderShadow();
glBindFramebuffer(GL_FRAMEBUFFER, fbo1);
....
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
...
[(EAGLView *)self.view presentFramebuffer];
}
renderShadow(){
glBindFramebuffer(GL_FRAMEBUFFER, fbo2);
....
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
....
}
두 개의 FBo로 glBindframebuffer를 이동하면 화면이 공백이되고 Everyplay는 빈 화면을 기록합니다. Everyplay의 통합을 제거하면 위의 그림자 코드가 잘 작동합니다. 내가 선을 포함하는 경우, IOS "EveryplayRecord.xcodeproject"에 대한 Everyplay에서 제공하는 예제 프로젝트에서 는
glBindFramebuffer(GL_FRAMEBUFFER, defaultFrameBuffer); // in drawRect() method it also renders blank screen.
glBindFramebuffer (GL_FRAMEBUFFER, fbo1) 다음에 [everyplayCapture beforePresentRenderbuffer : fbo1]을 이동하면 어떨까요? 그림자 코드 예제에서? –
답장을 보내 주셔서 감사합니다. 귀하의 제안은 변경되었지만 문제는 완전히 해결되지 않았습니다. glBindFramebuffer를 놓은 후 (GL_FRAMEBUFFER, fbo1); [everyplayCapture beforePresentRenderbuffer : fbo1] 행 옆에 녹음 중에는 게임이 잘 렌더링되지만 'PlayLastRecorded'를 클릭하면 아무 것도 표시되지 않습니다. 솔루션에 가깝다고 생각합니다.
– VivekParamasivam아래 답변을 시도하십시오. afterPresentRenderBuffer와 beforePresentRenderbuffer를 올바르게 배치하는 것이 중요하며 경우에 따라 Everyplay FAQ에서 언급 한 setActiveFramebufferCallback을 사용해야 할 수도 있습니다. –
네, 가능합니다. Unity 3 차원 프로젝트에서 음영을 사용했고 레코딩이 정상적으로 작동했습니다. 프레임 버퍼와 관련이있을 수 있습니다. createframebuffer에서 정의한 프레임 버퍼에 대해서만 afterPresentRenderbuffer를 호출해야합니다. –