Post

2 followers Follow
0
Avatar

Creative Experiment: Using Maps Made Easy for Video Game Maps

Well I definitely want to get a drone to make cool maps now... However today I'm posting about a much more abstract concept: game maps! They don't follow all the rules of good real-world maps, yet still have an audience. Today I'm playing a game called Star Citizen that has been in development for nearly a decade (and may be in development for another). The full planets are quite stunning though and I find myself wanting to make a map while trying to locate easter eggs developers leave around the place.

Maps Made Easy could* work in stitching images together with some prep work. I'm trying to figure out what data I need to calculate and embed as exif data to start stitching Nadir images as a starting point, and which stitching process to use.

So far I can get a pretty good altitude in meters, set the "drone" to being pretty level and take photos looking straight down. There's also a way to get in-game X Y Z position, which I think* can translate to lat/lon (however trying to avoid that last part if possible as it really hurts). FOV can be calculated as there's a game setting for degrees field of view. 

Here's an example shot, understanding that it would be better to take these closer to mid-"day" and maybe closer to the ground? (9000m alt if I recall correctly in this one):

I'm betting the DJI route is the way to go? Anything in particular I MUST keep for image processing? Here's what I'm seeing in the starter kit download (thanks for providing that!):

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.0-c002 116.164766, 2021/02/19-23:10:07        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:drone-dji="http://www.dji.com/drone-dji/1.0/"
            xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
            xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:ModifyDate>2020-10-03T10:02:07</xmp:ModifyDate>
         <xmp:CreateDate>2020-10-03T10:02:06</xmp:CreateDate>
         <xmp:CreatorTool>v01.05.1577</xmp:CreatorTool>
         <xmp:MetadataDate>2020-10-03T10:02:07</xmp:MetadataDate>
         <dc:format>image/jpeg</dc:format>
         <dc:description>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">DCIM\101MEDIA\DJI_0241.JPG</rdf:li>
            </rdf:Alt>
         </dc:description>
         <drone-dji:AbsoluteAltitude>+2436.16</drone-dji:AbsoluteAltitude>
         <drone-dji:RelativeAltitude>+60.90</drone-dji:RelativeAltitude>
         <drone-dji:GimbalRollDegree>+0.00</drone-dji:GimbalRollDegree>
         <drone-dji:GimbalYawDegree>+90.90</drone-dji:GimbalYawDegree>
         <drone-dji:GimbalPitchDegree>-89.90</drone-dji:GimbalPitchDegree>
         <drone-dji:FlightRollDegree>+1.00</drone-dji:FlightRollDegree>
         <drone-dji:FlightYawDegree>+91.10</drone-dji:FlightYawDegree>
         <drone-dji:FlightPitchDegree>-8.00</drone-dji:FlightPitchDegree>
         <drone-dji:CamReverse>0</drone-dji:CamReverse>
         <drone-dji:GimbalReverse>0</drone-dji:GimbalReverse>
         <drone-dji:SelfData>5f78a02bd2e4f38586daead04.18.0</drone-dji:SelfData>
         <crs:Version>7.0</crs:Version>
         <crs:HasSettings>False</crs:HasSettings>
         <crs:HasCrop>False</crs:HasCrop>
         <crs:AlreadyApplied>False</crs:AlreadyApplied>
         <aux:SerialNumber>d24bac89e429c64d7f247b4e343c6ba7</aux:SerialNumber>
         <aux:ApproximateFocusDistance>0/100</aux:ApproximateFocusDistance>
         <photoshop:DateCreated>2020-10-03T10:02:06</photoshop:DateCreated>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:ICCProfile>sRGB IEC61966-2.1</photoshop:ICCProfile>
         <xmpMM:DocumentID>E923B803933E9F16F8670F1B204FB90F</xmpMM:DocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:parameters>from image/jpg to image/jpeg</stEvt:parameters>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmpMM:InstanceID>E923B803933E9F16F8670F1B204FB90F</xmpMM:InstanceID>
         <tiff:ImageWidth>4864</tiff:ImageWidth>
         <tiff:ImageLength>3648</tiff:ImageLength>
         <tiff:BitsPerSample>
            <rdf:Seq>
               <rdf:li>8</rdf:li>
               <rdf:li>8</rdf:li>
               <rdf:li>8</rdf:li>
            </rdf:Seq>
         </tiff:BitsPerSample>
         <tiff:PhotometricInterpretation>2</tiff:PhotometricInterpretation>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:SamplesPerPixel>3</tiff:SamplesPerPixel>
         <tiff:YCbCrPositioning>1</tiff:YCbCrPositioning>
         <tiff:XResolution>72/1</tiff:XResolution>
         <tiff:YResolution>72/1</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <tiff:Make>DJI</tiff:Make>
         <tiff:Model>FC6310</tiff:Model>
         <exif:ExifVersion>0230</exif:ExifVersion>
         <exif:FlashpixVersion>0010</exif:FlashpixVersion>
         <exif:ColorSpace>1</exif:ColorSpace>
         <exif:ComponentsConfiguration>
            <rdf:Seq>
               <rdf:li>1</rdf:li>
               <rdf:li>2</rdf:li>
               <rdf:li>3</rdf:li>
               <rdf:li>0</rdf:li>
            </rdf:Seq>
         </exif:ComponentsConfiguration>
         <exif:CompressedBitsPerPixel>7036784/2217984</exif:CompressedBitsPerPixel>
         <exif:PixelXDimension>4864</exif:PixelXDimension>
         <exif:PixelYDimension>3648</exif:PixelYDimension>
         <exif:DateTimeOriginal>2020-10-03T10:02:06</exif:DateTimeOriginal>
         <exif:ExposureTime>3125/1000000</exif:ExposureTime>
         <exif:FNumber>500/100</exif:FNumber>
         <exif:ExposureProgram>2</exif:ExposureProgram>
         <exif:ISOSpeedRatings>
            <rdf:Seq>
               <rdf:li>100</rdf:li>
            </rdf:Seq>
         </exif:ISOSpeedRatings>
         <exif:ShutterSpeedValue>-8321/-1000</exif:ShutterSpeedValue>
         <exif:ApertureValue>4643856/1000000</exif:ApertureValue>
         <exif:ExposureBiasValue>0/32</exif:ExposureBiasValue>
         <exif:MaxApertureValue>297/100</exif:MaxApertureValue>
         <exif:SubjectDistance>0/100</exif:SubjectDistance>
         <exif:MeteringMode>2</exif:MeteringMode>
         <exif:LightSource>0</exif:LightSource>
         <exif:Flash rdf:parseType="Resource">
            <exif:Fired>False</exif:Fired>
            <exif:Return>0</exif:Return>
            <exif:Mode>0</exif:Mode>
            <exif:Function>True</exif:Function>
            <exif:RedEyeMode>False</exif:RedEyeMode>
         </exif:Flash>
         <exif:FocalLength>880/100</exif:FocalLength>
         <exif:ExposureIndex>0/0</exif:ExposureIndex>
         <exif:FileSource>3</exif:FileSource>
         <exif:SceneType>1</exif:SceneType>
         <exif:CustomRendered>0</exif:CustomRendered>
         <exif:ExposureMode>0</exif:ExposureMode>
         <exif:WhiteBalance>0</exif:WhiteBalance>
         <exif:DigitalZoomRatio>0/0</exif:DigitalZoomRatio>
         <exif:FocalLengthIn35mmFilm>24</exif:FocalLengthIn35mmFilm>
         <exif:SceneCaptureType>0</exif:SceneCaptureType>
         <exif:GainControl>0</exif:GainControl>
         <exif:Contrast>0</exif:Contrast>
         <exif:Saturation>0</exif:Saturation>
         <exif:Sharpness>2</exif:Sharpness>
         <exif:SubjectDistanceRange>0</exif:SubjectDistanceRange>
         <exif:SerialNumber>d24bac89e429c64d7f247b4e343c6ba7</exif:SerialNumber>
         <exif:GPSVersionID>2.3.0.0</exif:GPSVersionID>
         <exif:GPSLatitude>38,31.2428N</exif:GPSLatitude>
         <exif:GPSLongitude>106,47.2698W</exif:GPSLongitude>
         <exif:GPSAltitudeRef>0</exif:GPSAltitudeRef>
         <exif:GPSAltitude>2436156/1000</exif:GPSAltitude>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>

Thanks for taking a look in advance. Priority is ZERO of course as this is very much an edge case... It's fun though! :D

Have a great day.

Christopher Stevens

Please sign in to leave a comment.

2 comments

0
Avatar

Keep all of the XMP and EXIF tags in place. There are more than a few people that use terrain captured with drones to do game maps. 

Zane 0 votes
Comment actions Permalink
0
Avatar

Hello Zane,

Thanks for the feedback (and sorry it took so long to get back)! I'm highly impressed and inspired by people using drones to make game maps. Good stuff.

I'm going about this a bit differently. I'm taking pictures in a game and trying to stitch those images together to make a Nadir map.

So far I've had some success in getting Exif data set for screenshots taken in-game. It's not perfect though and still missing anything "drone-dji" related (not your standard exif/0th/gps as I keep learning). I don't have pitch/yaw/roll data available. GPS lat/lon is sketchy.

Is this not going to work at all, or do you think I could work though the process of providing good images to produce a map? 

Christopher Stevens 0 votes
Comment actions Permalink