various UI and rt changes
This commit is contained in:
@@ -32,9 +32,9 @@ void FontLoader::importAsset(FontImportArgs args) {
|
||||
// so we create a single pixel empty texture
|
||||
void FontLoader::import(FontImportArgs args, PFontAsset asset) {
|
||||
std::ifstream stream(args.filePath.c_str(), std::ios::binary | std::ios::ate);
|
||||
Array<uint8> ttfFile(stream.tellg());
|
||||
Array<char> ttfFile(stream.tellg());
|
||||
stream.seekg(0);
|
||||
stream.read((char*)ttfFile.data(), ttfFile.size());
|
||||
stream.read(ttfFile.data(), ttfFile.size());
|
||||
asset->ttfFile = std::move(ttfFile);
|
||||
asset->graphics = graphics;
|
||||
asset->loadFace();
|
||||
|
||||
@@ -92,6 +92,8 @@ constexpr const char* KEY_AMBIENT_COLOR = "k_a";
|
||||
constexpr const char* KEY_SHININESS = "k_shiny";
|
||||
constexpr const char* KEY_ROUGHNESS = "k_r";
|
||||
constexpr const char* KEY_METALLIC = "k_m";
|
||||
constexpr const char* KEY_EMISSIVE_COLOR = "k_e";
|
||||
constexpr const char* KEY_EMISSIVE_INTENSITY = "k_ei";
|
||||
|
||||
constexpr const char* KEY_DIFFUSE_TEXTURE = "tex_d";
|
||||
constexpr const char* KEY_SPECULAR_TEXTURE = "tex_s";
|
||||
@@ -101,6 +103,7 @@ constexpr const char* KEY_SHININESS_TEXTURE = "tex_shiny";
|
||||
constexpr const char* KEY_ROUGHNESS_TEXTURE = "tex_r";
|
||||
constexpr const char* KEY_METALLIC_TEXTURE = "tex_m";
|
||||
constexpr const char* KEY_AMBIENT_OCCLUSION_TEXTURE = "tex_ao";
|
||||
constexpr const char* KEY_EMISSIVE_TEXTURE = "tex_emissive";
|
||||
|
||||
void MeshLoader::loadMaterials(const aiScene* scene, const Array<PTextureAsset>& textures, const std::string& baseName,
|
||||
const std::filesystem::path& meshDirectory, const std::string& importPath,
|
||||
@@ -353,9 +356,19 @@ void MeshLoader::loadMaterials(const aiScene* scene, const Array<PTextureAsset>&
|
||||
addTextureParameter(KEY_AMBIENT_OCCLUSION_TEXTURE, aiTextureType_AMBIENT_OCCLUSION, i, outputAO, {0, -1, -1, -1});
|
||||
}
|
||||
|
||||
// Emissive
|
||||
//addScalarParameter(KEY_EMISSIVE_INTENSITY, AI_MATKEY_EMISSIVE_INTENSITY);
|
||||
addVectorParameter(KEY_EMISSIVE_COLOR, AI_MATKEY_COLOR_EMISSIVE);
|
||||
std::string outputEmissive = KEY_EMISSIVE_COLOR;
|
||||
uint32 numEmissive = material->GetTextureCount(aiTextureType_EMISSION_COLOR);
|
||||
for (uint32 i = 0; i < numEmissive; ++i) {
|
||||
addTextureParameter(KEY_EMISSIVE_TEXTURE, aiTextureType_EMISSION_COLOR, i, outputEmissive);
|
||||
}
|
||||
|
||||
MaterialNode brdf;
|
||||
brdf.variables["baseColor"] = outputDiffuse;
|
||||
brdf.variables["alpha"] = outputAlpha;
|
||||
brdf.variables["emissive"] = outputEmissive;
|
||||
if (!outputNormal.empty()) {
|
||||
expressions.add(new MulExpression());
|
||||
expressions.back()->key = "NormalMul";
|
||||
@@ -381,6 +394,13 @@ void MeshLoader::loadMaterials(const aiScene* scene, const Array<PTextureAsset>&
|
||||
case aiShadingMode_Toon:
|
||||
brdf.profile = "CelShading";
|
||||
break;
|
||||
case aiShadingMode_Blinn:
|
||||
brdf.profile = "BlinnPhong";
|
||||
brdf.variables["specularColor"] = outputSpecular;
|
||||
brdf.variables["ambient"] = outputAmbient;
|
||||
brdf.variables["shininess"] = outputShininess;
|
||||
break;
|
||||
default:
|
||||
case aiShadingMode_CookTorrance:
|
||||
brdf.profile = "CookTorrance";
|
||||
brdf.variables["roughness"] = outputRoughness;
|
||||
@@ -389,13 +409,6 @@ void MeshLoader::loadMaterials(const aiScene* scene, const Array<PTextureAsset>&
|
||||
brdf.variables["ambientOcclusion"] = outputAmbient;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case aiShadingMode_Blinn:
|
||||
brdf.profile = "BlinnPhong";
|
||||
brdf.variables["specularColor"] = outputSpecular;
|
||||
brdf.variables["ambient"] = outputAmbient;
|
||||
brdf.variables["shininess"] = outputShininess;
|
||||
break;
|
||||
};
|
||||
uint32 twoSided = false;
|
||||
float opacity = 1.0f;
|
||||
|
||||
@@ -111,12 +111,12 @@ void TextureLoader::import(TextureImportArgs args, PTextureAsset textureAsset) {
|
||||
ktxBasisParams basisParams = {
|
||||
.structSize = sizeof(ktxBasisParams),
|
||||
.uastc = true,
|
||||
.threadCount = 14,
|
||||
.threadCount = 1,
|
||||
.uastcFlags = KTX_PACK_UASTC_LEVEL_FASTEST,
|
||||
.uastcRDO = true,
|
||||
};
|
||||
//KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams));
|
||||
//KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 20));
|
||||
// KTX_ASSERT(ktxTexture2_CompressBasisEx(kTexture, &basisParams));
|
||||
// KTX_ASSERT(ktxTexture2_DeflateZstd(kTexture, 20));
|
||||
|
||||
char writer[100];
|
||||
snprintf(writer, sizeof(writer), "%s version %s", "SeeleEngine", "0.0.1");
|
||||
|
||||
Reference in New Issue
Block a user