Files
osmWorkflow/.trellis/tasks/08-25-rc-p3-render-separation/research/native-layer-consumption-matrix.md

2.7 KiB
Raw Blame History

Native Road 图层消费矩阵

调研日期2026-08-25

证据

  • 编译器在 scripts/compile-native-roads.js:57,65-76 声明并写出 12 个图层。
  • Blender 在 blender/generate_scene.py:796-834 遍历 catalog.NATIVE_ROAD_LAYERS,只消费其中 10 个图层。
  • 当前映射及基础高度来自 blender/osmassets/catalog.py:53-64ROAD_LAYERS

当前消费与 manifest 目标

编译器 source 当前 Blender 行为 当前材质槽 / z 来源 manifest 目标
road_surface 直接渲染 road_surface / ROAD_LAYERS.road_surface role: surface, materialLayer: road_surface
edge_lines 直接渲染 lane_separators / ROAD_LAYERS.lane_separators role: marking, materialLayer: lane_separators
intersection_surface 直接渲染 intersection_surface / ROAD_LAYERS.intersection_surface role: surface, materialLayer: intersection_surface
sidewalk_surface 直接渲染 sidewalks / ROAD_LAYERS.sidewalks role: surface, materialLayer: sidewalks
lane_separators color 分流 非 yellow: lane_separators; yellow: native_lane_separator_yellow; z 取 lane_separators role: marking, materialLayer: lane_separators, splitBy.coloryellow 特例)
center_lines color 分流 非 white: center_lines; white: native_center_line_white; z 取 center_lines role: marking, materialLayer: center_lines, splitBy.colorwhite 特例)
direction_arrows 直接渲染 lane_arrows_webscale / ROAD_LAYERS.lane_arrows_webscale role: marking, materialLayer: lane_arrows_webscale
turn_arrows 直接渲染 lane_arrows_webscale / ROAD_LAYERS.lane_arrows_webscale role: marking, materialLayer: lane_arrows_webscale
crosswalks 直接渲染 crosswalks / ROAD_LAYERS.crosswalks role: marking, materialLayer: crosswalks
vehicle_stop_lines 直接渲染 vehicle_stop_lines / ROAD_LAYERS.vehicle_stop_lines role: marking, materialLayer: vehicle_stop_lines
lane_centerlines 不进入 Blender 遍历 role: semanticBlender 跳过
connectors 不进入 Blender 遍历 role: semanticBlender 跳过

结论与实施约束

  • manifest 必须声明全部 12 个编译器图层,不能再用“未出现在列表中”表达不渲染。
  • role: semantic 的两个图层不得读取 GeoJSON 或创建 Blender 几何。
  • splitBy 至少需表达属性 color 的精确匹配与默认分支,且分流后沿用同一个基础材质槽的 z 值。
  • Blender 消费 manifest 时,未知 materialLayer、缺失 source 文件、或 source 未在 manifest 声明都必须报错;不能静默跳过。