【问题标题】:Parsing .exr heightmap into a mongoDB database将 .exr 高度图解析为 mongoDB 数据库
【发布时间】:2012-08-14 08:03:06
【问题描述】:

对于我目前正在创建的基于 2d 自上而下图块的游戏,我需要将包含高度图数据的 .exr 文件解析到我的 mongodb 中(或将其转换为其他格式,然后读入数据库)。

这基本上是我使用 Terragen 制作的游戏世界的表示。

我想我需要读出每个像素的高度图数据,然后将其转换为我数据库中的 x,y 平铺。

如果我能做到这一点,我应该留下一个二维数组,上面附有各种 x、y 坐标和高程。从那里,我应该能够确定游戏世界中那个地方的瓷砖类型,然后继续前进。

但是,我不知道如何从这个 .exr 文件中提取数据,然后将其读入我的 mongoDB 数据库上的二维地理空间索引数组。

希望有人能帮忙! :)

【问题讨论】:

  • 我想这是一个非常奇怪/困难的问题哈哈。

标签: javascript parsing node.js mongodb


【解决方案1】:

好的,我将回答部分答案。如果有人有完整的答案,请添加它,我会更新。

为了解决这个问题,我将 .exr 文件带入 Photoshop,然后保存为 32 位 .tif 文件。从这里,我下载了 GDAL (http://www.gdal.org/) 并安装了 gdal_translate 实用程序。

然后,该实用程序可以获取 .tif 数据并将其分割成多个 .png 文件。

最后,我将每个 .png 文件分别解析到我的数据库中,将后续数据添加到我在解析所有 png 文件时运行的每个“像素”。

最终得到一个包含非常精确高程数据的二维地理空间数组。

【讨论】:

  • 对支持 EXR 的库有所了解。您可能会发现使用一种语言比 node.js(例如 Python/Perl/Ruby/..)更容易导入 .exr 文件,但看起来库支持的可能候选者是 ImageMagickOpenEXR 或 @ 987654323@。两者都有 node.js 模块,但 EXR 支持似乎涉及摆弄一些非默认选项来启用。听起来您已经有了一个合理的解决方法(至少,PhotoShop 操作可能是可编写脚本的)。
  • 是的,我不需要这个项目的全自动流程。我担心的是每隔几周就把它弄下来一次或两次,所以我的黑客应该没问题。 :)
猜你喜欢
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 1970-01-01
  • 2016-08-17
相关资源
最近更新 更多