KSP-RO / RealSolarSystem

Changes KSP's solar system to make it like the real one.
130 stars 92 forks source link

Cape Canaveral Local Heightmap #132

Closed AnticlockwisePropeller closed 3 years ago

AnticlockwisePropeller commented 6 years ago

I've got a local heightmap for the cape (created by the USGS, so it's public domain) working as a MapDecal. It's a little rough-and-ready as-is (given the cape is only a couple of meters above sea level, the ocean border isn't the neatest). But it shouldn't be too hard to clean up a bit, and imo it's nicer than what exists currently. Would it be of any interest to anyone?

Nightside101010 commented 6 years ago

@AnticlockwisePropeller I would be very interested to check that out. I've actually been working on Vandenberg and a few other locations myself, but I'm running into an issue where it appears elevations are about 3x too high.

pap1723 commented 5 years ago

@AnticlockwisePropeller anything ever come of this?

AnticlockwisePropeller commented 4 years ago

@pap1723 @Nightside101010 @siimav

This may be made redundant by #189 & #192 idk, but I've uploaded a mini-mod you can just drop into your GameData folder that adds the best version of the heightmap I was able to come up with, and the changes to RSS needed to make it work. If anything in there is useful to you, feel free to use it!

https://github.com/AnticlockwisePropeller/RSSHiDefCape

siimav commented 4 years ago

Sounds interesting! Do you have any ingame screenshots about the terrain?

AnticlockwisePropeller commented 4 years ago

screenshot0 screenshot1 screenshot2 screenshot3

RCrockford commented 4 years ago

@AnticlockwisePropeller Do you have the heightmap without DXT compression? I think it's affecting the quality.

AnticlockwisePropeller commented 4 years ago

@RCrockford You're right that there is a slight loss of quality from the compression, however the major limiting factor seems to be the values set in the file: GameData\RealSolarSystem\RSS_TerrainDetailPresets.cfg. Leave them at the default values and it doesn't matter how nice your heightmap is, it'll look like a potato. I set them to higher values in my mini-mod, but not as high as they potentially could be, bc my system isn't the best, and I wanted a compromise between quality and game performance. However, you can set them as high as you like.

As for the original heightmap, here is the .png I used prior to any edits: ASTGTMV003_N28W081 1 Black is sea level, and white is the top of the VAB (~160m) IIRC

For my version in-game, I blacked-out the lakes to make them below the water-level, and flattened out the terrain around where I wanted to relocate the Space Centre (the Cape Canaveral Skid Strip). Also the heights I've used for the max deformation and absolute offset in the cfg aren't exactly true to life - I messed around with them until I was happy with the ocean clipping. Here is that version: CapeHeight

Of course, you can always download the original heightmap data for this, and any of the other world tiles in any of the formats they offer from the ASTER Global Digital Elevation Model V003: https://lpdaac.usgs.gov/products/astgtmv003/ You'll need to sign up for a NASA EarthData login to access the highest quality files, but it's free and open to the general public to do so. Long term that would be the best route to go to get an accurate heightmap for the whole world - my mini-mod is just a cludge to get a nice(r)-looking cape.

RCrockford commented 4 years ago

I have an accurate high detail heightmap for the whole world (from nasa strm30 data), but even at 32k it's still significantly lower detail than your Cape map. I think they make a good complimentary pair.

I was asking about the original version because dxt doesn't help with heightmap sizes in memory so there's not much point in using it at all. I'll have a bit of a play with your pngs.

Also you shouldn't need to manually flatten the ground for ksc, there's a pqs mod that does that for you.

NathanKell commented 4 years ago

The PQS mod that does it for you is a decal heightmap IIRC using a no-op flat heightmap. Replacing it with this heightmap (SWEET) would be the way to go.

This also goes some distance to solving the problem that originally made me use non-realistic max and min heights for the global heightmap (to get good coastal definition). If there's a high-detail heightmap around the coastal areas we care about (here and elsewhere) then the global heightmap can have more realistic min and max deformation values. (With a global 8k heightmap, you're looking at very large areas per pixel and thus low slope values; with a detail heightmap you can have much sharper slopes without fake deformation values.)

The other long term solution is writing (using existing?) filtering PQS mods to get better coastal definition, or mountainous definition, etc--this only solves the problem at the Cape, not elsewhere.

NathanKell commented 4 years ago

Also about compression: you definitely want to save the heightmap as DXT L8, which is uncompressed. Since it's going to be decompressed and fed into memory anyway, there's no point in storing it lossily compressed on disk.

RCrockford commented 4 years ago

Using the pqs mod VertexDefineCoastLine helps somewhat with the coast with a realistic heightmap. It does tend to clip things a bit though, but I might be able to compensate with the heightmap pqs.

AnticlockwisePropeller commented 4 years ago

So I tried saving as DDS L8 and.... screenshot4 :woman_facepalming: Idk what I did wrong, so if someone more familiar with the DDS file format could convert the PNG, that'd be great! For now, I've replaced the heightmap in my mini-mod with the PNG, which seems to work fine.

AnticlockwisePropeller commented 4 years ago

The ASTER model covers all the Earth's land area from 83° North to 83° South, with a resolution of 1 arcsec (~30m) per pixel. You can therefore import pretty much any area of coastline/mountains/other terrain you desire as a local MapDecal

NathanKell commented 3 years ago

Looks like it's just inverted? Try inverting it before saving as L8. Sorry I forgot about this issue, think we were shipping an update at work and I was slammed.

NathanKell commented 3 years ago

(Also, I'm betting this could use a much higher color resolution than 1024--if you have 8192, I'd use that for color.)

AnticlockwisePropeller commented 3 years ago

@NathanKell It's okay, we all lose track of things. I tried inverting the image, but it screws up the height data. I think there's somthing just horribly borked with the dds plugin for photoshop I'm using. :/

Idk what the google maps licencing is, but if non-profit use is allowed, someone could probably rip a satellite photo from that for higher resolution colour data.

pap1723 commented 3 years ago

If you can send me the original, I will try to save it properly using my tools.

AnticlockwisePropeller commented 3 years ago

@pap1723 do you have a way to convert from a GEOTiff? Because honestly. that would be the best, most accurate way to derive the heightmap, rather than any of the cludgy editing I've been doing. The GEOTiff is a .tif image where each pixel is a signed INT16, with a minimum value of -500m and a maximum value of +9000m. I ran the original through a crappy online converter that output an 8 bit .png, with best I can tell, a minimum of 0m and a maximum of +70m. I can send you that too, if you want, although you may be able to find a better converter than I did. Both images are 3601x3601 pixels.

Here is more detailed information about the GEOTiff: https://lpdaac.usgs.gov/products/astgtmv003/#tools

pap1723 commented 3 years ago

Send me the GEOTiff's and I'll see what I can do

siimav commented 3 years ago

Implemented in a separate mod: https://github.com/KSP-RO/RSS-CanaveralHD