Jump to content
  • 0

[WIP] DDSopt & Texture Overhauls


z929669

Question

  • Answers 1.7k
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0
To a large extent I suspect this will depend on the 'accessibility' of DDSopt to external control. There is a version on Git Hub but whether this is uptodate I'm not sure. If it comes to it I would contact Ethatron for permission and an idea of what methods might be hooked into to set preferences' date=' file locations and 'process'.[/quote']You should take a look at DDSopt.ini, you'll get the idea of it's function instantly after openeing it in a text-editor. :)
Here's a simple sort of automation' date=' batch file. You could probably make something a bit more complex if ddsopt supports command line switches.Skyrim Installation
DDSopt is a stripped down version of NIFopt, the command-line mode is still present. So everything from this list related to DDSs:obge.paradice-insight.us slash wiki slash NIFopt#Usageshould work to control DDSopt. I haven't tried it for ages, but I'm verifying it now. If it's broken it'll be back again in the next update.

 


Ahh yes' date=' you mean by ticking "dont process any of the known file types" good point.The 102 are a combo of *.png, that I know DDSopt will process into DDS..[/quote']In the menu-entry "Behave->Textures->Compress all known file-types" you can turn off compression of "non-DDS -> DDS" files. It's a bad position, so I'll move the menu-entry to the "Ignore" menu for the next update.
Link to comment
Share on other sites

  • 0

@Ethatron

 

thanks for jumping in! We appreciate the tool and your inclination to provide support and improvements ;)

 

(and I for one am hoping that you plan on providing full NIFopt for Skyrim at some point :yes: but no pressure :P )

Link to comment
Share on other sites

  • 0

I invited Ethatron et al. to comment on this topic (from DDSopt thread on the Nexus)... let's find out for sure, eh? I'd rather add fact to the guide than fiction, and I have not gone into this as yet.

 

It's an alpha-texture super-sampling issue, see https://en.wikipedia.org/wiki/Alpha_to_coverage for what Skyrim does NOT, and here for what Skyrim does: https://www.polycount.com/forum/archive/index.php/t-69528.html (same as they did in Oblivion).

 

Look how the tree-textures are hand-tuned by the Bethesda artists:

Posted Image

Above is normal filtering, below is original special filtering.

 

Except hand-managing foilage-textures and leave it to everyones taste, it's difficult to identify "foilage" automatically and apply a different alpha-channel filtering. I'm open to suggestions how to identify foilage-textures though.

Link to comment
Share on other sites

  • 0

 

I invited Ethatron et al. to comment on this topic (from DDSopt thread on the Nexus)... let's find out for sure, eh? I'd rather add fact to the guide than fiction, and I have not gone into this as yet.

 

It's an alpha-texture super-sampling issue, see https://en.wikipedia.org/wiki/Alpha_to_coverage for what Skyrim does NOT, and here for what Skyrim does: https://www.polycount.com/forum/archive/index.php/t-69528.html (same as they did in Oblivion).

Look how the tree-textures are hand-tuned by the Bethesda artists:

Posted Image

Above is normal filtering, below is original special filtering.

 

Except hand-managing foilage-textures and leave it to everyones taste, it's difficult to identify "foilage" automatically and apply a different alpha-channel filtering. I'm open to suggestions how to identify foilage-textures though.

 

 

Will study this when I have more time. feedback much appreciated.
Link to comment
Share on other sites

  • 0

Except hand-managing foilage-textures and leave it to everyones taste, it's difficult to identify "foilage" automatically and apply a different alpha-channel filtering. I'm open to suggestions how to identify foilage-textures though.

 

Is it possible to identify using a combination of inherent texture information and arbitrary texture name? If so, then it would seem to me that any file name containing "branch" or "leaf" that also uses 1) a specified compression type, 2) has a transparency alpha and 3) does not have a 1:1 aspect ration would work?
Link to comment
Share on other sites

  • 0

So we should avoid running foliage mods though ddsopt for now than?

 

 

