OpenGL ES之Swift使用GLSL语言渲染图片的显示
生活随笔
收集整理的這篇文章主要介紹了
OpenGL ES之Swift使用GLSL语言渲染图片的显示
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
整體思路
一、GLSL和iOS
- 本片主要使用編譯鏈接自定義的shader(頂點著色器/片元著色器)。用簡單的GLSL語言來實現(xiàn)頂點、片元著色器,并對圖形進行簡單的變換。
- OpenGL ES只是用來做渲染的,所iOS要提供一個載體,就是CAEAGLLayer,創(chuàng)建的方法是,通過重寫UIView的類屬性(OC中是類方法)返回CAEAGLLayer.self。它是一個對core animation的封裝,它能滿足所有的OpenGLES的方法訪問。
- CAEAGLLayer:在制定該圖層關聯(lián)的視圖作為渲染器的目標圖形上下文之前,可以使用drawableProperties屬性更改呈現(xiàn)屬性。此屬性允許您配置呈現(xiàn)表面的顏色格式以及表面是否保留其內容。 因為OpenGL ES渲染的效果是要提交到用戶使用的核心動畫上,所以使用在該layer上的任何效果和動畫都會影響渲染的3D效果,為了時性能最佳你應該做一下操作:設置圖層為不透明,設置圖層邊界以匹配顯示的尺寸,確保圖層沒有做變換。
- 盡量避免在CAEAGLLayer添加其layer。如果必須要添加其他非OpenGL內容,那么如果將透明的2D內容置于GL內容之上,并確保OpenGL內容是不透明的且沒有轉換過,那么性能還是可以接受的。當在豎屏上繪制橫向內容時,應該自己旋轉內容,而不是使用CAEAGLLayer轉換來旋轉它。
二、GLSL實現(xiàn)圖片渲染的思路
- 創(chuàng)建圖層:重寫layerClass,將YDWView返回的圖層從CALayer替換成CAEAGLLayer,并設置描述屬性;
- 創(chuàng)建上下文?
總結
以上是生活随笔為你收集整理的OpenGL ES之Swift使用GLSL语言渲染图片的显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL ES之GLSL渲染图片显示
- 下一篇: OpenGL ES之纹理翻转的解决策略