티스토리 뷰

카테고리 없음

OpenGL Framebuffer discard

newpolaris 2019. 7. 4. 12:17

이런것도 있넹

https://web.archive.org/web/20181116103215/https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html

코드 4-3 깊이 프레임 버퍼 제거

const GLenum discards [] = {GL_DEPTH_ATTACHMENT};
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
glDiscardFramebufferEXT (GL_FRAMEBUFFER, 1, discards);

참고 : 이 glDiscardFramebufferEXT기능은 EXT_discard_framebufferOpenGL ES 1.1 및 2.0 용 확장 프로그램에서 제공됩니다 . OpenGL ES 3.0 컨텍스트에서는 glInvalidateFramebuffer함수를 대신 사용하십시오 .

그러하다고 한다

코드 4-2 프레임 버퍼 첨부 지우기

glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
glClear (GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glClearOpenBloss ES에 "힌트"를 사용하여 렌더링 버퍼 또는 텍스처의 기존 내용을 삭제할 수 있으므로 이전 내용을 메모리에로드하는 데 드는 값 비싼 작업을 피할 수 있습니다.

애초에; 유지하는 것도 추가 옵션 줘야한느데?

Listing 4-4  Presenting the finished frame

glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER];

By default, you must assume that the contents of the renderbuffer are discarded after your app presents the renderbuffer. This means that every time your app presents a frame, it must completely re-create the frame’s contents when it renders a new frame. The code above always erases the color buffer for this reason.

If your app wants to preserve the contents of the color renderbuffer between frames, add the kEAGLDrawablePropertyRetainedBacking key to the dictionary stored in the drawableProperties property of the CAEAGLLayer object, and remove the GL_COLOR_BUFFER_BIT constant from the earlier glClear function call. Retained backing may require iOS to allocate additional memory to preserve the buffer’s contents, which may reduce your app’s performance.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크