View Issue Details

IDProjectCategoryView StatusLast Update
0004902The Dark ModGraphicspublic09.12.2022 19:06
ReporterVanishedOne Assigned Tostgatilov  
PrioritynormalSeveritynormalReproducibilityalways
Status closedResolutionunable to reproduce 
Product VersionTDM 2.06 
Target VersionTDM 2.11Fixed in VersionTDM 2.11 
Summary0004902: Cubic lights create a banding effect on some surfaces
DescriptionSee attached screenshot. Book pages seem susceptible to this.

Some light textures create a more noticeable effect than others; the screenshot is of lights/ambientcube/skybox_industrial_01_cube
Additional InformationOnly the GLSL cubelight implementation seems affected.
TagsNo tags attached.
Attached Files
cubelight_banding.png (377,117 bytes)
light_on_books.map (6,790 bytes)

Relationships

related to 0006090 resolvedstgatilov Restore ambientCubicMap 

Activities

duzenko

duzenko

05.12.2018 08:57

developer   ~0010820

Steps to repeat / test map?
VanishedOne

VanishedOne

05.12.2018 20:59

reporter   ~0010827

Okay, a simple test map is attached.
duzenko

duzenko

06.12.2018 16:08

developer   ~0010837

Last edited: 06.12.2018 16:09

Thanks

Can you somehow show where the light center is? E.g. put a light entity there.
Can you extend the cubic light so that it interacts with more geometry than just the books (e.g. walls)?
Can you add more entities, such as a desk?

I suspect that the book surface is orthogonal to light rays and should not be lit at all.

VanishedOne

VanishedOne

06.12.2018 17:15

reporter   ~0010840

Last edited: 06.12.2018 17:21

The light volume already extends through the walls. And it's an ambient light (though I don't think the issue is limited to ambient lights).

I'll upload a new version with a couple more models, a paler material for the walls/floor/ceiling and a candle flame where the cubic light's origin is.

Edit: okay, attached. The staue I added looks good to me, but the top of the desk seems dubious.

duzenko

duzenko

07.12.2018 14:59

developer   ~0010847

Thanks

I can see you're using the standard lights/ambientCube/skybox_industrial_01_cube from tdm_cubeLights.mtr

I think that light material is out of sync with the current TDM version

Basically, it looks broken

Let's move discussion into the forum thread for now

http://forums.thedarkmod.com/topic/18282-tracker-3881-cubemap-lighting-beta/page-7
duzenko

duzenko

07.12.2018 15:00

developer   ~0010848

http://forums.thedarkmod.com/topic/18282-tracker-3881-cubemap-lighting-beta/page-7
nbohr1more

nbohr1more

09.12.2022 04:48

developer   ~0015529

The newest ambient cubemap light materials use the bakeAmbientDiffuse and bakeAmbientSpecular keywords ( replaces makeIrradiance keyword )
and do not suffer banding
stgatilov

stgatilov

09.12.2022 16:36

administrator   ~0015541

Are you sure they don't suffer banding?
Isn't it what you experienced?...
nbohr1more

nbohr1more

09.12.2022 19:04

developer   ~0015542

There is still some subtle banding when using the bakeAmbientDiffuse keyword but it cannot be reproduced in this test map.

AFAIK, the workaround is to use Irradiance Images made in 3rd party programs:

https://forums.thedarkmod.com/index.php?/topic/19803-tutorial-image-based-lighting-workflows-for-tdm/#comment-432186

If tracker 0006090 or 0005239 aren't appropriate to track that, we could use this tracker I guess.

The description and test map in this tracker do not properly represent the current state of things ( no do they reflect a proper understanding of the feature)
so either adding this to one of the above or creating a new tracker would be better.
nbohr1more

nbohr1more

09.12.2022 19:06

developer   ~0015543

VanishedOne I have attached the latest material def from SVN so you can test in 2.11 beta
tdm_cubeLights.mtr (8,727 bytes)   
//===============================================================================
// Default Cube Map (Author: Sikkpin)
//===============================================================================
lights/ambientCube/cubeDefault
{	
	ambientLight
	
		// 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/defaultcm))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/defaultcm))
		
        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)
����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}
			
}

textures/skies/cubeDefault
{	
	noFragment
	noshadows
	noimpact
	forceOpaque		
	qer_editorimage		env/lights/defaultcm_up.tga
	{
		blend			add	
		cameraCubeMap	env/lights/defaultcm
		texgen			skybox
	}
}

//===============================================================================
// TDM Skybox Lights
//===============================================================================

lights/ambientCube/daysky_cube
{	
	ambientLight
	
		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/daysky/daysky))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/daysky/daysky))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/dm_sqsky_cube
{	
	ambientLight

		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/dm_sqsky/dm_sqsky))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/dm_sqsky/dm_sqsky))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_afternoon_01_cube
{	
	ambientLight

		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_afternoon_01/afternoon_01))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_afternoon_01/afternoon_01))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}			
	
}

lights/ambientCube/skybox_afternoon_02_cube
{	
	ambientLight

		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_afternoon_02/afternoon_02))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_afternoon_02/afternoon_02))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_darkland_ne_cube
{	
	ambientLight

		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_darkland_ne/darkland_NE))
		lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_darkland_ne/darkland_NE))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}
			
}

