GLSL实现多重纹理映射(例子取自glsl橙皮书第10章)

本文介绍了如何使用GLSL实现从太空视角观测的地球模拟,重点讲解了如何处理白天与黑夜的纹理切换、海水与陆地的反射效果以及云层的视觉效果。通过顶点和片段着色器的分析,详细阐述了散射光、反射光的计算以及纹理融合的方法。
摘要由CSDN通过智能技术生成

要实现的是使用GLSL来模拟从太空角度观测的地球,该例子取自GLSL橙色书第10章。这个例子写的还是蛮有教学作用的,不过感觉把太多的重点放到了gloss map上面,这不要讲的是多重纹理来着吗。。。总之多学学没错。

 

一、要想实现对地球的模拟,我们可以画一个球,然后直接使用一副从太空拍摄的地球纹理贴图作于球面上(也就是简单的纹理映射),但是这样做会有一些“不真实”的地方:

(1)我们知道地球上是有一些人为manmade的光源(比如各大城市所发出的光芒),当夜晚来临的时候,即使从太空中看地球,各大城市也会发出明显的光芒。所以我们得判断地表上的每一处(其实就是球面上的每一个vertex)是白天还是黑夜,这个可以通过灯光向量和球面顶点法向量的夹角值来判断。当地表某点处于白天时,我们使用一副daytime的纹理位图并作一些相关的光照计算,而当处于夜晚时,我们不进行光照融合计算而是直接使用一副黑夜纹理贴图。见下图,分别是白天/黑夜纹理:

                                                                  图1.1 daytime纹理贴图

                                              图1.2 nighttime纹理贴图(感觉灯光的亮度表现了地域的繁荣度)

 

(2)另一个不真实的地方在

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值