Jump to content

Using DDS textures in Doom


Recommended Posts

I'm trying to compile my own custom texture mod for GZDoom v4.1.3, by using Doom AltDHTPv1.3 texture pack as well as some other textures of my choice from other mods. The new textures simply have the same name as the original ones, so when I add them within an archive to my GZDoom autoload list, the old low-res textures simply substituted with the new ones.

However, I have noticed that using these hi-res textures affects my performance, and I start to get lags in the game from time to time. In order to solve this, I'm trying to convert all custom textures from usual PNG format to new DDS format (Direct Draw Surface). They say that this format enables the graphic card to load the texture really fast, almost instantly, although it also slightly reduces the quality of the image.

So I came into a problem: after converting PNG to DDS, the Doom engine no longer sees or recognizes these textures, and vanilla low quality textures are loaded instead. My SLADE editor does not recognize this file format as well. But I know that it IS possible. To make the game see this file format for textures. The other Doom modders have already used it successfully.

Any ideas how exactly it can be achieved?

Share this post


Link to post

SLADE does not handle DDS images, yes. GZDoom does, I believe; however I'm not sure it'll actually improve performances since IIRC all textures are converted to an internal format when loaded.

Share this post


Link to post
16 hours ago, bsver said:

...

I became interested and decided to try it. I used Gzdoom 4.2. and Gimp dds plugin for texture conversion. 
Gzdoom does not support all DDS texture formats. For example, in hardware mode textures without compression just look black. And displayed only in true color softpoly and true color sw modes.  
DDS textures are not displayed if you use the Data/jDoom folder structure instead of Hires. 
I am also not sure that Gzdoom engine uses DDS textures properly, i.e. most likely you will not get performance gain using this format. 
And i think there are many other nuances that I have not found yet.

Share this post


Link to post
On 8/21/2019 at 8:00 AM, Doomenator said:

DDS textures are not displayed if you use the Data/jDoom folder structure instead of Hires. 
And i think there are many other nuances that I have not found yet.

Thank you. I eventually decided to drop using DDS. I do use data/jdoom structure alongside hires folder for my mod. That is because of the Flats folder. Doom engine distinguishes flat textures and graphic texture, and when you simply put all the textures in hires folder, they are all treated as graphics, even the naming does not help.  The original game had two textures with the same name but different type (Step1 and Step2): for flats, one pair of files is used, for textures, the other pair of files is used. Putting them all in hires folder resulted me in loading wrong textures for either two types of doom stair steps, of for two types of doom flat surfaces, and I only managed to make the engine distinquish where and what should be used by using data/jdoom file structure.

Also, which "Software renderer" and "Hardware renderer" GZdoom settings do you recommend for better performance? I tried to experiment with some of those, but they are now too many, and I don't understands the meaning and purpose of most of them. I think I shouldn't have messed with those, and probably my issues with performance came because of this.

Share this post


Link to post
1 hour ago, bsver said:

...

I did not experiment, but you can turn on the display fps and just try different options. 
Regarding the textures, reduce the size and quality should improve the performance on slow machines.

Share this post


Link to post
On 8/20/2019 at 2:18 PM, Gez said:

SLADE does not handle DDS images, yes. GZDoom does, I believe; however I'm not sure it'll actually improve performances since IIRC all textures are converted to an internal format when loaded.

The benefit of DDS textures is that they can contain mipmap copies of themselves. Allowing the game to load the smaller versions of them not overloading the memory.

 

In pretty much all engines I've seen them used however, they generally get placed in a DDS parallel folder where the directory structure of the texture folder is mirrored and the DDS textures are placed. I don't know if this is the case with GZDoom. But it's worth a try. 

 

BTW, speaking of PNG. They are pretty awful for games. They take WAY too long to load.

Edited by kristus

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...