mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 08:14:48 +02:00
Pass 3rd of the hope to clean it up...
This commit is contained in:
parent
24cc302a8b
commit
4d94cbe0d8
5 changed files with 26 additions and 25 deletions
|
@ -428,7 +428,7 @@ namespace scriptable {
|
|||
|
||||
if (hasPropertyFallthroughs && material.propertyFallthroughs.at(graphics::MaterialKey::OPACITY_CUTOFF_VAL_BIT)) {
|
||||
obj.setProperty("opacityCutoff", FALLTHROUGH);
|
||||
} else if (!material.key.isOpacityCutoff()) {
|
||||
} else if (material.key.isOpacityCutoff()) {
|
||||
obj.setProperty("opacityCutoff", material.opacityCutoff);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ scriptable::ScriptableMaterial& scriptable::ScriptableMaterial::operator=(const
|
|||
roughness = material.roughness;
|
||||
metallic = material.metallic;
|
||||
scattering = material.scattering;
|
||||
alphaCutoff = material.alphaCutoff;
|
||||
opacityCutoff = material.opacityCutoff;
|
||||
unlit = material.unlit;
|
||||
emissive = material.emissive;
|
||||
albedo = material.albedo;
|
||||
|
@ -42,7 +42,7 @@ scriptable::ScriptableMaterial& scriptable::ScriptableMaterial::operator=(const
|
|||
occlusionMap = material.occlusionMap;
|
||||
lightMap = material.lightMap;
|
||||
scatteringMap = material.scatteringMap;
|
||||
opacityMode = material.opacityMode;
|
||||
opacityMapMode = material.opacityMapMode;
|
||||
|
||||
|
||||
defaultFallthrough = material.defaultFallthrough;
|
||||
|
@ -59,11 +59,11 @@ scriptable::ScriptableMaterial::ScriptableMaterial(const graphics::MaterialPoint
|
|||
model = material->getModel().c_str();
|
||||
opacity = material->getOpacity();
|
||||
|
||||
opacityMode = QString(graphics::MaterialKey::getAlphaMapModeName(material->getAlphaMapMode()).c_str());
|
||||
opacityMapMode = QString(graphics::MaterialKey::getOpacityMapModeName(material->getOpacityMapMode()).c_str());
|
||||
roughness = material->getRoughness();
|
||||
metallic = material->getMetallic();
|
||||
scattering = material->getScattering();
|
||||
alphaCutoff = material->getAlphaCutoff();
|
||||
opacityCutoff = material->getOpacityCutoff();
|
||||
unlit = material->isUnlit();
|
||||
emissive = material->getEmissive();
|
||||
albedo = material->getAlbedo();
|
||||
|
|
|
@ -25,11 +25,12 @@ const float Material::DEFAULT_ALBEDO { 0.5f };
|
|||
const float Material::DEFAULT_METALLIC { 0.0f };
|
||||
const float Material::DEFAULT_ROUGHNESS { 1.0f };
|
||||
const float Material::DEFAULT_SCATTERING{ 0.0f };
|
||||
const float Material::DEFAULT_ALPHA_CUTOFF { 0.5f };
|
||||
const MaterialKey::OpacityMapMode Material::DEFAULT_OPACITY_MAP_MODE{ MaterialKey::OPACITY_MAP_OPAQUE };
|
||||
const float Material::DEFAULT_OPACITY_CUTOFF { 0.5f };
|
||||
|
||||
|
||||
std::string MaterialKey::getAlphaMapModeName(AlphaMapMode mode) {
|
||||
const std::string names[3] = { "ALPHA_MAP_OPAQUE", "ALPHA_MAP_MASK", "ALPHA_MAP_BLEND" };
|
||||
std::string MaterialKey::getOpacityMapModeName(OpacityMapMode mode) {
|
||||
const std::string names[3] = { "OPACITY_MAP_OPAQUE", "OAPCITY_MAP_MASK", "OPACITY_MAP_BLEND" };
|
||||
return names[mode];
|
||||
}
|
||||
|
||||
|
@ -49,7 +50,7 @@ Material::Material(const Material& material) :
|
|||
_roughness(material._roughness),
|
||||
_metallic(material._metallic),
|
||||
_scattering(material._scattering),
|
||||
_alphaCutoff(material._alphaCutoff),
|
||||
_opacityCutoff(material._opacityCutoff),
|
||||
_texcoordTransforms(material._texcoordTransforms),
|
||||
_lightmapParams(material._lightmapParams),
|
||||
_materialParams(material._materialParams),
|
||||
|
@ -71,7 +72,7 @@ Material& Material::operator=(const Material& material) {
|
|||
_roughness = material._roughness;
|
||||
_metallic = material._metallic;
|
||||
_scattering = material._scattering;
|
||||
_alphaCutoff = material._alphaCutoff;
|
||||
_opacityCutoff = material._opacityCutoff;
|
||||
_texcoordTransforms = material._texcoordTransforms;
|
||||
_lightmapParams = material._lightmapParams;
|
||||
_materialParams = material._materialParams;
|
||||
|
@ -120,18 +121,18 @@ void Material::setScattering(float scattering) {
|
|||
_scattering = scattering;
|
||||
}
|
||||
|
||||
void Material::setAlphaCutoff(float alphaCutoff) {
|
||||
alphaCutoff = glm::clamp(alphaCutoff, 0.0f, 1.0f);
|
||||
_key.setAlphaCutoff(alphaCutoff != DEFAULT_ALPHA_CUTOFF);
|
||||
_alphaCutoff = alphaCutoff;
|
||||
void Material::setOpacityCutoff(float opacityCutoff) {
|
||||
opacityCutoff = glm::clamp(opacityCutoff, 0.0f, 1.0f);
|
||||
_key.setOpacityCutoff(opacityCutoff != DEFAULT_OPACITY_CUTOFF);
|
||||
_opacityCutoff = opacityCutoff;
|
||||
}
|
||||
|
||||
void Material::setAlphaMapMode(MaterialKey::AlphaMapMode alphaMode) {
|
||||
_key.setAlphaMapMode(alphaMode);
|
||||
void Material::setOpacityMapMode(MaterialKey::OpacityMapMode opacityMapMode) {
|
||||
_key.setOpacityMapMode(opacityMapMode);
|
||||
}
|
||||
|
||||
MaterialKey::AlphaMapMode Material::getAlphaMapMode() const {
|
||||
return _key.getAlphaMapMode();
|
||||
MaterialKey::OpacityMapMode Material::getOpacityMapMode() const {
|
||||
return _key.getOpacityMapMode();
|
||||
}
|
||||
|
||||
void Material::setTextureMap(MapChannel channel, const TextureMapPointer& textureMap) {
|
||||
|
|
|
@ -461,10 +461,10 @@ void RenderPipelines::updateMultiMaterial(graphics::MultiMaterial& multiMaterial
|
|||
wasSet = true;
|
||||
}
|
||||
break;
|
||||
case graphics::MaterialKey::ALPHA_CUTOFF_VAL_BIT:
|
||||
if (materialKey.isAlphaCutoff()) {
|
||||
schema._alphaCutoff = material->getAlphaCutoff();
|
||||
schemaKey.setAlphaCutoff(true);
|
||||
case graphics::MaterialKey::OPACITY_CUTOFF_VAL_BIT:
|
||||
if (materialKey.isOpacityCutoff()) {
|
||||
schema._opacityCutoff = material->getOpacityCutoff();
|
||||
schemaKey.setOpacityCutoff(true);
|
||||
wasSet = true;
|
||||
}
|
||||
break;
|
||||
|
@ -759,7 +759,7 @@ bool RenderPipelines::bindMaterials(graphics::MultiMaterial& multiMaterial, gpu:
|
|||
|
||||
// For shadows, we only need opacity mask information
|
||||
auto key = multiMaterial.getMaterialKey();
|
||||
if (renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE || key.isOpacityMaskMap()) {
|
||||
if (renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE || (key.isOpacityMaskMap() || key.isTranslucentMap())) {
|
||||
auto& schemaBuffer = multiMaterial.getSchemaBuffer();
|
||||
batch.setUniformBuffer(gr::Buffer::Material, schemaBuffer);
|
||||
if (enableTextures) {
|
||||
|
|
|
@ -157,10 +157,10 @@ void main(void) {
|
|||
<@if HIFI_USE_TRANSLUCENT@>
|
||||
float cutoff = getMaterialOpacityCutoff(mat);
|
||||
float opacity = getMaterialOpacity(mat) * _color.a;
|
||||
<$evalMaterialOpacity(albedoTex.a, opacity, matKey, opacity)$>;
|
||||
<$evalMaterialOpacity(albedoTex.a, cutoff, opacity, matKey, opacity)$>;
|
||||
<$discardInvisible(opacity)$>;
|
||||
<@else@>
|
||||
float cutoff = getMaterialAlphaCutoff(mat);
|
||||
float cutoff = getMaterialOpacityCutoff(mat);
|
||||
float opacity = 1.0;
|
||||
<$evalMaterialOpacityMask(albedoTex.a, cutoff, opacity)$>;
|
||||
<$discardTransparent(opacity)$>;
|
||||
|
|
Loading…
Reference in a new issue