0
我正嘗試在iOS上使用OpenGL ES2創建照片編輯程序。我希望能夠使用片段着色器修改照片的某些部分。例如,如果用戶觸摸該點將被髮送到片段着色器的屏幕。片段着色器將在該點的某個半徑內添加一個效果。從FBO渲染紋理會導致模糊
我需要的是將片段着色器中所做的修改保存到下一幀。我讀過這樣做的方法是設置與紋理關聯的第二個幀緩衝區對象。以下是該程序的功能:
當前紋理0?如果是這樣,這是第一次繪製,所以我們將照片繪製到我們的FBO上(即將紋理投影到二維矩形上)。然後將矩形重新繪製到屏幕上,但是這次使用FBO作爲紋理源。之後,我們將FBO的紋理繪製回FBO。
即
if(_currentTextureID == 0)
_currentTextureID = _imageTexture
else
_currentTextureID = _frameBufferTextureID;
glBindFrameBuffer(GL_FRAMEBUFFER, _frameBufferID)
[self drawTexture: _currentTextureID];
[self bindDrawable]
[self drawTexture: _currentTextureID];
這方面的工作,但作爲驅動方法被調用多次的圖像變得模糊。我認爲這可能是因爲你無法將紋理渲染到它自己的FBO中,所以我嘗試了兩個FBO,但這也不起作用。我相當新的OpenGL,所以任何建議將不勝感激!
下面是完整的源代碼的鏈接: