OpenGL 学习笔记-2015.4.18——立方体纹理映射-天空盒子-环境映射

这篇博客详细介绍了在OpenGL中实现立方体纹理映射的过程,包括如何创建天空盒子和应用环境映射。通过C++编程,展示了图形学在游戏开发中的应用,读者将能理解并掌握相关技术。
摘要由CSDN通过智能技术生成
 立方体映射(cube-map)纹理是一种特殊类型的纹理,用于环境映射,使用一组图像并把他们作为立方体的面。立方体映射的6个面用正方形并且大小相同的6个子纹理表示。要从立方体纹理中采样的时候, 使用的纹理坐标是3维,并且被看做来自原点的方向!方向指向用来读取纹理的立方体映射表面的位置。在这里例子中,有关于环境映射的代码,主要思想是通过观察向量和表面的法向量反射来确定采样的纹理坐标。
    通过将一个新的纹理名绑定到GL_TEXTURE_CUBE_MAP纹理目标,然后调用glTexStorage2D()以GL_TEXTUR_CUBE_MAP作为参数为立方体纹理映射分配储存空间,这个调用将为立方体纹理映射的所有6个面分配内存。分配内存后,立方体纹理映射用6个特殊的目标集合表示,分别是:GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.或者调用 glTexImage2D() 以6个特殊标识符分别分配6个面的内存,设置数据。
 for (int face = 0; face < 6; face++)
 {
  glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face,
                                 level,
                                 image->internalFormat,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值