最近接触到 RenderDoc 工具,可以下载到 Google Map 的 3D 城市模型。经过一番踩坑后,终于实践成功啦,在此记录下来,方便后面的小伙伴进行学习~
最终下载的 3D 城市模型效果如下(香港区域的城市模型):
Chrome 浏览器是必须的。我看到网上有些教程说需要使用老版本的 Chrome,但经过我长达一天的折腾后,发现老版本的 Chrome 下载的 3D 城市模型始终有问题(捂脸),可能是我电脑的原因,下载的模型无法导入 Blender。在最后之际,又重新安装了最新版的 Chrome,惊喜的发现成功了,真是开心哈哈
我用的 Chrome 是当前时间(2021-07-05)的最新版 91.0.4472.101
,后面尝试的小伙伴也可以尝试将 Chrome 升级到最新版,不一定要全按网上教程所说的,实践是检验真理的唯一标准哈哈
RenderDoc 是我们下载 Google 地图 3D 城市模型的主要工具,这里我使用的版本是 1.13
注意不要使用 1.13
以上的版本,因为以上版本移除了我们捕获模型所要使用的 Inject into Process
功能
RenderDoc 下载连接:https://renderdoc.org/builds
Blender 是一个 3D 模型展示软件,我们可以使用该软件查看下载的 3D 城市模型,并导出成其他的格式,如 FBX 格式。
我用的 Blender 版本是 2.93.1
,下载链接如下
Blender 下载连接:https://www.blender.org/download/
安装好后的 Blender 导入选项没有 Google Map 导入,所以我们还需要安装 Maps Models Importer 插件扩展其功能
我用的 Maps Models Importer 版本是 0.4.1 - RC1
,下载链接如下
Maps Models Importer 下载链接:https://github.com/eliemichel/MapsModelsImporter/releases
如果有小伙伴懒得去以上网址下载软件,这里提供一个百度网盘的链接,需要的可以自取哈哈
链接:https://pan.baidu.com/s/1PhQbZoP_Hud-cHtlDqRyWQ 提取码:63b9
在 Chrome 快捷方式上右击 属性
,编辑 目标
为如下字符串:C:\Windows\System32\cmd.exe /c "SET RENDERDOC_HOOK_EGL=0 && START "" ^"D:\scoop\apps\googlechrome\current\chrome.exe^" --disable-gpu-sandbox --gpu-startup-dialog"
,如下图所示
注意修改 D:\scoop\apps\googlechrome\current\chrome.exe
为你自己 Chrome 的安装路径
然后点击 应用
,然后 确定
。修改后的快捷方式变成如下图
这时界面会弹出一个小弹窗,如下图所示
注意,这个小弹窗先 不要点击确定
,切记哈,只需记住 pid 号即可
打开刚刚安装好的 RenderDoc 软件。然后在菜单栏 File 里点击 Inject into Process
选项,如下图
在面板里输入刚刚 Chrome 弹窗里的那个 pid 号,如下图
然后双击搜索出来的那个进程,显示如下图
这时,我们点击 Chrome 小弹窗上的确认按钮,可以看到 RenderDoc 面板上的 API 状态变成了 D3D11
,右边的按钮也由灰色变成可点击的状态,如下图
这时再跳转到 Chrome 浏览器,可以看到浏览器左上角出现了一个状态栏,这是正常哒
这时,我们可以在浏览器地址栏输入以下网址,打开 Google Map
https://www.google.com/maps/place/香港/@22.3147582,114.1649326,1059a,35y,350.39h/data=!3m1!1e3!4m5!3m4!1s0x3403e2eda332980f:0xf08ab3badbeac97c!8m2!3d22.3193039!4d114.1693611
按 F11
进入全屏状态,鼠标移动到左下角 图层
上,点击 更多
,取消标签显示,如下图所示
完成以上步骤后,跳转到 RenderDoc 软件,点击 Capture Frame(s) Immediately
按钮,然后再跳转到 Chrome 界面,微微拖动下地图,可以发现当前界面的 3D 城市模型已经被捕获到 RenderDoc 里啦,如下图
注意捕获的模型大小,一般模型大小会有四五十兆,如果模型大小只有一二十兆,那应该是这次捕获失败了。不要担心,右击把这次捕获的模型删除,然后按上面步骤重新捕获一次就好啦
双击捕获的模型,打开 Texture Viewer 面板,选择 Colour Pass #1
,可以看到一连串的 DrawIndexed
,如下图
点击第一个 DrawIndexed
,然后按住键盘方向键的 ↓
键,可以看到 Texture Viewer 面板里城市模型被一点点显示出来,如下图,这就说明这次捕获是成功的~
鼠标选中列表的 Colour Pass #1
,然后点击菜单栏中的 File
,点击 Save Capture As
,将刚刚捕获的模型保存成 .rdc
文件
打开 Blender 软件,将界面中默认的物体选中,按 Delete 删除。
默认安装的 Blender 软件 Google Map Capture
的导入选项的,这时就需要安装之前下载好的 Blender 插件了。
点击菜单栏 Edit
,点击 Preferences
,在打开的界面上选择 Add-ons
,然后点击 Install
,如下图
在打开的界面选择我们已下载好的 MapsModelsImporter-0.4.1-rc1.zip
文件,然后点击安装。
安装完成后,还需要将插件启用,勾选插件前面的单选框即可,如下图
然后我们就可以导入 Google Map 文件啦
点击菜单栏的 File
,点击 Import
,最下面就出现了 Google Map Capture
选项了,点击,选择刚刚保存的 .rdc
文件,稍等片刻,模型便被显示在 Blender 里啦。默认没有显示材质贴图,我们可以点击界面右上角的这个按钮,打开贴图渲染,如下图
打开贴图的效果如下
这时我们可以用鼠标框选住所有的模型,然后按 Ctrl + j
键,将模型合并成一个模型。
然后选中模型,点击菜单栏的 File
,点击 Export
,选择 FBX
格式,就可以将这个 3D 城市模型导出成 FBX 格式的啦。
以上就是教程的全部内容,感谢阅读~