2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-11-23 05:12:05 +00:00

Second failed attempt at making shadows work

This commit is contained in:
LJW-Dev
2025-10-08 19:42:11 +08:00
parent abf15e861e
commit dd460a65c8
2 changed files with 6 additions and 16 deletions

View File

@@ -58,7 +58,7 @@ enum GFX_SURFACE_FLAGS
#define DEFAULT_SMODEL_LIGHT 1
#define DEFAULT_SMODEL_REFLECTION_PROBE 0
#define DEFAULT_SURFACE_LIGHT 1
#define DEFAULT_SURFACE_LIGHT SUN_LIGHT_INDEX
#define DEFAULT_SURFACE_LIGHTMAP 0
#define DEFAULT_SURFACE_REFLECTION_PROBE 0
#define DEFAULT_SURFACE_FLAGS (GFX_SURFACE_CASTS_SUN_SHADOW | GFX_SURFACE_CASTS_SHADOW)

View File

@@ -258,19 +258,8 @@ private:
memset(gfxWorld->dpvs.surfaceVisData[1], 0, surfaceCount);
memset(gfxWorld->dpvs.surfaceVisData[2], 0, surfaceCount);
memset(gfxWorld->dpvs.surfaceVisDataCameraSaved, 0, surfaceCount);
for (unsigned int i = 0; i < surfaceCount; i++)
{
if ((gfxWorld->dpvs.surfaces[i].flags & GFX_SURFACE_CASTS_SHADOW) == 0)
gfxWorld->dpvs.surfaceCastsShadow[i] = 0;
else
gfxWorld->dpvs.surfaceCastsShadow[i] = 1;
if ((gfxWorld->dpvs.surfaces[i].flags & GFX_SURFACE_CASTS_SUN_SHADOW) == 0)
gfxWorld->dpvs.surfaceCastsSunShadow[i] = 0;
else
gfxWorld->dpvs.surfaceCastsSunShadow[i] = 1;
}
memset(gfxWorld->dpvs.surfaceCastsShadow, 0, surfaceCount);
memset(gfxWorld->dpvs.surfaceCastsSunShadow, 0, surfaceCount);
gfxWorld->dpvs.litSurfsBegin = 0;
gfxWorld->dpvs.litSurfsEnd = surfaceCount;
@@ -465,9 +454,10 @@ private:
for (unsigned int i = 0; i < gfxWorld->primaryLightCount; i++)
{
gfxWorld->shadowGeom[i].smodelCount = 0;
gfxWorld->shadowGeom[i].surfaceCount = gfxWorld->surfaceCount;
gfxWorld->shadowGeom[i].surfaceCount = 0;
gfxWorld->shadowGeom[i].smodelIndex = NULL;
gfxWorld->shadowGeom[i].sortedSurfIndex = gfxWorld->dpvs.sortedSurfIndex;
gfxWorld->shadowGeom[i].sortedSurfIndex = new uint16_t[gfxWorld->surfaceCount];
memset(gfxWorld->shadowGeom[i].sortedSurfIndex, 0, sizeof(uint16_t) * gfxWorld->surfaceCount);
}
gfxWorld->lightRegion = new GfxLightRegion[gfxWorld->primaryLightCount];