Updates to KHR_materials_unlit
This commit is contained in:
parent
e742f066c2
commit
782862a4d5
|
@ -852,6 +852,9 @@ ModelData *Raw2Gltf(
|
||||||
diffuseTex.get(), diffuseFactor, specGlossTex.get(), specularFactor, glossiness));
|
diffuseTex.get(), diffuseFactor, specGlossTex.get(), specularFactor, glossiness));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextureData *normalTexture = simpleTex(RAW_TEXTURE_USAGE_NORMAL).get();
|
||||||
|
TextureData *emissiveTexture = simpleTex(RAW_TEXTURE_USAGE_EMISSIVE).get();
|
||||||
|
|
||||||
std::shared_ptr<KHRCommonMats> khrComMat;
|
std::shared_ptr<KHRCommonMats> khrComMat;
|
||||||
if (options.useKHRMatCom) {
|
if (options.useKHRMatCom) {
|
||||||
float shininess;
|
float shininess;
|
||||||
|
@ -908,16 +911,33 @@ ModelData *Raw2Gltf(
|
||||||
|
|
||||||
std::shared_ptr<KHRCmnConstantMaterial> khrCmnConstantMat;
|
std::shared_ptr<KHRCmnConstantMaterial> khrCmnConstantMat;
|
||||||
if (options.useKHRMatCmnConstant) {
|
if (options.useKHRMatCmnConstant) {
|
||||||
khrCmnConstantMat.reset(new KHRCmnConstantMaterial());
|
normalTexture = nullptr;
|
||||||
|
|
||||||
// Set fallback parameters
|
emissiveTexture = nullptr;
|
||||||
pbrMetRough.reset(new PBRMetallicRoughness(nullptr, Vec4f(0.0f, 0.0f, 0.0f, 1.0f), 0.0f, 0.0f));
|
emissiveFactor = Vec3f(0.00f, 0.00f, 0.00f);
|
||||||
|
|
||||||
|
Vec4f diffuseFactor;
|
||||||
|
std::shared_ptr<TextureData> baseColorTex;
|
||||||
|
|
||||||
|
if (material.info->shadingModel == RAW_SHADING_MODEL_PBR_MET_ROUGH) {
|
||||||
|
RawMetRoughMatProps *props = (RawMetRoughMatProps *) material.info.get();
|
||||||
|
diffuseFactor = props->diffuseFactor;
|
||||||
|
baseColorTex = simpleTex(RAW_TEXTURE_USAGE_ALBEDO);
|
||||||
|
} else {
|
||||||
|
RawTraditionalMatProps *props = ((RawTraditionalMatProps *) material.info.get());
|
||||||
|
diffuseFactor = props->diffuseFactor;
|
||||||
|
baseColorTex = simpleTex(RAW_TEXTURE_USAGE_DIFFUSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
pbrMetRough.reset(new PBRMetallicRoughness(baseColorTex.get(), nullptr, diffuseFactor, 0.0f, 1.0f));
|
||||||
|
|
||||||
|
khrCmnConstantMat.reset(new KHRCmnConstantMaterial());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<MaterialData> mData = gltf->materials.hold(
|
std::shared_ptr<MaterialData> mData = gltf->materials.hold(
|
||||||
new MaterialData(
|
new MaterialData(
|
||||||
material.name, isTransparent,
|
material.name, isTransparent,
|
||||||
simpleTex(RAW_TEXTURE_USAGE_NORMAL).get(), simpleTex(RAW_TEXTURE_USAGE_EMISSIVE).get(),
|
normalTexture, emissiveTexture,
|
||||||
emissiveFactor * emissiveIntensity,
|
emissiveFactor * emissiveIntensity,
|
||||||
khrComMat, khrCmnConstantMat, pbrMetRough, pbrSpecGloss));
|
khrComMat, khrCmnConstantMat, pbrMetRough, pbrSpecGloss));
|
||||||
materialsByName[materialHash(material)] = mData;
|
materialsByName[materialHash(material)] = mData;
|
||||||
|
|
|
@ -30,7 +30,7 @@ using json = nlohmann::basic_json<workaround_fifo_map>;
|
||||||
|
|
||||||
static const std::string KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
static const std::string KHR_DRACO_MESH_COMPRESSION = "KHR_draco_mesh_compression";
|
||||||
static const std::string KHR_MATERIALS_COMMON = "KHR_materials_common";
|
static const std::string KHR_MATERIALS_COMMON = "KHR_materials_common";
|
||||||
static const std::string KHR_MATERIALS_CMN_CONSTANT = "KHR_materials_cmnConstant";
|
static const std::string KHR_MATERIALS_CMN_CONSTANT = "KHR_materials_unlit";
|
||||||
static const std::string KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS = "KHR_materials_pbrSpecularGlossiness";
|
static const std::string KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS = "KHR_materials_pbrSpecularGlossiness";
|
||||||
|
|
||||||
static const std::string extBufferFilename = "buffer.bin";
|
static const std::string extBufferFilename = "buffer.bin";
|
||||||
|
|
Loading…
Reference in New Issue