天空盒实现原理

游戏场景中通常都会使用天空盒,假如在室外环境室外的天空、云朵或者晚霞之类的都是由天空盒来展现,有些游戏还会根据游戏时间来变换天空盒使游戏到达一种真实的模拟。

  • cubeMap六面体天空盒,使用一个立方体在将立方体的六个表面贴上相应的纹理(类似于下图),然后渲染的时候之渲染盒子内部,其他游戏物体则处于六面体天空盒的内部(立方体的体积非常大),摄像机处于立方体的内部。在Dx12的红龙书中作者使用cube天空盒的效果如图二。
天空盒

天空盒

 

天空盒效果

天空盒效果

  • 半球天空盒(球形天空盒),使用半球或者球去罩住场景,纹理贴在球面上只渲染半球的内部,球形纹理并不好找网上很多的半球天空盒的纹理都是使用普通图片转换而来,也有一些土豪大佬就喜欢买全景摄像头去实景拍摄。,也可以使用一些算法去将cubeMap的纹理应用到半球网格上,比如从立方体的正中央向每个方向发出一个射线,射线与立方体相交点的像素就赋值给半球相应的位置,这样就将cubemap贴图应用到了半球网格上,这些映射操作通常都在着色器中进行。
半球天空盒

半球天空盒

 

  • 游戏中的云通常有以下几种方式实现方式
    • Billboard云,就是使用广告板来贴上云的纹理,云的纹理可以带有alpha通道,使用alpha通道去与天空和进行混合,也可不带alpha通道但混合时需要自己定义混合方式,使用广告板有一个好处,不管摄像机处于什么位置,广告板始终对准摄像机。
    • 粒子系统实现,用粒子系统去实现云层效果,容积云可以使用Billboard去模拟,也可以用粒子系统去实现。
    • 模型实现,直接使用建模软件去创建云的模型,不推荐。
容积云

容积云




未经允许不得转载:他日重逢 » 天空盒实现原理

赞 (1) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

隐藏
变装