Google Maps Models Importer

1050 TI used to work but stopped working.

The issue though is within the compatibility of Renderdoc and Chrome - not the addon.

1 Like

I too have been having some issues with importing captures into Blender 2.8. I’ve tried the sample capture that was posted on GitHub and that one imports perfectly. However, I am unable to import captures done on my machine (1080TI) running RenderDoc 1.1 or 1.2.

The captures seem to work successfully inside of RenderDoc, I can see the glDrawElements and I have no errors reported, however when I import into blender I get the following error:

Loading capture from C:\Users\Corey\Test.rdc...
Traceback (most recent call last):
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 164, in <module>
    main(controller)
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 77, in main
    relevant_drawcalls = list_relevant_calls(drawcalls)
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 56, in list_relevant_calls
    relevant_drawcalls = list_relevant_calls(drawcalls, _strategy=1)
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 56, in list_relevant_calls
    relevant_drawcalls = list_relevant_calls(drawcalls, _strategy=1)
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 56, in list_relevant_calls
    relevant_drawcalls = list_relevant_calls(drawcalls, _strategy=1)
  [Previous line repeated 993 more times]
  File "C:\Users\Corey\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\MapsModelsImporter\google_maps_rd.py", line 41, in list_relevant_calls
    if _strategy == 0:
RecursionError: maximum recursion depth exceeded in comparison

Any ideas what might be going on?

Thanks,
Corey

Hi @Jaidek, this has to do with one of the most hacky/dirty part of the addon code. It is where it tries to find in the capture the beginning of the 3D draw calls, and the name of it may varry. In your case the clear draw call must be named differently than what is looked for here: https://github.com/eliemichel/MapsModelsImporter/blob/master/blender/MapsModelsImporter/google_maps_rd.py#L42

You can open the capture in RenderDoc and try and find in the Event Browser a glClear() just before the calls that draw the geometry. Then its exact name at the aforementionned line. Alternatively can you share your capture file here?

@oddbody THanks for the feedback. Indeed I also feel that the 1060 should be able to handle it but you’re not the first to report it not to work.

Thanks for the help Mink! Yes, it looks like my glClear has “Depth = <0.000000>” instead of “Depth = <1.000000>” I’ll have to see if I can edit that in RenderDoc, if not changing the python file should work?

Here’s a link to the capture if you’d like to inspect:

Thanks!
Corey

I don’t think you can edit the capture in RenderDoc, it would make little sense. Changing the python file will work.

I just updated it with attempts to find clear calls with Depth = 0 and a better error message, you can download the current master (but don’t use the downloaded zip as is in Blender, only the blender/MapsModelImporter directory must be in the addon zip provided to Blender)

Hey Mink, thanks for the update! I downloaded it and gave it a shot, this time it went for much longer, with the System Console showing Draw call: glDrawElements. Unfortunately, I still didn’t get any meshes in the scene. Where you able to open the test.rdc that I attached? If so, what version of Blender 2.8?

Also, something I have noticed is that Blender has to run as administrator for the script to even attempt to do the import. Just something else to try when troubleshooting.

Thanks!

Hi,

I just saw that addon, and give a try.

but I got an error on blender side with version ‘MapsModelsImporter-v0.1.1.zip’ with latest blender 2.8 build.

Loading capture from E:\8888.rdc...
Couldn't initialise replay: 14
Traceback (most recent call last):
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\ad
dons\MapsModelsImporter\google_maps_rd.py", line 163, in <module>
    with CaptureWrapper(CAPTURE_FILE) as controller:
  File "C:\Users\user\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\ad
dons\MapsModelsImporter\rdutils.py", line 49, in __enter__
    self.cap.shutdown()
AttributeError: 'renderdoc.CaptureFile' object has no attribute 'shutdown'

I’ve try with latest renderdoc, then version 1.2 then version 1.1 but no way.

Seems that with RenderDoc 1.2 when I “save the Frame” and the try with RenderDoc to open it it also crash, so maybe your plugin is working normally. I don’t understand :slight_smile:

That’s awesome!Could such a thing work with Google Graphics especially for instance talking about unreleased games?Would it compatible and supported now or in future Blender updates?Or it works only with Google Maps instead?

Hi @Lucas15,
What do you mean by “Google Graphics”?
This tool is and will remain specific to Google Maps. I have no intention of providing an easy way to reap artistic work such as video game content. Google Maps data is not an original creation, rather data captured thanks to the money of the privacy tax Google is collecting on each of us so I have less concern helping one accessing it.

1 Like

It was just my suggestion of 3d image capturing. I wish it could also work for footages on youtube as blender importable files. I guess it could be way too easy,right? I hope at least 3D printers can 3d print 2d backgrounds in 3D. Usually turning 2d backgrounds of game maps into 3d just like only in case of google maps 3d towns and cities across the world.

Hey all, I’m new to the community, this amazing thread “enticed” me. So, I have installed RenderDoc on two machines and followed instructions to the “T”. However, when I get to the part where I am seeing the overlay above the chrome window after injection that says “OpenGLES F12, Prt Scrn to Capture…” I get stuck. No matter how I try to get the capture to happen, wether via F12, Print Screen, or delay, capture immediately, I get no captures. I am moving the cursor in maps and OpenGLES is active and presenting in Renderdoc, but zero captures. I am kind of at a loss as to what’s wrong.

Mmh weird. Is it that you have no capture at all, or capture with no 3D data? In the former case, are you able to take captures of other programs than Chrome? Like attaching it to a 3D game for instance?

Hi !
I think that your technology could be automated thanks to google earth studio (and not google earth)
In earth studio you only need to animate a camera travelling over 100 frames for example, and ask RenderDoc to take 100 screenshots.
I was able to test it and renderdoc is able to recover the mesh and textures of these captures. (tested with V1.1, 1.2 and 1.4)
In addition it is possible to export this camera from Earth studio to know the exact position georeferenced (in the projection of Google, in mercator) of the camera and even a dummy if desired in .jsx

But the problem is that your script does not import a .rdc created from earth studio. It should also be able, on a sequence of captures, to place all the mesh of the frame 1 at the given position of the frame 1 of the .jsx, the same for the frame 2 and so on …

I do not know if all this is clear … If you wish we can talk about it by phone (I’m also French)

I am a junior freelance 3d and I would like to make realistic animation with this technology to illustrate my future travels, and adding over the mesh, an animated Kmz path.

( For google earth studio, If you do not have an account yet, apply now on their official website because I had to wait 1 week before having an answer.
They ask you for your name, your address, why you want to try their site, what is your blood type etc … free to you to give them or not.^^)