要实现环境映射,只需要创建一个合适的环境纹理图,然后让OpenGL生成纹理坐标。
创建纹理可以用一些处理图像的工具得到,基本上这个纹理就是一个能反射外界环境的一个球体的反射表面。创建了环境纹理图后,需要启用OpenGL的环境映射算法,对于要渲染的物体上的点,在环境图中找到一个这样的纹素:它对应的球面点的切面与该物体点的切面相同,并将该物体点的颜色绘制为该纹素的颜色。
要自动生成纹理坐标以支持环境映射,可以在程序中使用以下的代码:
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
创建纹理可以用一些处理图像的工具得到,基本上这个纹理就是一个能反射外界环境的一个球体的反射表面。创建了环境纹理图后,需要启用OpenGL的环境映射算法,对于要渲染的物体上的点,在环境图中找到一个这样的纹素:它对应的球面点的切面与该物体点的切面相同,并将该物体点的颜色绘制为该纹素的颜色。
要自动生成纹理坐标以支持环境映射,可以在程序中使用以下的代码:
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);