Merge pull request #971 from mozilla/feature/fix-lightmap-support

Fix lightmap support and add support for lightmap intensity
This commit is contained in:
Robert Long 2020-06-04 15:43:51 -07:00 коммит произвёл GitHub
Родитель 826b512bf4 c7e5e4f0ad
Коммит f3a350bb64
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -59,7 +59,9 @@ async function meshBasicMaterialComparator(group, a, b) {
a.side === b.side &&
a.transparent === b.transparent &&
a.color.equals(b.color) &&
(await compareTextures(imageHashes, a.map, b.map))
a.lightMapIntensity === b.lightMapIntensity &&
(await compareTextures(imageHashes, a.map, b.map)) &&
(await compareTextures(imageHashes, a.lightMap, b.lightMap))
);
}
@ -120,6 +122,7 @@ export default class MeshCombinationGroup {
material.aoMap = await dedupeTexture(imageHashes, textureCache, material.aoMap);
material.normalMap = await dedupeTexture(imageHashes, textureCache, material.normalMap);
material.emissiveMap = await dedupeTexture(imageHashes, textureCache, material.emissiveMap);
material.lightMap = await dedupeTexture(imageHashes, textureCache, material.lightMap);
}
await asyncTraverse(rootObject, async object => {

Просмотреть файл

@ -9,7 +9,8 @@ export class LightmapExporterExtension extends ExporterExtension {
if (material.lightMap) {
materialDef.extensions.MOZ_lightmap = {
index: this.exporter.processTexture(material.lightMap),
texCoord: 1
texCoord: 1,
intensity: material.lightMapIntensity
};
this.exporter.extensionsUsed.MOZ_lightmap = true;
}

Просмотреть файл

@ -24,6 +24,7 @@ export class LightmapLoaderExtension extends LoaderExtension {
const lightmap = getLightmap(materialDef);
if (lightmap) {
material.lightMapIntensity = lightmap.intensity === undefined ? 1 : lightmap.intensity;
await this.loader.assignTexture(material, "lightMap", lightmap, sRGBEncoding, RGBFormat);
}
};