簡體   English   中英

在Opengl ES 2(ios)中啟用抗鋸齒

[英]Enable antialiasing in Opengl ES 2 (ios)

我在IOS中啟用多重采樣時遇到問題。

我指的是本指南

如果向下滾動到

清單4-5創建多樣本緩沖區

您可以清楚地看到,我們(當然)需要一個解析緩沖區。 但是,第一步沒有顯示任何類型的初始化。 我是否只需要

glGenFramebuffers(1, &resolveBuffer);
glBindFramebuffer(GL_FRAMEBUFFER, resolveBuffer);

我應該何時初始化幀緩沖區對象?

另外,最后一步對我來說還不清楚。

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

我到底應該在哪里做? 它完成了什么? 我想在fbo和vbo進行抽獎之后,但我不確定。

有沒有人鏈接到我可以查找的某種示例項目? 我用谷歌搜索,但我找不到任何:(

最后,我正在使用浮動紋理渲染HDR圖像。 我必須在此說明中保留GL_RGBA8_OES嗎?

glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height);

對我來說,目前還不清楚我是否已經渲染到紋理。

提前致謝!

您使用的代碼與不使用多重采樣的代碼相同。 然后,在渲染緩沖區glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height)上使用多重采樣添加一個額外的幀緩沖區。繪制時,您需要綁定采樣緩沖區而不是原始緩沖區。 完成繪制后,需要將樣本緩沖區解析為原始緩沖區:

glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, originalFrameBuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFrameBuffer);
glResolveMultisampleFramebufferAPPLE();

此時,您已經填充了原始緩沖區( originalFrameBuffer ),並且可以隨意使用它,甚至可以綁定它並繼續對其進行繪制,將其用作紋理,或者如在Apple示例中將其渲染緩沖區內容呈現到視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM