zoukankan      html  css  js  c++  java
  • 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。

    夜已深,就到此。

    --------------------------------- 业精于勤而荒于嬉 行成于思而毁于随 ---------------------------------
  • 相关阅读:
    python 的rjust函数
    二叉树
    实验四 系统调用
    实验三:跟踪分析Linux内核的启动过程
    ZigZag Conversion1
    Oracle数据文件管理
    Java中hashcode,equals和==
    浅析Java中HashMap的实现
    迷宫(栈,堆,队列)
    TCP/IP的三次握手协议
  • 原文地址:https://www.cnblogs.com/riddick/p/7107438.html
Copyright © 2011-2022 走看看