Creating Custom Heightmaps - What settings does the .dds file need in order to work?

I've created a custom heightmap for my custom race's homeworld by cropping together several of the other continents, but now that I've started trying to use it, the game crashes on launch. I suspect it's because I'm doing something wrong. I know it's my mod, because as soon as I remove the mod, it works again. Rather than try flicking every switch in Photoshop's Save As dialog for .dds files, could someone who knows better please tell me what settings it needs to have? If you don't know what I mean, here's a picture:

Also, while looking through the base game's custom_heightmap folder, I found a .dxatlas file. Do I need to do anything with that in any way, and if so, how?

If anyone needs to see my debug.err, here:

Debug Message: Version 1.02, Build #205, last updated on: 09-03-2014 00:17
Debug Message: Activation successful.
Debug Message: Entering WinMain
Debug Message: ******* Starting Game Shell *******
Debug Message: Command Line:
Debug Message: InitializeCrashReporter.
Debug Message: InitializeResources.
Debug Message: Initializing Shell
Debug Message: Initializing Fonts
Debug Message: Initializing Fonts - complete
Debug Message: Initializing Direct3D
DebugMessage: Particle Engine Created.
Debug Message: Adding DXSAS clean up function
Debug Message: Initializing device
Debug Message: DrawManager InitializeDevice
Debug Message: Creating renderer
Debug Message: Initializing Direct3D 11 Renderer
Debug Message: Creating animation core
Debug Message: Creating animation core
Debug Message: Enumerating device settings
Debug Message: CD3D11RendererSettings::Enumerate: Preferred adapteris 0
Debug Message: CD3D11RendererSettings::Enumerate: Creating DXGI 1.1 factory
Debug Message: CD3D11RendererSettings::Enumerate: Enumerating adapters
Debug Message: CD3D11RendererSettings::Enumerate: adapter enumerated
Debug Message: CD3D11RendererSettings::Enumerate: Adapter 0
Debug Message: CD3D11RendererSettings::Enumerate: Description: AMD Radeon HD 6700 Series
Debug Message: CD3D11RendererSettings::Enumerate: Vender ID: 0x1002 (4098)
Debug Message: CD3D11RendererSettings::Enumerate: Device ID: 0x68bf (26815)
Debug Message: CD3D11RendererSettings::Enumerate: SettingsLevel: 3
Debug Message: CD3D11RendererSettings::Enumerate: Enumerating outputs for adapter 0
Debug Message: CD3D11RendererSettings::Enumerate: 45 display modes found for adapter 0, output 0
Debug Message: Preferred Adapter Description:
Debug Message: Description: AMD Radeon HD 6700 Series
Debug Message: Vender ID: 1002 (4098)
Debug Message: Device ID: 68bf (26815)
Debug Message: Choosing initial renderer settings
Debug Message: Setting resolution to 1152 x 648
Debug Message: Initializing Renderer APIs
Debug Message: (CD3D11Renderer) Initializing driver
Debug Message: CreateDeviceAndSwapChain
Debug Message: DirectX Feature Level: DirectX 11.0
Debug Message: Device SUPPORTS compute shaders
Debug Message: Initializing 2d screen space effect
Debug Message: Device is now ready
Debug Message: Registering text renderer icons
Debug Message: FXManager, FXElement size: 712 bytes
Debug Message: Shell initialization complete
Debug Message: Shell Initialized
Debug Message: CGalCiv3Shell::RequestInitializationState from: Invalid to: Uninitialized
Debug Message: Running DXAtlasDLL Generator Program
Debug Message: Finished running DXAtlasDLL Generator Program (C:\ProgramData\Stardock\Galactic Civilizations III\Screens\Atlas)
Debug Message: Loading texture atlas
Debug Message: Finished loading texture atlas
Debug Message: Initializing PerPixelHitdata and ScreenControlFactory
Debug Message: ***** Initializing Game *****
Debug Message: OpenDirectory FAILED for directory: D:\Games\Steam\steamapps\common\Galactic Civilizations III\Screens\Schema
Debug Message: Timer Frequency is 0 35a52d
Debug Message: CGalCiv3Shell::RequestInitializationState from: Uninitialized to: Initialized
Debug Message: Initializing sound card
Debug Message: Loading mods
Debug Message: Creating anchor win
Debug Message: Create popup manager
Debug Message: No files found matching mask Sfx\*.wav
Debug Message: No files found matching mask Music\*.ogg
Debug Message: No files found matching mask D:\Jon's Documents\My Games\GalCiv3\Mods\Sfx\*.wav
Debug Message: No files found matching mask D:\Jon's Documents\My Games\GalCiv3\Mods\Sfx\*.msscmp
Debug Message: No files found matching mask D:\Jon's Documents\My Games\GalCiv3\Mods\Music\*.mp3
Debug Message: No files found matching mask D:\Jon's Documents\My Games\GalCiv3\Mods\Music\*.ogg
Debug Message: Initializing bink
Debug Message: CInfluenceSystem::CInfluenceSystem size_influenceMapActual 2359296 size_influenceMapCache 2359296 size_lastTurnOwningPlayerIndex 589824 size_prevOwningPlayerIndex 589824 size_owningPlayerIndex 589824 size_isSectorChanged 9216 size_numOwnedTiles
Debug Message: Game XML has been changed: Yes
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: ERROR: GetTranslation() failed
Debug Message: No files found matching mask D:\Jon's Documents\My Games\GalCiv3\Factions\*.faction
Debug Message: CGalCiv3Shell::RequestInitializationState from: Initialized to: LoadingContinentTextures
Debug Message: Running DXAtlasDLL Generator Program
Debug Message: Finished running DXAtlasDLL Generator Program (D:\Games\Steam\steamapps\common\Galactic Civilizations III\Gfx\planets\generic_heightmaps)
Debug Message: Running DXAtlasDLL Generator Program
Debug Message: Finished running DXAtlasDLL Generator Program (D:\Games\Steam\steamapps\common\Galactic Civilizations III\Gfx\planets\custom_heightmaps)
Debug Message: Running DXAtlasDLL Generator Program
Debug Message: Finished running DXAtlasDLL Generator Program (D:\Games\Steam\steamapps\common\Galactic Civilizations III\Gfx\planets\custom_base_heightmaps)
Debug Message: Creating initial screens
Debug Message: Create setup screens.
Debug Message: Creating remaining screens
Debug Message: Set mouse
Debug Message: Set update timer
Debug Message: CInitializationGfxListener::OnLoadContinentsTextureTailA
Debug Message: CInitializationGfxListener::OnLoadContinentsTextureTailB - All continent per-pixel data is now available
DebugMessage: *********DXDiag info follows.*********
System Info
Time: 5/28/2015, 01:55:34
DirectX Version: DirectX 11
Machine Name: OPENHEART
Operating System: Windows 7 Home Premium 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.150427-0707)
Languages: English (Regional Setting: English)
System Manufacturer: BIOSTAR Group
System Model: TA990FXE
BIOS: BIOS Date: 02/29/12 17:51:48 Ver: 04.06.04
Processor: AMD FX(tm)-4100 Quad-Core Processor (4 CPUs), ~3.6GHz
Physical Memory: 8192MB RAM
Page File: 6115MB used, 10154MB available
Windows Dir: C:\Windows


