Community研究与数据分析github.com

Firmansjk/blendergis-terrain

根据用户提供的坐标、地图范围范围和输出名称,构建 BlenderGIS 地形图和灰度高程渲染图。专用于地理参考底图到 SRTM 的工作流程,不适用于无关的 Blender 操作。

blendergis-terrain 是什么?

该技能自动化了 Blender 中基于地理参考数据的地形生成工作流程。它利用 BlenderGIS 插件,根据用户指定的纬度和经度获取 Google 卫星底图,并从 OpenTopography 请求 SRTM 30 米高程数据,以在 Blender 场景中创建 3D 地形网格。技能处理网格细分、材质分配和地图范围节点配置,以控制高程映射。它设置了自上而下的正交相机,并以 16 位灰度 PNG 格式渲染地形,输出文件放置在活跃的 .blend 文件旁边。该技能旨在与 Claude Code、Cursor 和 Codex 等 AI 代理平台配合使用,通过处理外部 API 交互、文件权限和 UI 约束,确保工作流程的可重复性和可移植性。它通过使用用户本地配置的 OpenTopography API 密钥并避免在日志或源控制中暴露敏感数据来优先考虑用户隐私。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Firmansjk/BlenderGIS-Terrain-Export-AISkill/tree/HEAD/blendergis-terrain

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

BlenderGIS 地形工作流程

使用活跃的 Blender 项目和 BlenderGIS 插件。保留当前场景,并在可用时重用用户的现有材质。

收集运行输入

在开始前询问任何缺失的值。除非用户明确要求重用,否则不要从之前的运行中带入值。

  • 纬度
  • 经度
  • 地图范围 From Min
  • 地图范围 From Max
  • 渲染文件名,不包含扩展名

使用 BlenderGIS 首选项中配置的本地 OpenTopography API 密钥。切勿将 API 密钥、精确坐标或每次运行的范围值放入此技能、AGENTS.md、版本控制或公共日志中。如果密钥缺失,请要求用户在本地配置。

构建底图和地形

  1. 确认 BlenderGIS 已启用,并在更改任何内容之前检查当前场景、项目路径和选中的地形对象。
  2. 将地理参考场景居中到提供的纬度和经度。使用缩放级别为 14 的 Google 卫星底图,并将当前视图导出为纹理平面。
    • BlenderGIS 的 G 位置搜索使用 Nominatim 地理编码器。如果用户未授权将坐标发送到该服务,则改为本地设置场景的地理参考,而不提交搜索查询。
    • 地图瓦片提供商将收到所选区域的瓦片请求。在用户的请求未明确授权该外部请求时,请与用户确认提供商。
  3. 请求底图范围的 OpenTopography SRTM 30 米高程数据,并将其应用于选中的底图网格。使用用户的本地 API 密钥首选项;不要打印或记录请求 URL。
    • 优先使用临时栅格路径,并在清理临时文件之前将生成的图像/纹理打包到 Blender 项目中。避免覆盖现有栅格或在授权的项目文件夹之外写入 .blend 文件。
  4. 在编辑模式下,选择所有地形几何体并使用 6 次切割进行细分。返回物体模式。
  5. 按堆栈顺序应用地形的修改器。
  6. 移除旧的材质分配,如果存在则使用用户的现有材质 Material.001。如果缺失,询问使用哪种材质,而不是在未指示的情况下创建替代品。
  7. 在该材质中,找到名为 Map Range 的节点。将其标量 From Min 和 From Max 插座设置为提供的值。Blender 可能暴露重复的浮点和向量插座;编辑 VALUE 插座。保持不变的其他节点值和链接。

设置相机和渲染

  1. 创建或重用当前自上而下的正交相机。将其 X/Y 位置居中到地形评估的世界边界上。将裁剪起始设置为 0.1 m,裁剪结束设置为 12000 m。
  2. 使用请求的正交缩放(在既定工作流程中为 9000)开始,并将相机放置在地形上方。选择一个高于最高表面点且使整个地形保持在裁剪范围内的 Z 值。
  3. 正交相机的 Z 值不会改变构图。将 camera.data.view_frame(scene=scene) 中的相机帧与地形的世界边界进行比较。如果请求的缩放裁剪了表面,请解释尺寸并在更改用户指定的缩放前询问。全帧缩放应满足 frame_width >= terrain_width 和 frame_height >= terrain_height。
  4. 切换到布局工作区并使用当前相机进行渲染。使用提供的文件名和 .png 扩展名、PNG 格式、黑白颜色模式和 16 位深度,将图像保存到活跃的 .blend 文件旁边。除非用户要求,否则不要保存 .blend 文件。
  5. 验证保存的文件存在且为 16 位灰度 PNG。报告其路径、渲染设置以及 .blend 文件本身是否已保存。

可移植性和文件处理

  • 在运行时从活跃的 .blend 文件解析输出文件夹;不要硬编码特定机器的路径。
  • 如果项目文件夹位于可写工作区之外,则将渲染暂存到授权的工作区,并使用批准的文件复制路径将其放置到项目旁边。切勿通过 Blender 脚本绕过文件系统权限。
  • 在覆盖现有输出图像之前先与用户确认。

相关技能