首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebGL地球:如何制造云

WebGL地球:如何制造云
EN

Stack Overflow用户
提问于 2015-07-03 14:32:45
回答 1查看 2.1K关注 0票数 6

问题

我想用WebGL从低轨道(这里到300公里)建立一个真实的地球视图。也就是说,在网络上,它所包含的一切,而且,在移动上。不要停止阅读这里:为了使这一点不那么困难,用户可以到处寻找,但不是潘,所以视图只涉及一个小3000公里宽的区域。但是这张照片跟随着一颗卫星,几分钟后,用户回到了原来的地方,地球自转的微小变化,等等,所以云层不可能一直在同一个地方。

实际上我还能把城市的灯光,极光,闪电……除了云彩。我见过很多实时渲染的演示程序和研究人员,但是他们都没有一个很好的,真实的云层。然而,我确信我是第100(.)个人考虑这样做,所以请点亮我。

所暗示的问题很少:

  • 用于云的输入是什么?气象实况数据?
  • 什么渲染的可能性?带有云图的透明图层,用着色器修改?几个透明的图层来获得一种体积渲染的感觉?但是如何将阴影投到另一个:唯一的解决方案是使用一个网格?或者阴影可以按程序计算并每x分钟映射到服务器上?

极少数规格

以下是一些按重要性排序的总结我还没有看到的东西的想法:

  1. 云层遮住了地球的60%。
  2. 云分散城市和闪电,晚上有瑞利散射。
  3. 在这个距离上,视差效应是可见的,甚至与最小的云相当可怕。

据我所见,即使是昂贵的实时气象在线资源也是没用的:它们借助紫外线和红外光波瞄准雨云或暴风云,因此它们无法100%捕捉到它们,也没有给出我们都知道的“正常”视图。此外,罕见的好云纹理在可见光下拍摄,很难区分地面和云:有时,5000公里长的海岸不存在于任何地方。服务器可以使用这些图像来创建更好的纹理。

当我看到这些图片时,我设想最草率的方法是将包含不同模型的数据库中的几个漂亮的云网格合并起来,然后在用户经过时将这些网格稍微转换到一个着色器中。如果90分钟后他回来的时候还在这里,不管他的模型是不是又变了。然而,飓风不能消失。

你觉得这个怎么样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-04 06:36:54

为了达到这种效果,可能只有一种适当的方法,那就是:

  1. Voxel映射+体绘制可能带有回射线绘制 由于你的位置是固定的,所以它不应该是那么困难的内存要求。您需要同时实现MIE和瑞利散射。散射可以简化很多,而且看起来还不错。
代码语言:javascript
复制
- [simplified atmosphere scattering](https://stackoverflow.com/a/19659648/2521214)
- [realistic n-body solar system simulation](https://stackoverflow.com/a/28020934/2521214)

体素映射处理光隙,阴影和散射相对容易,但需要大量的内存和计算能力。所有其他的2D技术通常只是痛苦地围绕着3D体素映射,本机所做的几乎没有什么努力。例如:

代码语言:javascript
复制
- [Voxel map shadows](https://stackoverflow.com/a/22373855/2521214)

  1. 过程云图生成器 对于每一种类型的云,您都需要这样做,所以您需要渲染一些内容。这里有libs/demos/例子,见:
代码语言:javascript
复制
- [first relevant google hit](http://vterrain.org/Atmosphere/Clouds/)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31209237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档