lights/ambientCube/skybox_desert_day_cube
{	
	ambientLight
	
		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_desert_day/desert))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_desert_day/desert))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_fogged_01_cube
{	
	ambientLight

		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_fogged_01/fogged_01))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_fogged_01/fogged_01))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_industrial_01_cube
{	
	ambientLight

		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_industrial_01/industrial_01))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_industrial_01/industrial_01))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_mountain_sunset_cube
{	
	ambientLight
	
		
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_mountain_sunset/mountain_sunset))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_mountain_sunset/mountain_sunset))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_ocean_cube
{	
	ambientLight

		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_ocean/ocean))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_ocean/ocean))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_ocean_02_cube
{	
	ambientLight
	
		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_ocean_02/ocean_02))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_ocean_02/ocean_02))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

lights/ambientCube/skybox_ocean_ne_cube
{	
	ambientLight
	
		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/skyboxes/skybox_ocean_ne/ocean_NE))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/skyboxes/skybox_ocean_ne/ocean_NE))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

//===============================================================================
// CubeMapGen Cube Maps
//===============================================================================
lights/ambientCube/cubeDome
{	
	ambientLight
	
		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/dome))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/dome))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

textures/skies/cubeDome
{	
	noFragment
	noshadows
	noimpact
	forceOpaque		
	qer_editorimage		env/lights/dome_up.tga
	{
		blend			add	
		cameraCubeMap	env/lights/dome
		texgen			skybox
	}
}


lights/ambientCube/cubeSky
{	
	ambientLight
	
		 
		lightAmbientDiffuse bakeAmbientDiffuse(cameraLayout(env/lights/cubesky))
        lightAmbientSpecular bakeAmbientSpecular(cameraLayout(env/lights/cubesky))

        lightFalloffImage makeintensity( textures/lights/ambientlightnfo)

����
����{
��������
��������map textures/lights/ambientlightnfo_amb
��������colored
��������zeroClamp
��������
����}				
	
}

textures/skies/cubeSky
{	
	noFragment
	noshadows
	noimpact
	forceOpaque		
	qer_editorimage		env/lights/cubesky_up.tga
	{
		blend			add	
		cameraCubeMap	env/lights/cubesky
		texgen			skybox
	}
}


//===============================================================================
// Projection Cube Maps
//===============================================================================
lights/cubic/cubegrate6
{	
	cubicLight
	{
		// forceHighQuality
       	cubeMap		env/lights/grate6
		colored
		// zeroClamp
	}
}
lights/cubic/cubelightCube
{	
	cubicLight
	{
		// forceHighQuality
       	cubeMap		env/lights/lightCube
		colored
		zeroClamp
	}
}
lights/cubic/cubegradient
{	
	cubicLight
	{
		// forceHighQuality
       	cubeMap		env/lights/gradient
		colored
		zeroClamp
	}
}

lights/cubic/tdm_lampshade_cubic
{

    cubicLight
    qer_editorimage env/lights/lamp_up
    {
        forceHighQuality
        cameraCubeMap env/lights/lamp
        colored
        zeroClamp
    }
} 
tdm_cubeLights.mtr (8,727 bytes)   

Issue History

Date Modified Username Field Change
28.11.2018 22:35 VanishedOne New Issue
28.11.2018 22:35 VanishedOne File Added: cubelight_banding.png
05.12.2018 08:57 duzenko Note Added: 0010820
05.12.2018 20:58 VanishedOne File Added: light_on_books.map
05.12.2018 20:59 VanishedOne Note Added: 0010827
06.12.2018 16:08 duzenko Note Added: 0010837
06.12.2018 16:09 duzenko Note Edited: 0010837
06.12.2018 16:09 duzenko Assigned To => duzenko
06.12.2018 16:09 duzenko Status new => assigned
06.12.2018 17:15 VanishedOne Note Added: 0010840
06.12.2018 17:15 VanishedOne File Deleted: light_on_books.map
06.12.2018 17:16 VanishedOne File Added: light_on_books.map
06.12.2018 17:21 VanishedOne Note Edited: 0010840
07.12.2018 14:59 duzenko Note Added: 0010847
07.12.2018 15:00 duzenko Note Added: 0010848
09.12.2022 04:47 nbohr1more Status assigned => closed
09.12.2022 04:47 nbohr1more Resolution open => unable to reproduce
09.12.2022 04:47 nbohr1more Fixed in Version => TDM 2.11
09.12.2022 04:47 nbohr1more Target Version => TDM 2.11
09.12.2022 04:48 nbohr1more Note Added: 0015529
09.12.2022 04:49 nbohr1more Assigned To duzenko => stgatilov
09.12.2022 16:36 stgatilov Note Added: 0015541
09.12.2022 19:04 nbohr1more Note Added: 0015542
09.12.2022 19:05 nbohr1more Relationship added related to 0006090
09.12.2022 19:06 nbohr1more Note Added: 0015543
09.12.2022 19:06 nbohr1more File Added: tdm_cubeLights.mtr