我有一个15年之久的Java项目一直窝在抽屉里。很久以前我发布了两段视频,于是人们会不断地问我关于实现细节的问题。我倒是打开了仓库,但是这个项目从来都没有真正完成。
几年以后我终于决定好好完成它,并看看在Godot Engine中完成它有多难罢了。于是在我决定了一定会很简单……然而,只有数学部分可能不好 😄
这个项目是一个基于算法生成的以动态LOD的行星。飞行从轨道一路飞到地表,所有的网格都会不断地变换。所有的一切都故意保持简单,纯脚本编写和着色器,完全不需要C++扩展或插件,目的就是做个学习资源。
README文件包含了完整的实现:
- quadtree-基的块状LOD(以相机距离为依据的块状切割和合并)
- 立方体到球体的投影(mesh到sphere)
- GLSL顶点着色器生成地形(5层噪声)
根据海拔的颜色选择(由海洋→沙子→草地→岩石→雪)
大气散射(Rayleigh + Mie)
前方裁剪和视界裁剪
大尺度精度的原点调整
*块状池和网格复用
💻 源码 + 详细内容: GITHUB
🌍 浏览器demo: LINK
希望有人能利用这个有所帮助。读完后可以克隆代码,甚至可以在评论区说说我做得好不好或者缺点在哪....不管怎么说,只求我的抽屉里终于少了一个枯bones。
评论 (0)