And light map coding for day in editor...when i get up later today going to look at this closer as what im looking for is here
on the light map downsizing due to map size ur making (affects editor view window only)
// MapBase
// LightMapDay1Base
float4 lightMapDay1BasePS(in float2 tc : TEXCOORD0) : COLOR0
{
float4 blockMapTC = AdjustBlockMapTexCoord(tc);
float4 blockMap = tex2Dlod(g_samTexture0Clamp, blockMapTC);
float blockY = UnpackBlockHeight(BLOCK_MAP_HEIGHT(blockMap), tc, g_vBlockHeights);
float tint = BLOCK_MAP_TINT(blockMap);
// take high lowres mip (approximate texture color)
float4 diffuseGrass = tex2Dlod(g_samTexture1, float4(tc, 0, 16.f));
float4 diffuseDirt = tex2Dlod(g_samTexture2, float4(tc, 0, 16.f));
float3 grassTint;
float3 dirtTint;
if (g_isOutputBaseMap) {
grassTint = GetGrassTint(tint);
dirtTint = GetDirtTint(tint);
} else {
grassTint = lerp(1.1f, TERRAIN_TINT_GRASS * 3.2f, tint);
dirtTint = lerp(1.1f, TERRAIN_TINT_DIRT * 3.2f, tint);
diffuseGrass.rgb = normalize(pow(diffuseGrass.rgb,1.8f));
diffuseDirt.rgb = normalize(pow(diffuseDirt.rgb,1.8f));
}
float4 groundColor = GetTerrainDiffuse(
diffuseGrass, grassTint,
diffuseDirt, dirtTint,
BLOCK_MAP_DIRT( blockMap ));
float fAlpha;
if (g_isOutputBaseMap) {
// store real height in alpha
fAlpha = blockY / MAX_HEIGHTMAP_VALUE;
} else {
if (g_isHaveOverlay) {
float2 tcOverlayMap = (tc + .5f / BLOCK_OVERLAYMAP_SIZE) * BLOCK_OVERLAYMAP_SIZE / (BLOCK_OVERLAYMAP_SIZE + 1.f);
float alpha = tex2D(g_samTerrainOverlayMap, tcOverlayMap).r;
float4 diffuseOverlay = tex2Dlod(g_samTerrainOverlay, float4(tc, 0, 16.f));
diffuseOverlay.rgb = normalize(pow(diffuseOverlay.rgb,1.8f));
diffuseOverlay.rgb *= lerp(1.1f, dirtTint, .6f);
groundColor = lerp(groundColor, diffuseOverlay, alpha);
}
float4 lightMap1 = tex2D(g_samTerrainLightMapNight1, g_vLightMapLeftTopTC + tc / TERRAIN_GEOMETRY_NUM_SUPERBLOCKS);
float4 lightMap2 = tex2D(g_samTerrainLightMapNight2, g_vLightMapLeftTopTC + tc / TERRAIN_GEOMETRY_NUM_SUPERBLOCKS);
float occlusion = lightMap1.a;
// get rid of occlusion within direct light
float attenParam = (UnpackLightHeight(lightMap2.b) - blockY) / UnpackLightRange(lightMap2.a);
float distAtten = saturate( (1.f - abs(attenParam)) * 2.f );
float3 diffuse = UnpackLightColor(lightMap1.rgb) * distAtten;
occlusion = saturate(occlusion + dot(diffuse, .1f));
fAlpha = occlusion;
}
return float4(groundColor.rgb, fAlpha);