Display Info
Display device 1:
Device Name: \\.\DISPLAY1
Card Name: AMD Radeon HD 6700 Series
Manufacturer: Advanced Micro Devices, Inc.
Chip Type: AMD Radeon Graphics Processor (0x68BF)
DAC Type: Internal DAC(400MHz)
Key Device: Enum\PCI\VEN_1002&DEV_68BF&SUBSYS_31401682&REV_00
Display Memory: 742 MB
Current Display Mode: 1776 x 1000 (32 bit) (29Hz)
Monitor Name: Generic PnP Monitor
Monitor Max Resolution:
Driver Name: aticfx64.dll,aticfx64.dll,aticfx64.dll,aticfx32,aticfx32,aticfx32,atiumd64.dll,atidxx64.dll,atidxx6
Driver Version: 8.17.0010.1333
Driver Date: 11/20/2014 19:44:20
DirectX Acceleration Enabled: Yes


Sound info
Sound device 1:
Description: Speakers (Realtek High Definition Audio)
Default Sound Playback: Yes
Default Voice Playback: Yes
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15658224&REV_1003
Manufacturer ID: 1
Product ID: 100
Driver Name: RTKVHD64.sys
Provider: Realtek Semiconductor Corp.
Driver Version: 6.00.0001.6343
Driver Date: 4/6/2011 15:33:48
Type: WDM
Other Drivers:
Acceleration Level: 1
Cap Flags: 0
Min/Max Sample Rate: 0, 0

Sound device 1:
Description: Realtek Digital Output (Realtek High Definition Audio)
Default Sound Playback: No
Default Voice Playback: No
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15658224&REV_1003
Manufacturer ID: 1
Product ID: 100
Driver Name: RTKVHD64.sys
Provider: Realtek Semiconductor Corp.
Driver Version: 6.00.0001.6343
Driver Date: 4/6/2011 15:33:48
Type: WDM
Other Drivers:
Acceleration Level: 1
Cap Flags: 0
Min/Max Sample Rate: 0, 0

