Skip to content

MipMap generation for DXT1 TextureArray not working when the Texture has no auto-generated mips #357

@JaXt0r

Description

@JaXt0r

Description

GUZ.Core.Services.Caches.TextureCacheService.TryGetTexture() has this information:

// TODO: DXT1 textures won't get MipMaps created. Unity limitation (even for v6.x). But normally all files do have MipMaps.
//  if (zkTexture.Format == ZenKit.TextureFormat.Dxt1 && zkTexture.MipmapCount == 1)
//  {
//    Logger.LogWarning($"Texture {zkTexture.Name} has no Mips and won't get one this way.", LogCat.Mesh);
//  }
// Let Unity generate Mipmaps if they aren't provided by Gothic texture itself.
var updateMipmaps = zkTexture.MipmapCount == 1;

Comment it out and see, how many textures are affected for G1/G2 Mods

If relevant, find a solution to generate the Mips. But be careful. What is not working:

  1. Create RGB24
  2. Create Mips
  3. Then put the RGB24 into the DXT1 TextureArray
    -> It will fail with an error, that the dimensions aren't correct (as DXT1 has less bytes per pixel).
Graphics.CopyTexture called with region not fitting in destination element: trying to copy to region on GPU (x:0, y:0, width:2048, height:2048) of mip 0 (size: 512x512)

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementOptimize an existing feature

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions