Merge pull request #1349 from 0b5vr/mtoon-emissive-colorspace

fix (VRM1.0, MToon): exported emissive factor should be in linear colorspace
This commit is contained in:
Masataka SUMI 2021-10-29 13:48:19 +09:00 committed by GitHub
commit 7935258363
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 2 deletions

View File

@ -84,6 +84,7 @@ namespace UniVRM10
mtoon.GiEqualizationFactor = context.GiEqualizationFactor;
// Emission
// Emissive factor is stored in Linear space
dst.emissiveFactor = context.EmissiveFactorLinear.ToFloat3(ColorSpace.Linear, ColorSpace.Linear);
var emissiveTextureIndex = textureExporter.RegisterExportingAsSRgb(context.EmissiveTexture, needsAlpha: false);
if (emissiveTextureIndex != -1)

View File

@ -72,6 +72,7 @@ namespace UniVRM10
// GI
// Emission
// Emissive factor should be stored in Linear space
var emissionColor = material?.emissiveFactor?.ToColor3(gltfColorSpace, ColorSpace.Linear);
if (emissionColor.HasValue)
{
@ -79,7 +80,7 @@ namespace UniVRM10
}
// Rim Lighting
var rimColor = mToon?.ParametricRimColorFactor?.ToColor3(gltfColorSpace, ColorSpace.Linear);
var rimColor = mToon?.ParametricRimColorFactor?.ToColor3(gltfColorSpace, ColorSpace.sRGB);
if (rimColor.HasValue)
{
yield return (MToon10Prop.ParametricRimColorFactor.ToUnityShaderLabName(), rimColor.Value);

View File

@ -102,7 +102,8 @@ namespace VRMShaders.VRM10.MToon10.Runtime
// Emission
public Color EmissiveFactorLinear
{
get => _material.GetColor(MToon10Prop.EmissiveFactor).linear;
// Emissive factor is stored in Linear space
get => _material.GetColor(MToon10Prop.EmissiveFactor);
}
public Texture EmissiveTexture