前言
昨天同事过来叫我帮忙导出Google地图的模型,我研究了一下做法就是Blender+MapsModelsImporter+RenderDoc这个组合来完成,当然里面还是有些坑点需要注意,所以记录一下过程。
软件版本
这个一定要注意了,我也是踩了到了这个坑,主要原因还是因为MapsModelsImporter这个开源的插件,对RenderDoc和Blender的版本有严格的要求。如果你在blender导入模型出错了,很可能就是版本问题,目前我使用的匹配的版本是如下:
- RenderDoc: 1.10版本
- blender: 2.83版本
- MapsModelsImporter: 0.3.4版本
如果你不想找可以到我这里下:blender+mapsModelImporter+renderDoc
浏览器
只能用chrome或者chromium,在桌面生成一个Chrome的快捷方式, 然后右键快捷方式,然后在目标这一栏输入如下代码,注意把C:\Users\ecidi\AppData\Local\Google\Chrome\Application\chrome.exe替换成你的chrome的安装目录。
C:\Windows\System32\cmd.exe /c "SET RENDERDOC_HOOK_EGL=0 && START "" ^"C:\Users\ecidi\AppData\Local\Google\Chrome\Application\chrome.exe^" --disable-gpu-sandbox --gpu-startup-dialog"
还有一个就是chrome浏览器要打开GPU的硬件加速,这里就不详细说明了,比较简单
关于Google地图的访问
可以去网上找一个叫google-access-helper,就是谷歌访问助手的插件
捕获Google地图
双击刚刚修改好的chrome快捷方式运行浏览器,这个时候会弹出来一个小框,不要关闭它,并记住上面的pid号
现在运行RenderDoc软件,并按如下步骤操作
- 选择file->Inject into Process
- 这时候会出来一个新的Inject into Process对话框
- 把刚刚那个弹框的pid号输入到如下3的位置
- 点击4,刷新
- 找到Google Chrome Gpu,选择
-
点击Inject
好了,现在点击刚刚chrome浏览器的那个小弹框的确定按钮,正式运行浏览器。
现在回到RenderDoc,可以看到几个按钮都点亮了,表示现在跟chrome关联起来了
浏览器运行的时候需要注意看一下,你的浏览器上面是不是跟我的一样,顶部有个小黑条,显示一些数据信息,然后下面还有一个提示说,不受支持的命令行标记,这个就是因为在浏览器的快捷方式加入了--disable-gpu-sanbox的参数,但是不要管他,没有这个弹出的提示反而是出问题了。
接下来在浏览器上打开Google地图。
然后把地图拉到你需要的位置,不要选择国内的,Google在国内的地图我看了都没有3D模型的,只有贴图,但是你要导出来也是可以的,我试了国内的山是有3d的,其他好像都不行。
接下来如下图所示,先点击左下角切换到卫星模式,然后点击右下角的地球按钮切换到3D模式,把地图拉近一点把地图加载的清晰一些。
现在回到RenderDoc,按步骤来操作
- 你可以跟我一样,设置5秒延时,
- 然后点击捕获按钮,就是Capture After Delay
-
回到chrome地图,等待7-8秒的样子,在回到RenderDoc,就会看到捕获了一个模型了。
10.点击下面Save保存rc文件
现在打开Blender,
- 点击菜单栏的编辑->偏好设置,看到下面弹框,
- 选择插件,点击右上角安装
- 在安装插件弹框找到MapsModelsImport插件,点击按钮
-
然后会到偏好设置界面,搜索到MapsModelsImport插件,点击前面的选中启用它,记得版本要匹配
现在回到主界面,在菜单栏选择文件->导入->Google Map Capture(.rdc)
找到刚刚在RenderDoc捕获的模型文件
等待一段时间,好了,模型加载出来了