For now, I am not sure how to manually identify what kind of textures might be subject to this artefact, but perhaps when Ethatron responds to my previous, we will have the necessary knowledge.
Link to comment
Share on other sites

  • 0

There is no correlation with the name for Bethesda artists, see "treeaspenbranchcomp.dds", it's not specially made. But one can always make it better then Bethesda artists. ;)

As far as I can see, the pine is the only texture made like that.

Link to comment
Share on other sites

  • 0

There is no correlation with the name for Bethesda artists, see "treeaspenbranchcomp.dds", it's not specially made. But one can always make it better then Bethesda artists. ;)

As far as I can see, the pine is the only texture made like that.

 

 

How does one identify if "special filtering" is used? i.e., Does the texture file itself possess some attribute that tells us how the alpha channel behaves?

 

I think I understand that treepineforestbranchcomp.dds uses the "alpha test" technique (smooth grayscale??), and that this is visible in the alpha channel in Gimp, but this is not the case for treeaspenbranchcomp.dds (uses alpha to coverage??). When processed by DDSopt, treepineforestbranchcomp.dds alpha channel is converted to alpha to coverage??

 

The following shows mip lev5 using native texture (top) and DDSopt-ed texture (bottom), which is analogous to treeaspenbranchcomp.dds:

 

Posted Image

Link to comment
Share on other sites

  • 0

I think he means that they manually painted on the mipmaps after they were generated to create the desired visual effect and that its not a common practice.

 

 

Thanks for clarifying (need things explicitly spelled out all to often!). That makes sense, and is also a bit disappointing, as this would mean that there is no way to tell without examining each texture manually :(. [Yes, Ethatron, I am finally understanding what you have been driving at ... deja vu]

 

This would also suggest that the alpha-transparency-filtering technique is driven by the game shader rather than texture dependent, which clears up another point of confusion I was going to raise later (still?) :P

 

[you can lead THIS horse to water, and he WILL drink if you direct his mouth to it!]

Link to comment
Share on other sites

  • 0

Yes, that's correct. The artist was either manually filling in the mipmaps, so he made every downscaled version twiddling the contrast knob until the results were as he wanted; or he has a program which has a global knob to successively raise contrast and he choosed some value.

 

As I put such a global "knob" - well it's two checkboxes, who's combination leads to more or less the same, I didn't want to expose any numbers (or sliders) as I anyway couldn't exactly reproduce the strong density present in that texture - into DDSopt, we may experiment with any foilage texture in the same manner. I think the artists may not have been the same (it's also visible in the quality of other textures, you almost can say which textures are made by which staff) so the Aspen haven't got it because there was no communication/synchronization, or he didn't think the Aspen was worth it, which implies he sat a few hours on the Pines and didn't want to repeat it for all the other foilage textures.

 

Alpha-to-coverage is an engine feature, not a shader-"option". AFAIR only AMD has it as DX9 extension available, and it is mainly to support transparency AA - if implemented you get the half-transparent gradients back again - without you get the obvious on/off steps. That has to do with the simplification of the render-pipeline for speed, and error-robustness. That a texture has alpha-gradients of a specific kind is only to decide when on and when off is choosen (halftoning).

 

I'll put a version-to-test-for-error on Github later, so you can play with that and please report any other errors, as I changed a hell of stuff in the compressor for speed.

Link to comment
Share on other sites

  • 0

@Ethatron

 

Thanks for that detail. I look forward to testing the pre-release and to all subsequent Skyrim-asset-optimization applications that you develop down the road. Vond is another avid user on these forums (as are several others) that will be interested in the new features!

Link to comment
Share on other sites

  • 0

I'm a bit late don't worry, I'm just having it running a last time. It appears I can transcode Skyrim - Textures in about 40m (single pass bsa-to-bsa: decompress + optimize + recompress). Size is down to 1.292.054.283 from 1.329.559.634 (old version).

 

Okay, then here is the testversion: https://github.com/Ethatron/ddsopt/downloads

Assume all files are broken. :^P

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.