地球文件参考¶
地图¶
这个 map 是地球文件中的顶级元素。
<map name = "my map" type = "geocentric" version = "2" > <options> <image> <elevation> <model> <libraries>
财产 |
描述 |
---|---|
名称 |
可读名称。对渲染没有影响。 |
类型 |
|
版本 |
地球文件版本。默认值为2。将此设置为加载旧的地球文件格式。 |
地图选项¶
这些选项控制与整个地图关联的地图模型和渲染属性。
<map> <options lighting = "true" elevation_interpolation = "bilinear" overlay_texture_size = "4096" overlay_blending = "true" overlay_resolution_ratio = "3.0" > <profile> <proxy> <cache> <cache_policy> <terrain>
财产 |
描述 |
---|---|
照明 |
是否允许照明明暗器影响地图。 |
elevation_interpolation |
|
overlay_texture_size |
设置用于悬垂的纹理大小(投影纹理) |
overlay_blending |
覆盖几何体在悬垂期间是否与地形混合(投影纹理 |
overlay_resolution_ratio |
对于褶皱几何体,相机附近投影纹理的分辨率与远离相机的分辨率之比。增加该值以改善靠近相机的外观,同时牺牲较远几何体的外观。注意:如果您使用的是支持滚动的摄影机操纵器,则可能需要将其设置为1.0;否则,您将得到悬垂工件!这是一个已知的问题。 |
地形选项¶
这些选项控制地形曲面的渲染。
<map>
<options>
<terrain driver = "rex"
lighting = "true"
min_tile_range_factor = "6"
first_lod = "0"
blending = "false"
color = "#ffffffff"
tile_size = "17"
normalize_edges = "false"
compress_normal_maps = "false"
normal_maps = "true"
min_expiry_frames = "0"
min_expiry_time = "0" >
财产 |
描述 |
---|---|
驱动 |
要加载的地形引擎插件。默认值为“rex”。有关每个插件的特定属性,请参阅驱动程序参考指南。 |
照明 |
地形是否接受照明(如有)。默认值=真 |
min_tile_range_factor |
确定地形图块的显示距离。该值是瓷砖的范围与其范围的比率,例如,如果瓷砖半径为10公里,且mtrf=7,则瓷砖将在大约70公里的范围内可见。默认值=6.0 |
first_lod |
地形将显示地砖的最低详细级别。也就是说,地形显示的LOD永远不会低于此值。 |
混合 |
设置为 |
tile_size |
每个地形图块的尺寸。每个地砖都有 |
normalize_edges |
计算沿地形图块边缘的法向量,使从一个图块到下一个图块的照明看起来更平滑。默认值=假 |
normal_maps |
是否生成和使用法线贴图代替几何体法线。普通地图与照明一起使用,以创建比仅用三角形表示更高分辨率地形的外观。默认值取决于引擎。 |
compress_normal_maps |
在发送到GPU之前是否压缩普通地图。必须在OpenScenegraph构建中构建Nvidia纹理工具图像处理器插件。默认值为假 |
min_expiry_frames |
地形图块在考虑到期之前未看到的帧数。默认值=0 |
min_expiry_time |
地形图块在考虑到期之前未被剔除的秒数。默认值=0 |
图像层¶
安 图像层 是覆盖在地图几何图形上的栅格图像。
<map> <image name = "my image layer" driver = "gdal" nodata_image = "http://readymap.org/nodata.png" opacity = "1.0" min_range = "0" max_range = "100000000" attenuation_range = "0" min_level = "0" max_level = "23" min_resolution = "100.0" max_resolution = "0.0" max_data_level = "23" enabled = "true" visible = "true" shared = "false" shared_sampler = "string" shared_matrix = "string" coverage = "false" min_filter = "LINEAR" mag_filter = "LINEAR" blend = "interpolate" altitude = "0" texture_compression = "none" > <cache_policy> <proxy>
财产 |
描述 |
---|---|
名称 |
可读层名称。不用于发动机。 |
驱动 |
用于为此层创建平铺的插件。有关每个插件的特定属性,请参阅驱动程序参考指南。 |
nodata_image |
表示源中“无数据”的图像的URI。如果osgearth将一个图块与此图像匹配,它将像在该位置找不到数据一样工作,并且它将 not 渲染瓷砖。 |
不透明性 |
层的不透明度, [0..1] . |
min_range |
最小能见度范围,以米为单位。如果摄像头比这个更近,瓷砖将不可见。 |
max_range |
最大能见度范围,以米为单位。此图块将不会绘制在此范围之外。 |
attenuation_range |
混合到最小范围或最大范围的距离。(不支持文本或图标,仅支持几何图形) |
min_level |
最小细节可见度。 |
max_level |
最大细节可见度。 |
min_resolution |
绘制图块的最小源数据分辨率。值是以源数据的本机单位表示的每像素单位。 |
max_resolution |
绘制图块时的最大源数据分辨率。值是以源数据的本机单位表示的每像素单位。 |
max_data_level |
新源数据可用于此图像层的最大详细级别。通常司机会报告这些信息。但你可能希望自己限制它。这对于一些没有分辨率限制的驱动程序尤其适用,例如栅格化驱动程序(Agglite)。 |
启用 |
是否在地图中包含此层。您只能在加载时设置它;这只是“注释掉”地球文件中一个层的简单方法。 |
看得见的 |
是否绘制层。 |
共享 |
为该层生成一个辅助的专用采样器,以便自定义明暗器可以全局访问该采样器。 |
shared_sampler |
对于共享层,将在glsl代码中提供采样器的统一名称。 |
shared_matrix |
对于共享层,可以在glsl代码中使用的纹理矩阵的统一名称,用于访问 |
新闻报道 |
指示这是一个覆盖层,即用特定语义传递离散值的层。例如,“土地利用”层,其中每个像素都具有一个值,该值指示该区域是否为草地、沙漠等。将一个层标记为覆盖范围将禁用任何插值、过滤或压缩,因为这些会损坏GPU上的采样数据值。 |
min_filter |
OpenGL纹理缩小过滤器用于此层。选项包括最近的、线性的、最近的、最近的、最近的、线性的、最近的 |
mag_filter |
用于此层的OpenGL纹理放大过滤器。选项与 |
texture_compression |
“auto”压缩GPU上的纹理;“none”禁用。FastDxT“使用FastDxT实时DxT压缩机 |
混合 |
“modulate”将像素与framebuffer相乘;“interpolate”将与基于alpha(def)的framebuffer混合。 |
海拔高度 |
在海平面以上米处渲染图像层。您可以使用它来渲染地面上的天气或云层,例如,作为视觉辅助。默认值=0 |
立面层¶
安 立面层 为地形引擎提供高度地图网格。OSGearth引擎将所有高程数据合成一个单独的高度图,并使用该图构建地形图。
<map>
<elevation name = "text"
driver = "gdal"
min_level = "0"
max_level = "23"
min_resolution = "100.0"
max_resolution = "0.0"
enabled = "true"
offset = "false"
nodata_value = "-32768"
min_valid_value = "-32768"
max_valid_value = "32768"
nodata_policy = "interpolate" >
财产 |
描述 |
---|---|
名称 |
可读层名称。不用于发动机。 |
驱动 |
用于为此层创建平铺的插件。有关每个插件的特定属性,请参阅驱动程序参考指南。 |
min_level |
最小细节可见度。 |
max_level |
最大细节可见度。 |
min_resolution |
绘制图块的最小源数据分辨率。值是以源数据的本机单位表示的每像素单位。 |
max_resolution |
绘制图块时的最大源数据分辨率。值是以源数据的本机单位表示的每像素单位。 |
启用 |
是否在地图中包含此层。您只能在加载时设置它;这只是“注释掉”地球文件中一个层的简单方法。 |
抵消 |
指示此层中的高度值是相对偏移,而不是真实地形高度采样。 |
nodata_policy |
如何处理“无数据”值。默认值为“插值”,将插值相邻值以填充孔。将其设置为“MSL”,以用当前海平面值替换“无数据”样本。 |
nodata_value |
将此值视为“无数据”。 |
min_valid_value |
将小于此值的任何内容视为“无数据”。 |
max_valid_value |
将任何大于此值的值视为“无数据”。 |
模型层¶
A 模型层 将外部三维模型渲染为地图层。
<map>
<model name = "my model layer"
driver = "simple" >
财产 |
描述 |
---|---|
名称 |
可读层名称。不用于发动机。 |
驱动 |
用于为此层创建平铺的插件。有关每个插件的特定属性,请参阅驱动程序参考指南。 |
模型层还允许您定义一个剪切遮罩。地形引擎将在与 边界几何 你提供的。你可以用这个工具 osgearth_boundarygen 创建这样的几何图形。
如果您有一个外部地形模型,并且希望将其插入到OSGearth地形中,那么这将非常有用。模型必须与地形处于同一坐标系中。
<map>
<model ...>
<mask driver="feature">
<features driver="ogr">
...
遮罩可以将任何多边形特征作为输入。可以使用内嵌几何体指定内嵌遮罩几何体:
<features ...>
<geometry>POLYGON((120 42 0, 121 41 0, 121 40 0))</geometry>
或者使用shapefile或其他功能源,在这种情况下,osgearth将使用 第一 源中的功能。
参考 mask.earth 示例。
简况¶
该轮廓告诉Osgearth应该使用空间参考系统、地理空间范围和平铺方案来渲染地图平铺。
<profile srs = "+proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"
vdatum = "egm96"
xmin = "560725.500"
xmax = "573866.500"
ymin = "4385762.500"
ymax = "4400705.500"
num_tiles_wide_at_lod_0 = "1"
num_tiles_high_at_lod_0 = "1">
财产 |
描述 |
---|---|
SRS |
地图的空间参考系。这可以是wkt字符串、epsg代码、proj4初始化字符串或股票配置文件名称。请参阅 空间参考 有关详细信息。 |
VDATUM |
轮廓的垂直基准,描述如何处理Z值。请参阅 空间参考 有关详细信息。 |
xmin、xmax、ymin、ymax |
地图的地理空间范围。这些单位是由上述SRS定义的(通常是投影地图的米,地心地图的度数)。 |
num_tiles_*_at_lod_0 |
瓷砖层次结构最顶层的大小。两个方向的默认值都是“1”。( 可选择的 ) |
隐藏物¶
为磁贴数据配置缓存。
<cache driver = "filesystem"
path = "c:/osgearth_cache" >
财产 |
描述 |
---|---|
驱动 |
用于缓存的插件, |
路径 |
路径(相对或绝对)或缓存文件夹或文件。 |
CachePolicy¶
确定给定元素如何与配置的缓存交互的策略。
<cache_policy usage="no_cache">
财产 |
描述 |
---|---|
使用 |
|
max_age |
将早于此值(秒)的缓存项视为过期。 |
代理服务器设置¶
代理服务器设置 允许为远程数据源配置网络代理。
<proxy host = "hostname"
port = "8080"
username = "jason"
password = "helloworld" >
希望这些属性是不言而喻的。
类库¶
预加载任何库。
<libraries>a</libraries>
可以使用“;”作为分隔符列出多个库名称。
<libraries>A;B;C;D;E</libraries>
在osg库路径中搜索库,库名称需要遵循osg nodekit库名称约定(使用osg库版本进行后缀修复)