Sound device 1:
Description: Realtek Digital Output(RCA) (Realtek High Definition Audio)
Default Sound Playback: No
Default Voice Playback: No
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15658224&REV_1003
Manufacturer ID: 1
Product ID: 100
Driver Name: RTKVHD64.sys
Provider: Realtek Semiconductor Corp.
Driver Version: 6.00.0001.6343
Driver Date: 4/6/2011 15:33:48
Type: WDM
Other Drivers:
Acceleration Level: 1
Cap Flags: 0
Min/Max Sample Rate: 0, 0


DebugMessage: *********END dxdiag info.*********
Debug Message: CInitializationListener::OnSetContinentsPerPixelDataTail
Debug Message: CGalCiv3Shell::RequestInitializationState from: LoadingContinentTextures to: CreatingContinentData
Debug Message: Popup Manager Update: Unhiding TitleWnd

38,863 views 12 replies
Reply #1 Top

Okay, now I'm wondering how heightmaps work at all, because I literally copy-pasted the Drengi entry from PlanetArtDefs, and used every single line unaltered except the InternalName, and the planet comes out as a blank class 0 with Drengi's colors. The Drengin aren't in the same game as me in this test. When I load a game as the real Drengin, Drengi loads its heightmap just fine. What's going on here? If I just opt to give my planet no custom continent, it gets continents, but I want to use a custom continent, so what the hell? It won't load ANY custom continent I ask it to, even one that already exists in the game files.

Reply #2 Top

I don't know what the settings would be for the program you're using, but for the Paint.Net program it they would be the following. After intitaling a "save as" In the top drop menu you want to chose A8B8G8R8 and under that you to check the box to generate mip maps, and in the drop below that you want to chose Fant. Also, you'll have to create an a custom ContinentDefs entry like what I have below. Lastly, the ContinentDefs can go in you mod folder, but  you'll have to place you're heightmap in the main game dictionary's custom_heightmap folder, otherwise the won't read it and will CTD.

Also pieces from the generic maps can be used, and altered to create you own custom maps if you're drawing skill like mine is...somewhere adequate.

 

--------------------------------------

ContinentDefs Example:

<ContinentDef>
  <InternalName>Custom0</InternalName>
  <ExcludeFromRandomGen>1</ExcludeFromRandomGen>
  <EstimatedClass>12</EstimatedClass>
  <TileCount>8</TileCount>
  <TextureTile>Planet_Continent_Custom_Merged.dds</TextureTile>
</ContinentDef>

Reply #3 Top

Quoting Vidszhite, reply 1

Okay, now I'm wondering how heightmaps work at all, because I literally copy-pasted the Drengi entry from PlanetArtDefs, and used every single line unaltered except the InternalName, and the planet comes out as a blank class 0 with Drengi's colors. The Drengin aren't in the same game as me in this test. When I load a game as the real Drengin, Drengi loads its heightmap just fine. What's going on here? If I just opt to give my planet no custom continent, it gets continents, but I want to use a custom continent, so what the hell? It won't load ANY custom continent I ask it to, even one that already exists in the game files.

 

check your file size on the .dds you saved if it is smaller then the other planets .dds then then go to 16 or 32 till you get the same file size and try again.

 

I have no ideal how any of this works but I ran into this when the logo`s were .dds ..!

Reply #4 Top

Quoting Strategist, reply 2

I don't know what the settings would be for the program you're using, but for the Paint.Net program it they would be the following. After intitaling a "save as" In the top drop menu you want to chose A8B8G8R8 and under that you to check the box to generate mip maps, and in the drop below that you want to chose Fant. Also, you'll have to create an a custom ContinentDefs entry like what I have below. Lastly, the ContinentDefs can go in you mod folder, but  you'll have to place you're heightmap in the main game dictionary's custom_heightmap folder, otherwise the won't read it and will CTD.

Also pieces from the generic maps can be used, and altered to create you own custom maps if you're drawing skill like mine is...somewhere adequate.

 

--------------------------------------

ContinentDefs Example:

<ContinentDef>
  <InternalName>Custom0</InternalName>
  <ExcludeFromRandomGen>1</ExcludeFromRandomGen>
  <EstimatedClass>12</EstimatedClass>
  <TileCount>8</TileCount>
  <TextureTile>Planet_Continent_Custom_Merged.dds</TextureTile>
</ContinentDef>

Thanks. I already had paint.net, so I used that instead. In fact, photoshop was doing everything wrong from the very beginning (it was loading the transparency as a solid blue color), so I'll continue to use paint.net.

I already did the whole ContinentDefs thing, but what I didn't do was put my custom continent in the game's folder. So that lets me load the game without crashing.

Still, it doesn't seem to load any heightmap at all, not even one that already exists, unless I set the planet class to 11, which is disappointing because I wanted to have this planet be very low-class at the outset, but have great potential for improvement. I'll update you as I go.

Reply #5 Top

AHAAAAA! I figured out what the problem was. In the ContinentDefs file, <EstimatedClass> must ALWAYS be set to +1 higher than the planet's actual class. Brilliant. Now it's working as expected.

Reply #6 Top

Quoting Vidszhite, reply 5

AHAAAAA! I figured out what the problem was. In the ContinentDefs file, <EstimatedClass> must ALWAYS be set to +1 higher than the planet's actual class. Brilliant. Now it's working as expected.

Vidszhite could you help me with an map I have I would like to use it in the game if I can get it to work. But as far as the planets I`m lost as to how to do it.

