1. 程式人生 > >OpenGL+OpenCV實現立方體貼圖

OpenGL+OpenCV實現立方體貼圖

一個個 -1 今天 mage src .cn ges 類型 交點

我屮艸芔茻,轉眼就7月份了。

今天試了一下立方體貼圖,比較簡單,大概說下和平面貼圖的區別。

1. 平面貼圖需要的是紋理坐標vec2;立方體貼圖需要的是一個方向向量vec3,長度沒有關系,重要的是方向,OpenGL會根據方向向量與立方體的各個面的交點來采樣紋理。

2.在立方體的六個面貼六張不同的圖片,我用的方法是將六張圖片讀入到OpenCV的Mat數組中,需要從BGR轉到RGB,然後一個一個去綁定紋理。此時區別2D紋理的地方在於要是用GL_TEXTURE_CUBE_MAP,而不再是GL_TEXTURE_2D了。可以用簡單的for循環去一個個綁定紋理,紋理目標是枚舉類型,依次加1。

技術分享

3. 在頂點著色器中輸出vec3的方向向量,在片段著色器中讀入。片段著色器中需要uniform 一個samplerCube ,而不是2D紋理中的sampler2D。最後用texture函數去采樣就行了。

技術分享

4. 其他部分就不贅述了

夜已深,就到此。

OpenGL+OpenCV實現立方體貼圖