#run-time #shaders #terra #terrain #scale #default

rshader

一个简单的运行时重新加载着色器的库

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2017年11月12日

#367 in 渲染


terra中使用

Apache-2.0

9KB
227

Terra crates.io docs.rs Github CI

Terra是一个正在开发的大型地形渲染库,它基于wgpu构建。

概述

Terra支持渲染整个地球,细节从数千公里到厘米不等。在Terra中,地形被视为一个高度图,以及一组存储表面法线、漫反射等信息的纹理图。

所有这些信息需要相当大的空间,因此它们不包括在这个仓库中。相反,必要的文件在运行时从互联网上流式传输,并缓存在当前用户的缓存目录中(例如,在Linux上默认为~/.cache/terra)。

细节级别(LOD)

为了确保帧率平滑且避免明显的"LOD popping",Terra在内部使用连续距离相关细节级别算法的球面映射版本。

增量生成

Terra通过流式传输包含地形属性的粗粒度瓦片并使用wgpu计算着色器添加分形细节来工作。

入门指南

安装Rust然后安装其他所需依赖项

$ sudo apt-get install libegl-dev libudev-dev build-essential libssl-dev cmake

运行应该像这样简单

git clone [email protected]:fintelia/terra && cd terra
cargo run --release

第一次运行Terra时,可能需要一两分钟来流式传输必要的文件。如果在过程中需要终止进程,不要担心,在后续运行中,它将从上次停止的地方继续。

完成该步骤后,您应该会看到Terra的主窗口。您可以使用箭头键进行导航,并通过空格键和Z键分别增加和减少高度。如果检测到游戏手柄,也支持游戏手柄控制。要退出,请按Esc键。

您还可以传递 --help 来查看一些其他命令行选项。

系统要求

  • Windows 或 Linux 操作系统(Terra可能在MacOS上运行,但尚未进行测试)
  • 快速互联网连接
  • 具有 2+ GB VRAM 的 GPU

数据来源/致谢

在运行过程中,此库从各种来源下载和合并数据集。如果您将其集成到自己的项目中,请确保根据适用情况对所有以下内容给予适当的致谢。

种类 来源
海拔 ETOPO1 全球地形模型
海拔 NASA 数字高程模型
正射影像 蓝宝石下一代
星星 耶鲁明星目录
树冠覆盖 全球森林变化
树木 SpeedTree
地面纹理 FreePBR

依赖项

~3–12MB
~114K SLoC