Reply #7 Top

Quoting Nastytang, reply 6
Vidszhite could you help me with an map I have I would like to use it in the game if I can get it to work. But as far as the planets I`m lost as to how to do it.

Well, I'm still figuring this silly thing out myself, but I did get my custom heightmaps to work, so whatcha need help with?

Reply #8 Top

Quoting Vidszhite, reply 7


Quoting Nastytang,
Vidszhite could you help me with an map I have I would like to use it in the game if I can get it to work. But as far as the planets I`m lost as to how to do it.



Well, I'm still figuring this silly thing out myself, but I did get my custom heightmaps to work, so whatcha need help with?

Here the map I want to use in the game I .jpg it for upload I know I need a .dds and a heightmap but that is alll I know!!! I don`t know how to do that .... YET!!

I have adobes CS4 and gimp. I`ve heard of Paint.net but have never used it.

 

Thanks!!

 

Nasty!

 

Reply #9 Top

I actually don't know how to turn images into heightmaps. Sorry! What I did was splice together some of the basic heightmaps that the game came with, and used that.

Reply #10 Top

Quoting Vidszhite, reply 9

I actually don't know how to turn images into heightmaps. Sorry! What I did was splice together some of the basic heightmaps that the game came with, and used that.

 

thanks I had Hi hopes!!

 

We`ll get there tho some one will know!

 

thanks again

Reply #11 Top

Hieght map is not really the right term for these maps, they are normal maps. Nvidia have a plugin for Photoshop that will give you a normal map filter that you can use to make these maps from images like you posted above. Not sure about Gimp. There is some explanation at the Nvidia plugin site that's worth a read too.

You will have to make the alpha channel.

So;-

1st. Select all the ocean with your magic wand, then invert the selection.

2nd. Copy all the continents that are now selected to a new layer.

3rd. Apply the Black&White adjustment to the copied layer. Adjust the colour sliders to your liking (optional).

4th  Create an alpha channel in your channels tab & copy the now B&W copied layer of the continents to it.

5th. Fill your original ( first loaded coloured - layer 0) layer with black.

6th. Flatten the image. Check that the alpha still has the B&W continents in it.

7th. Go to "Filters" and run the "Nvidia Tools" plugin "NormalMapsFilter" Set the "Alpha Field" to "Unchanged" if it isn't already. You can have a play with the other settings there if you like. I just set the Scale to 1, but that's just a personal preference, so them other things are up to you.

8th. Adjust the image size to 1024 x 508 and save as dds. (It is necessary that the dimensions are divisible by 4 or the dds. compression wont work). I use DXT 3_ARGB  8 bpp explicit alpha, but not sure how important that is.

Here is the Hieght map of that Image, and the resized colour map to go with it if you want to use that with it.

+1 Loading…
Reply #12 Top

Quoting In_stasis, reply 11

Hieght map is not really the right term for these maps, they are normal maps. Nvidia have a plugin for Photoshop that will give you a normal map filter that you can use to make these maps from images like you posted above. Not sure about Gimp. There is some explanation at the Nvidia plugin site that's worth a read too.

You will have to make the alpha channel.

So;-

1st. Select all the ocean with your magic wand, then invert the selection.

2nd. Copy all the continents that are now selected to a new layer.

3rd. Apply the Black&White adjustment to the copied layer. Adjust the colour sliders to your liking (optional).

4th  Create an alpha channel in your channels tab & copy the now B&W copied layer of the continents to it.

5th. Fill your original ( first loaded coloured - layer 0) layer with black.

6th. Flatten the image. Check that the alpha still has the B&W continents in it.

7th. Go to "Filters" and run the "Nvidia Tools" plugin "NormalMapsFilter" Set the "Alpha Field" to "Unchanged" if it isn't already. You can have a play with the other settings there if you like. I just set the Scale to 1, but that's just a personal preference, so them other things are up to you.

8th. Adjust the image size to 1024 x 508 and save as dds. (It is necessary that the dimensions are divisible by 4 or the dds. compression wont work). I use DXT 3_ARGB  8 bpp explicit alpha, but not sure how important that is.

Here is the Hieght map of that Image, and the resized colour map to go with it if you want to use that with it.

 

Thanks this did help me but there seem to be more to the planets then I able to find it looks to be about 4 graphic PICS to make Planet earth in the game.

and until we get some documentation on how it is done. I`m at a loss.