This is an experiment. Over the past year or so I've been testing various methods of using photogrammetry to generate roads. My goal is to develop a process suitable for recreating any road, of any distance, with as minimal effort possible. I'm definitely still a looong way off from that, but I am making clear progress. Now that I've landed on a technique that I feel is repeatable enough to begin refining upon, I'm tackling a large scale project to further streamline as I go. The primary test subject for this is something very dear to my heart, which is the network of canyon roads in the Santa Monica Mountains up above Malibu, CA.
I have about 15 miles built and in game already, with about 40 being the ultimate goal. I will release this as a WIP beta once I reach some short term milestones that I'm working on now.
Here's a short video of just one leg, Las Flores Canyon Rd in it's current state.
For the photogrammetry, my method is to mount a GoPro MAX on the end of an 8' pole that I stick through my car's sunroof. The camera shoots 360 degree spherical latlong video with GPS coordinates on each frame as I drive along at about 30 mph. To avoid sun shadows, I have to shoot either at dawn or dusk when the sun is behind the mountains, or wait for the ultra rare overcast Sunday. Here's a full res frame from the video.
A lot of pre-processing is necessary to conform the imagery and GPS data into a format suitable for photogrammety, but once that's done Agisoft Metashape does a pretty great job of generating accurate meshes. After another lengthy process of cleaning up the scan geo, optimizing the meshes and UVs, baking down textures, and smoothing the road surface it can then finally be brought into AC. I'm going a step further though and removing the painted road lines from the textures and laying down my own for better quality. I'm also generating some masks to use in the AC shader for specularity and breakup maps.
Above is a general map of the canyon roads I'm currently working on for an initial release. The green ones have already been generated and are already in-game in some capacity. The yellow ones have been recorded and are currently running through the photogrammetry process. Red ones are some additional connecting canyons I think would be great to add, but have not yet recorded the 360 footage for them and probably won't until after I finish what I have and release it to you.
Las Flores, Stunt, Piuma, and Tuna will make up the core legs of the map. After that the next step will be to create connecting roads between the tips of each of the leg, but for that I'm going to be deviating from reality a little. For example, the northern connecting road will still be Mulholland Hwy, but I'll use the more fun section further to the west and transpose it to connect the bottom of Stunt and Piuma. For the southern connecting route that would be a fairly boring section of Pacific Coast Highway, I'll instead be stealing a more interesting section of the road from much further north up the coast. I also really want to include a short stretch of Old Topanga Canyon Road, as it's another one of my local favorites. By the way, if you aren't familiar with the area, the very center of the map at the intersection of Schueren/Stunt/Saddle Peak is the highest point at 2300 feet, with the outer tip of each leg being closer to sea level or just above.
So what's my ultimate plan? Not really sure haha. At this point the #1 thing I'm looking forward to is getting to drive Tuna Canyon uphill lol! (It's a one-way downill street in real life) But here's my to-do list for the immediate time being:
01) Finish processing Saddle Peak and Tuna Canyon to complete the 4 core legs (the 4 core legs being Tuna, Stunt, Las Flores, and Piuma)
02) Get all road surfaces up to the same level (or better) as seen in the video above.
03) Place basic props such as guard rails, signs, and light poles.
04) Spawn some very basic foliage to mask some of the edges of the photogrammetry geo
05) Release as beta.
06) Create connecting roads, and refine.
07) Optimize (if this is even possible. the file sizes are already gigantic)
Anyway, like I said in the beginning, I want to stress that this really just an experiment. I will definitely be releasing this once I'm happy enough with the 4 core legs I'm working on now, but expect it to live as a beta release for quite some time until I can properly clean all the photogrammetry and optimize everything. I'll definitely do a pass of smoothing out a lot of the biggest offenders, but my plan/hope is to hide most of the nasty stuff with trees, bushes, and really large GrassFX
My normal inclination would be to just wait for an actual release to make a post, but I'm keen on getting the opinions, feedback, and tips from anyone interested in a project like this. Let me know what you think!
-Todd
P.S. If you followed and enjoyed my previous AC track release, Topanga Canyon, just a heads up that I am on the verge of releasing another very similar track, Mulholland Drive. Keep an eye out in the coming week or two! (it's not utilizing this photogrammetry technique)
I have about 15 miles built and in game already, with about 40 being the ultimate goal. I will release this as a WIP beta once I reach some short term milestones that I'm working on now.
Here's a short video of just one leg, Las Flores Canyon Rd in it's current state.
For the photogrammetry, my method is to mount a GoPro MAX on the end of an 8' pole that I stick through my car's sunroof. The camera shoots 360 degree spherical latlong video with GPS coordinates on each frame as I drive along at about 30 mph. To avoid sun shadows, I have to shoot either at dawn or dusk when the sun is behind the mountains, or wait for the ultra rare overcast Sunday. Here's a full res frame from the video.
A lot of pre-processing is necessary to conform the imagery and GPS data into a format suitable for photogrammety, but once that's done Agisoft Metashape does a pretty great job of generating accurate meshes. After another lengthy process of cleaning up the scan geo, optimizing the meshes and UVs, baking down textures, and smoothing the road surface it can then finally be brought into AC. I'm going a step further though and removing the painted road lines from the textures and laying down my own for better quality. I'm also generating some masks to use in the AC shader for specularity and breakup maps.
Above is a general map of the canyon roads I'm currently working on for an initial release. The green ones have already been generated and are already in-game in some capacity. The yellow ones have been recorded and are currently running through the photogrammetry process. Red ones are some additional connecting canyons I think would be great to add, but have not yet recorded the 360 footage for them and probably won't until after I finish what I have and release it to you.
Las Flores, Stunt, Piuma, and Tuna will make up the core legs of the map. After that the next step will be to create connecting roads between the tips of each of the leg, but for that I'm going to be deviating from reality a little. For example, the northern connecting road will still be Mulholland Hwy, but I'll use the more fun section further to the west and transpose it to connect the bottom of Stunt and Piuma. For the southern connecting route that would be a fairly boring section of Pacific Coast Highway, I'll instead be stealing a more interesting section of the road from much further north up the coast. I also really want to include a short stretch of Old Topanga Canyon Road, as it's another one of my local favorites. By the way, if you aren't familiar with the area, the very center of the map at the intersection of Schueren/Stunt/Saddle Peak is the highest point at 2300 feet, with the outer tip of each leg being closer to sea level or just above.
So what's my ultimate plan? Not really sure haha. At this point the #1 thing I'm looking forward to is getting to drive Tuna Canyon uphill lol! (It's a one-way downill street in real life) But here's my to-do list for the immediate time being:
01) Finish processing Saddle Peak and Tuna Canyon to complete the 4 core legs (the 4 core legs being Tuna, Stunt, Las Flores, and Piuma)
02) Get all road surfaces up to the same level (or better) as seen in the video above.
03) Place basic props such as guard rails, signs, and light poles.
04) Spawn some very basic foliage to mask some of the edges of the photogrammetry geo
05) Release as beta.
06) Create connecting roads, and refine.
07) Optimize (if this is even possible. the file sizes are already gigantic)
Anyway, like I said in the beginning, I want to stress that this really just an experiment. I will definitely be releasing this once I'm happy enough with the 4 core legs I'm working on now, but expect it to live as a beta release for quite some time until I can properly clean all the photogrammetry and optimize everything. I'll definitely do a pass of smoothing out a lot of the biggest offenders, but my plan/hope is to hide most of the nasty stuff with trees, bushes, and really large GrassFX
My normal inclination would be to just wait for an actual release to make a post, but I'm keen on getting the opinions, feedback, and tips from anyone interested in a project like this. Let me know what you think!
-Todd
P.S. If you followed and enjoyed my previous AC track release, Topanga Canyon, just a heads up that I am on the verge of releasing another very similar track, Mulholland Drive. Keep an eye out in the coming week or two! (it's not utilizing this photogrammetry technique)
Last edited: