Hey
@sdether thanks for your comments, glad to hear you are digging it and are inspired by the methodology.
Very cool, I was just recently up near Santa Cruz and did a quick pass through that very same stretch, along with a few of the twisty side streets. I've always thought the roads in that area looked like fun on the map, and it did not disappoint! I'm heading up to Monterey to watch the Rolex Motorsports Reunion in August and plan to go back up past Santa Cruz one afternoon to enjoy more of those roads. Really beautiful scenery, lots to explore, let me know if you have any other favorite stretches.
To answer your questions:
1) I was worried about moving objects such as cars being an issue, and they certainly were in my very early tests when I was using multiple non-360 cameras. I was having to mask them out or else they would cause errors the photo alignment. Luckily though, after switching to the 360 cam approach, they seem to be a non-issue. Here's a screenshot of what a passing car tends to show up as. A hovering blob that can easily be selected and deleted:
Static cars do get baked in as part of the geometry through. They have to be manually smoothed away and painted from the textures. Individual cars are not too bad a problem, but if you have a whole street lined with parked cars, you won't be able to get any of the shoulder detail since the cars will be in the way.
2) Trees on the other hand are indeed REALLY annoying. They're super messy, super dense, and require a lot of labor to clean up. What I've been doing is deleting all the totally unusable polygons, and then relaxing the heck out of the remaining geometry to the point where it can become the ground terrain. This sometimes tends to result in creating geometry that looks like you're driving through a narrow canyon, which is something I have to watch out for and manually adjust in the worst cases.
Section of road as generated by photogrammetry:
Before and after I do my cleanup and smoothing process:
Another example of before/after tree cleaning:
Cleaning up the tree geo like this is the #1 most tedious part of the whole process. I've done some tests masking out the trees BEFORE the photogrammetry is run so that they're not even generated, which certainly does help clean up the mesh.
That might sound like the way to go, but for my purposes I ran into a couple of issues with it. One issue being that the only real way to procedurally mask the trees is to key out all the "green" color data from the video frames. This results in not only trees getting removed, but also bushes and grass which leads to very dull looking textures with nowhere for GrassFX to spawn. The other issue is that it trims away a lot of the surrounding geometry, leaving a pretty narrow strip of just the road + dirt shoulders. Look at my screenshot just above and imagine all the green sections being gone, leaving only the dirt and road.
I think that would definitely be useful in some cases, especially if you're just using it for reference to reconstruct everything. For my current needs though I felt it left me with too little geometry to be able to integrate with the background terrain, especially since even grass gets lost. I would have to extrude out all the edges and manually reconstruct the ground in most areas.
So in the end I have continued to let it generate the trees and then manually smooth the geometry. At least this leaves me a lot of green in the textures which in turn becomes GrassFX.
I know Agisoft has some clever features for land surveying with aerial photography which will intelligently detect stuff like trees and roads, then allow you to mask stuff out. I did spend some time trying to leverage this, but I couldn't quite figure it out well enough to get decent results so ended up plowing forward without it. I'm certainly interested in exploring that again though as I think it would be useful in many ways.
Anyway, can you tell I like talking about this stuff?