2009-04-14 3 views

답변

17

FBO (프레임 버퍼 오브젝트는) 기본 프레임 버퍼 또는 화면보다 다른 이미지를 렌더링 할 수있는 대상입니다.

PBO (픽셀 버퍼 객체)을 사용하면 비동기식으로 픽셀 데이터를 장치로 전송하거나 장치에서 전송할 수 있습니다. 이는 픽셀 전송을 기다리는 동안 수행 할 수있는 다른 작업이있을 경우 렌더링 할 때 전반적인 성능을 향상시키는 데 도움이 될 수 있습니다.

12

나는 VBOs, PBOs and FBOs을 읽을 것 : 애플이 샘플 코드를 보여 PBOs 및 식 코멘트의이 개 아주 좋은 비트를 기록했다

. PBOs 및 식 코멘트는 OpenGL을 확장하지 윈도우 시스템 확장하기 때문에 그들이 어떤 platoform에 좋은있어 샘플 코드로도이 있지만, 맥 다릅니다.

그래서 모든 오브젝트 무엇입니까?

70

FBO 및 PBO의 차이점은 무엇입니까 : 여기 상황입니까?

더 좋은 질문은 비슷 방법이다. 그 (것)들에 관하여 유일한 그들의 이름은이다.

Framebuffer Object (대소 참고 : 프레임 버퍼가 두 개의 단어 아님) 렌더링 타겟으로서 사용할 수있는 다수의 이미지를 포함하는 오브젝트이다.

Pixel Buffer Object은 다음과 같습니다

  1. Buffer Object. FBO는 이 아니고 버퍼 개체입니다. 다시 : 프레임 버퍼는 한 단어입니다.
  2. 비동기 uploading/downloading of pixel data to/from images에 사용되는 버퍼 개체입니다.

텍스처로 렌더링하려는 경우 또는 non-screen framebuffer 만 렌더링하려는 경우 FBO를 사용합니다. 비동기식으로 응용 프로그램으로 픽셀 데이터를 다시 읽으려고하거나 픽셀 데이터를 OpenGL 이미지로 비동기 적으로 전송하려는 경우 PBO를 사용합니다.

그들은 모두 아무것도있어 없습니다.

+5

순수 연결 응답과 (불행히도 받아 들여지는) 잘못된 대답 위에 위의 투표가 시작되기를 바랍니다. –

+0

@ChristianRau : 확인했는데 OP가 여전히 정규식 인 것 같습니다. 그래서 받아 들여지기를 바랍니다. –

4

뭔가를 강조하고 싶습니다.

FBO 메모리 블록이 아닙니다. 포인터 구조체처럼 보입니다. 텍스처를 사용하려면 FBO에 텍스처를 첨부해야합니다. 텍스쳐를 첨부 한 후에는 오프 스크린 렌더링 또는 두 번째 패스 효과를 위해 텍스쳐를 그릴 수 있습니다. 반면에

struct FBO{ 
AttachColor0 *ptr0; 
AttachColor1 *ptr1; 
AttachColor2 *ptr2; 
AttachDepth *ptr3; 
}; 

, PBO 메모리 유형을 유지하는 메모리 블록 "블록이다."x 크기의 malloc이라고 생각해보십시오. 그런 다음 memcpy를 사용하여 데이터를 텍스처/FBO로 복사 할 수 있습니다."

  • 왜 PBO를 사용해야합니까?

호스트 메모리와 인터페이스하고 OpenGL 그리기를 중단하지 않고 중간 메모리 버퍼를 생성하여 호스트와 텍스처를 업로드합니다.