Browse Source

Add ASTC to Sponza's textures

Panagiotis Christopoulos Charitos 4 years ago
parent
commit
b1bc81f293
64 changed files with 17 additions and 5 deletions
  1. 13 5
      AnKi/Importer/ImageImporter.cpp
  2. BIN
      Samples/Sponza/Assets/Background_Roughness.ankitex
  3. BIN
      Samples/Sponza/Assets/Lion_Roughness.ankitex
  4. BIN
      Samples/Sponza/Assets/Smoke.ankitex
  5. BIN
      Samples/Sponza/Assets/Sponza_Ceiling_roughness_tga.ankitex
  6. BIN
      Samples/Sponza/Assets/Sponza_Column_b_roughness_tga.ankitex
  7. BIN
      Samples/Sponza/Assets/Sponza_Column_c_roughness_tga.ankitex
  8. BIN
      Samples/Sponza/Assets/Sponza_Curtain_Red_normal.ankitex
  9. BIN
      Samples/Sponza/Assets/Sponza_Curtain_Red_normal_tga_001.ankitex
  10. BIN
      Samples/Sponza/Assets/Sponza_Curtain_roughness_tga_001.ankitex
  11. BIN
      Samples/Sponza/Assets/Sponza_Details_metallic-Sponza_Details_roughness.ankitex
  12. BIN
      Samples/Sponza/Assets/Sponza_Details_normal.ankitex
  13. BIN
      Samples/Sponza/Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex
  14. BIN
      Samples/Sponza/Assets/Sponza_FlagPole_normal.ankitex
  15. BIN
      Samples/Sponza/Assets/Sponza_FlagPole_roughness.ankitex
  16. BIN
      Samples/Sponza/Assets/Sponza_Floor_normal.ankitex
  17. BIN
      Samples/Sponza/Assets/Sponza_Floor_roughness.ankitex
  18. BIN
      Samples/Sponza/Assets/Sponza_Roof_normal.ankitex
  19. BIN
      Samples/Sponza/Assets/Sponza_Roof_roughness.ankitex
  20. BIN
      Samples/Sponza/Assets/Sponza_Thorn_roughness.ankitex
  21. BIN
      Samples/Sponza/Assets/VaseHanging_normal_tga.ankitex
  22. BIN
      Samples/Sponza/Assets/VaseHanging_roughness_tga.ankitex
  23. BIN
      Samples/Sponza/Assets/VasePlant_normal.ankitex
  24. BIN
      Samples/Sponza/Assets/VaseRound_normal.ankitex
  25. BIN
      Samples/Sponza/Assets/VaseRound_roughness.ankitex
  26. BIN
      Samples/Sponza/Assets/Vase_roughness.ankitex
  27. BIN
      Samples/Sponza/Assets/background.ankitex
  28. BIN
      Samples/Sponza/Assets/background_ddn.ankitex
  29. BIN
      Samples/Sponza/Assets/chain_texture_tga.ankitex
  30. BIN
      Samples/Sponza/Assets/ember_mid.ankitex
  31. BIN
      Samples/Sponza/Assets/lion.ankitex
  32. BIN
      Samples/Sponza/Assets/lion_ddn.ankitex
  33. BIN
      Samples/Sponza/Assets/sponza_arch_ddn.ankitex
  34. BIN
      Samples/Sponza/Assets/sponza_arch_ddn_tga.ankitex
  35. BIN
      Samples/Sponza/Assets/sponza_arch_diff.ankitex
  36. BIN
      Samples/Sponza/Assets/sponza_arch_diff_tga.ankitex
  37. BIN
      Samples/Sponza/Assets/sponza_arch_spec.ankitex
  38. BIN
      Samples/Sponza/Assets/sponza_arch_spec_tga.ankitex
  39. BIN
      Samples/Sponza/Assets/sponza_bricks_a_ddn_tga.ankitex
  40. BIN
      Samples/Sponza/Assets/sponza_bricks_a_diff_tga.ankitex
  41. BIN
      Samples/Sponza/Assets/sponza_ceiling_a_diff_tga.ankitex
  42. BIN
      Samples/Sponza/Assets/sponza_column_a_ddn_tga.ankitex
  43. BIN
      Samples/Sponza/Assets/sponza_column_a_diff_tga.ankitex
  44. BIN
      Samples/Sponza/Assets/sponza_column_a_spec_tga.ankitex
  45. BIN
      Samples/Sponza/Assets/sponza_column_b_ddn_tga.ankitex
  46. BIN
      Samples/Sponza/Assets/sponza_column_b_diff_tga.ankitex
  47. BIN
      Samples/Sponza/Assets/sponza_column_c_ddn_tga.ankitex
  48. BIN
      Samples/Sponza/Assets/sponza_column_c_diff_tga.ankitex
  49. BIN
      Samples/Sponza/Assets/sponza_curtain_green_diff_tga.ankitex
  50. BIN
      Samples/Sponza/Assets/sponza_details_diff.ankitex
  51. BIN
      Samples/Sponza/Assets/sponza_fabric_blue_diff.ankitex
  52. BIN
      Samples/Sponza/Assets/sponza_fabric_diff.ankitex
  53. BIN
      Samples/Sponza/Assets/sponza_fabric_green_diff.ankitex
  54. BIN
      Samples/Sponza/Assets/sponza_flagpole_diff.ankitex
  55. BIN
      Samples/Sponza/Assets/sponza_floor_a_diff.ankitex
  56. BIN
      Samples/Sponza/Assets/sponza_roof_diff.ankitex
  57. BIN
      Samples/Sponza/Assets/sponza_thorn_ddn.ankitex
  58. BIN
      Samples/Sponza/Assets/sponza_thorn_diff.ankitex
  59. BIN
      Samples/Sponza/Assets/vase_ddn.ankitex
  60. BIN
      Samples/Sponza/Assets/vase_dif.ankitex
  61. BIN
      Samples/Sponza/Assets/vase_hanging_tga.ankitex
  62. BIN
      Samples/Sponza/Assets/vase_plant_tga.ankitex
  63. BIN
      Samples/Sponza/Assets/vase_round_tga.ankitex
  64. 4 0
      Tools/Image/ImageImporterMain.cpp

