本文主要是介绍CubeMap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当我们实现天空盒,天空球的时候经常会用到这个技术
当我们要得到某点p的颜色值时,从天空盒的中心指向某点p的射线和天空盒相交,相交点采样的纹理值就是p点的颜色值
在HLSL中,我们使用TextureCube来保存这种纹理
当我们想要反射周围的物体时,比如通过球将周围的环境反射出来
我们可以使用这个方式:
e为眼睛所在的位置,p是物体上的点,n是物体在p点的法线,v是e关于n的反射线
v和天空盒的交点,采样得到的颜色即为p点的颜色
这样就可以实现将周围的环境反射到物体上
效果如下:
那些球将周围的环境反射到表面上了
在实现显示天空盒/天空球时
VertexShader如下:
cbuffer PerMatrix : register( b0 )
{float4x4 gWorldVie
这篇关于CubeMap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!