zoukankan      html  css  js  c++  java
  • OpenGL cubeMap

    glsl 的reflect(I,N)其中I是 眼睛(camera)位置到顶点位置的方向向量,N为顶点法线,必须要归一化

    橙宝书里给出的计算过程是这样的:reflect(I,N) = I - 2 *dot(I,N)*N  

    vec3 reflect(const vec3 &i, const vec3 &n)
    {
        return i - 2.0f * dot(n, i) * n;
    }

     

     

    //cubeMap
    glGenTextures(1, &m_TexID);

    glBindTexture(GL_TEXTURE_CUBE_MAP, m_TexID);

    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_GENERATE_MIPMAP, GL_TRUE);

    //-x
    glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_X , 0, GL_RGBA8, NegX.getWidth(), NegX.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, NegX.getData());
    //x
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X , 0, GL_RGBA8, PosX.getWidth(), PosX.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, PosX.getData());
    //y
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Y , 0, GL_RGBA8, PosY.getWidth(), PosY.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, PosY.getData());
    //-y
    glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y , 0, GL_RGBA8, NegY.getWidth(), NegY.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, NegY.getData());
    //z
    glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Z , 0, GL_RGBA8, PosZ.getWidth(), PosZ.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, PosZ.getData());
    //-z
    glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z , 0, GL_RGBA8, NegZ.getWidth(), NegZ.getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, NegZ.getData());

    glBindTexture(GL_TEXTURE_CUBE_MAP, 0);

    Texture targetOrientation
    GL_TEXTURE_CUBE_MAP_POSITIVE_X Right
    GL_TEXTURE_CUBE_MAP_NEGATIVE_X Left
    GL_TEXTURE_CUBE_MAP_POSITIVE_Y Top
    GL_TEXTURE_CUBE_MAP_NEGATIVE_Y Bottom
    GL_TEXTURE_CUBE_MAP_POSITIVE_Z Back
    GL_TEXTURE_CUBE_MAP_NEGATIVE_Z Front

    //----------------------------------------------------暂且记下,回去再写

  • 相关阅读:
    如何了解网络链路的性能,吞吐量测试
    Struts+Spring+HibernateSSH整合实例
    在百度贴吧打出被和谐的字和特殊字符:比如繁体字
    SVN 小记
    SVN 小记
    SVN needslock 设置强制只读属性
    在百度贴吧打出被和谐的字和特殊字符:比如繁体字
    TortoiseSVN与Subversion 1.5
    .NET中非对称加密RSA算法的密钥保存
    SVN needslock 设置强制只读属性
  • 原文地址:https://www.cnblogs.com/dragon2012/p/6100802.html
Copyright © 2011-2022 走看看