OpenGL+OpenCV实现立方体贴图

Posted 逍遥一度,恣情江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL+OpenCV实现立方体贴图相关的知识,希望对你有一定的参考价值。

我屮艸芔茻,转眼就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. 其他部分就不赘述了

渲染结果如下图

 

代码已上传到git:https://git.oschina.net/rxdj/cubetestopengl.git。

夜已深,就到此。

以上是关于OpenGL+OpenCV实现立方体贴图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenGL 中使用立方体贴图数组来渲染带有阴影贴图的多个点光源?

OpenGL ES绘制魔方

Opengl:渲染到立方体贴图?

OpenGL:渲染天空盒立方体贴图问题

渲染动态立方体贴图 (OpenGL)

带有立方体贴图的 OpenGL 点光阴影映射