天天看點

WebGL— FrameBuffer,RenderBuffer,Texture差別

WebGL— FrameBuffer,RenderBuffer,Texture差別
WebGL— FrameBuffer,RenderBuffer,Texture差別

**Color Attachment:**存儲的是紋理圖檔顔色值,實質上紋理圖檔顔色值屬于顔色附着點的一種

**Depth Attachment:**指向的是深度緩沖區和顔色緩沖區

**Stencil Attachment:**指向的是模版緩沖區

**RenderBuffer Objects :**渲染緩沖區對象,無論是紋理、圖檔、顔色、深度緩沖區、模版緩沖區都存在這個對象

FrameBuffer 上的附着點其實相當于記憶體位址,它并沒有存儲實質的内容,隻是三個附着點或三個記憶體位址在FrameBuffer Objects例如color Attachment ,它僅僅是附着在FrameBuffer身上;

總結:

1.幀緩存(Frame Buffer Object即FBO)是顔色緩存、深度緩存、模闆緩存、累積緩存的集合,幀緩沖區對象并不是一個真正的緩沖區 ,相當于C中的指針;

2.渲染緩沖區對象(Render Buffer Object即RBO)是真正的緩沖區,由于渲染緩沖區對象是隻寫的,是以它們通常用作深度和模闆附件,因為大多數時候我們實際上并不需要讀取它們的值,但是我們确實關心深度和模闆測試。我們需要深度和模闆值進行測試,但是不需要對這些值進行采樣,是以renderbuffer對象非常适合此要求。當我們不從這些緩沖區采樣時,通常首選renderbuffer對象。

3.紋理作為FBO顔色緩沖區的依附;

差異對比來源1-個人部落格

差異對比來源2-learnopengl

差異對比來源3-StackOverflow

繼續閱讀