+ 13 - 5
AnKi/Importer/ImageImporter.cpp

@@ -130,6 +130,7 @@ public:
 			{
 				ANKI_IMPORTER_LOGE("Couldn't delete file: %s", m_fileToDelete.cstr());
 			}
+			ANKI_IMPORTER_LOGV("Deleted %s", m_fileToDelete.cstr());
 		}
 	}
 };
@@ -423,12 +424,12 @@ static ANKI_USE_RESULT Error compressS3tc(GenericMemoryPoolAllocator<U8> alloc,
 
 static ANKI_USE_RESULT Error compressAstc(GenericMemoryPoolAllocator<U8> alloc, CString tempDirectory,
 										  CString astcencPath, ConstWeakArray<U8, PtrSize> inPixels, U32 inWidth,
-										  U32 inHeight, UVec2 blockSize, WeakArray<U8, PtrSize> outPixels)
+										  U32 inHeight, U32 inChannelCount, UVec2 blockSize,
+										  WeakArray<U8, PtrSize> outPixels)
 {
 	const PtrSize blockBytes = 16;
 	(void)blockBytes;
-	const PtrSize channelCount = 4;
-	ANKI_ASSERT(inPixels.getSizeInBytes() == PtrSize(inWidth) * inHeight * channelCount);
+	ANKI_ASSERT(inPixels.getSizeInBytes() == PtrSize(inWidth) * inHeight * inChannelCount);
 	ANKI_ASSERT(inWidth > 0 && isPowerOfTwo(inWidth) && inHeight > 0 && isPowerOfTwo(inHeight));
 	ANKI_ASSERT(outPixels.getSizeInBytes() == blockBytes * (inWidth / blockSize.x()) * (inHeight / blockSize.y()));
 
@@ -436,7 +437,7 @@ static ANKI_USE_RESULT Error compressAstc(GenericMemoryPoolAllocator<U8> alloc,
 	StringAuto pngFilename(alloc);
 	pngFilename.sprintf("%s/AnKiImageImporter_%u.png", tempDirectory.cstr(), U32(std::rand()));
 	ANKI_IMPORTER_LOGV("Will store: %s", pngFilename.cstr());
-	if(!stbi_write_png(pngFilename.cstr(), inWidth, inHeight, channelCount, inPixels.getBegin(), 0))
+	if(!stbi_write_png(pngFilename.cstr(), inWidth, inHeight, inChannelCount, inPixels.getBegin(), 0))
 	{
 		ANKI_IMPORTER_LOGE("STB failed to create: %s", pngFilename.cstr());
 		return Error::FUNCTION_FAILED;
@@ -527,6 +528,8 @@ static ANKI_USE_RESULT Error compressAstc(GenericMemoryPoolAllocator<U8> alloc,
 
 static ANKI_USE_RESULT Error storeAnkiImage(const ImageImporterConfig& config, const ImageImporterContext& ctx)
 {
+	ANKI_IMPORTER_LOGV("Storing to %s", config.m_outFilename.cstr());
+
 	File outFile;
 	ANKI_CHECK(outFile.open(config.m_outFilename, FileOpenFlag::BINARY | FileOpenFlag::WRITE));
 
@@ -694,6 +697,8 @@ static ANKI_USE_RESULT Error importImageInternal(const ImageImporterConfig& conf
 	// Compress
 	if(!!(config.m_compressions & ImageBinaryDataCompression::S3TC))
 	{
+		ANKI_IMPORTER_LOGV("Will compress in S3TC");
+
 		for(U32 mip = 0; mip < mipCount; ++mip)
 		{
 			for(U32 l = 0; l < ctx.m_layerCount; ++l)
@@ -720,6 +725,8 @@ static ANKI_USE_RESULT Error importImageInternal(const ImageImporterConfig& conf
 
 	if(!!(config.m_compressions & ImageBinaryDataCompression::ASTC))
 	{
+		ANKI_IMPORTER_LOGV("Will compress in ASTC");
+
 		for(U32 mip = 0; mip < mipCount; ++mip)
 		{
 			for(U32 l = 0; l < ctx.m_layerCount; ++l)
@@ -739,7 +746,8 @@ static ANKI_USE_RESULT Error importImageInternal(const ImageImporterConfig& conf
 
 					ANKI_CHECK(compressAstc(alloc, config.m_tempDirectory, config.m_astcencPath,
 											ConstWeakArray<U8, PtrSize>(surface.m_pixels), width, height,
-											config.m_astcBlockSize, WeakArray<U8, PtrSize>(surface.m_astcPixels)));
+											ctx.m_channelCount, config.m_astcBlockSize,
+											WeakArray<U8, PtrSize>(surface.m_astcPixels)));
 				}
 			}
 		}

BIN
Samples/Sponza/Assets/Background_Roughness.ankitex


BIN
Samples/Sponza/Assets/Lion_Roughness.ankitex


BIN
Samples/Sponza/Assets/Smoke.ankitex


BIN
Samples/Sponza/Assets/Sponza_Ceiling_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Column_b_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Column_c_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/Sponza_Curtain_Red_normal.ankitex


BIN
Samples/Sponza/Assets/Sponza_Curtain_Red_normal_tga_001.ankitex


BIN
Samples/Sponza/Assets/Sponza_Curtain_roughness_tga_001.ankitex


BIN
Samples/Sponza/Assets/Sponza_Details_metallic-Sponza_Details_roughness.ankitex


BIN
Samples/Sponza/Assets/Sponza_Details_normal.ankitex


BIN
Samples/Sponza/Assets/Sponza_Fabric_metallic-Sponza_Curtain_roughness.ankitex


BIN
Samples/Sponza/Assets/Sponza_FlagPole_normal.ankitex


BIN
Samples/Sponza/Assets/Sponza_FlagPole_roughness.ankitex


BIN
Samples/Sponza/Assets/Sponza_Floor_normal.ankitex


BIN
Samples/Sponza/Assets/Sponza_Floor_roughness.ankitex


BIN
Samples/Sponza/Assets/Sponza_Roof_normal.ankitex


BIN
Samples/Sponza/Assets/Sponza_Roof_roughness.ankitex


BIN
Samples/Sponza/Assets/Sponza_Thorn_roughness.ankitex


BIN
Samples/Sponza/Assets/VaseHanging_normal_tga.ankitex


BIN
Samples/Sponza/Assets/VaseHanging_roughness_tga.ankitex


BIN
Samples/Sponza/Assets/VasePlant_normal.ankitex


BIN
Samples/Sponza/Assets/VaseRound_normal.ankitex


BIN
Samples/Sponza/Assets/VaseRound_roughness.ankitex


BIN
Samples/Sponza/Assets/Vase_roughness.ankitex


BIN
Samples/Sponza/Assets/background.ankitex


BIN
Samples/Sponza/Assets/background_ddn.ankitex


BIN
Samples/Sponza/Assets/chain_texture_tga.ankitex


BIN
Samples/Sponza/Assets/ember_mid.ankitex


BIN
Samples/Sponza/Assets/lion.ankitex


BIN
Samples/Sponza/Assets/lion_ddn.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_ddn.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_spec.ankitex


BIN
Samples/Sponza/Assets/sponza_arch_spec_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_bricks_a_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_bricks_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_ceiling_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_a_spec_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_b_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_b_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_c_ddn_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_column_c_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_curtain_green_diff_tga.ankitex


BIN
Samples/Sponza/Assets/sponza_details_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_fabric_blue_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_fabric_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_fabric_green_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_flagpole_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_floor_a_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_roof_diff.ankitex


BIN
Samples/Sponza/Assets/sponza_thorn_ddn.ankitex


BIN
Samples/Sponza/Assets/sponza_thorn_diff.ankitex


BIN
Samples/Sponza/Assets/vase_ddn.ankitex


BIN
Samples/Sponza/Assets/vase_dif.ankitex


BIN
Samples/Sponza/Assets/vase_hanging_tga.ankitex


BIN
Samples/Sponza/Assets/vase_plant_tga.ankitex


BIN
Samples/Sponza/Assets/vase_round_tga.ankitex


+ 4 - 0
Tools/Image/ImageImporterMain.cpp

@@ -216,11 +216,15 @@ int main(int argc, char** argv)
 	astcencPath.sprintf("%s/../../ThirdParty/Bin:%s", p.cstr(), getenv("PATH"));
 	config.m_astcencPath = astcencPath;
 
+	ANKI_IMPORTER_LOGI("Image importing started: %s", config.m_outFilename.cstr());
+
 	if(importImage(config))
 	{
 		ANKI_IMPORTER_LOGE("Importing failed");
 		return 1;
 	}
 
+	ANKI_IMPORTER_LOGI("Image importing completed: %s", config.m_outFilename.cstr());
+
 	return 0;
 }