View Issue Details

IDProjectCategoryView StatusLast Update
0006297The Dark ModGraphicspublic08.10.2023 17:13
Reporterthebigh Assigned To 
PrioritynormalSeveritynormalReproducibilityalways
Status newResolutionopen 
PlatformPCOSWindowsOS Version11
Summary0006297: ambient_dynamic_light_cap not respected with ambient_light_falloff > 0
DescriptionSee attached map and script; also see discussion in https://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/page/455/#comment-486157
and https://bugs.thedarkmod.com/view.php?id=2901

The map consists of a standard old ambient_world light, an atdm:location_settings with ambient_light_falloff = 1, ambient_dynamic_light_cap = 0.1 0.1 0.1, and a big red button that calls a script that moves a small, dim light to a point very near the player's head.

The dynamic cap should stop the ambient getting too bright; however, pressing the big red button illuminates the ambient and light gem like I've just been teleported into the core of the Sun. Make sure to be standing still when you test this.
Tagslighting

Activities

thebigh

thebigh

07.06.2023 05:49

reporter   ~0016014

dynamic_bug.map (7,438 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
// primitive 0
{
brushDef3
{
( 0 0 1 -640 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 1 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 608 ) ( ( 0.01302083302289248 0 0 ) ( 0 0.01302083302289248 0 ) ) "textures/darkmod/sfx/black_matt" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -608 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 1 0 -32 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 96 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -608 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 2.220446049250313e-15 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 1 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 -544 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 96 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 512 ) ( ( 0.006510416511446238 0 3.333333253860474 ) ( -8.673617379884035e-19 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 64 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 1 -96 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/nature/grass/short_dry_grass" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -608 ) ( ( 0.006510416511446238 0 3.108624468950438e-15 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 -512 ) ( ( 0.006510416511446238 0 4.440892098500626e-16 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 96 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 -544 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 0 ) ( ( 0.006510416511446238 0 -1.77635683940025e-15 ) ( 0 0.006510416511446238 -1.666666626930237 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 1 0 512 ) ( ( 0.006510416511446238 0 10 ) ( -8.673617379884035e-19 0.006510416511446238 -1.332267629550188e-15 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -608 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 1 0 0 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 0 -1 96 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 0 -1 0 -512 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( -1 0 0 -32 ) ( ( 0.006510416511446238 0 0 ) ( 0 0.006510416511446238 0 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
( 1 0 0 0 ) ( ( 0.006510416511446238 0 13.33333301544189 ) ( -8.673617379884035e-19 0.006510416511446238 -2.220446049250313e-15 ) ) "textures/darkmod/stone/brick/blocks_tealblue_dark" 0 0 0
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90.000000"
"origin" "160 -256 128"
}
// entity 2
{
"classname" "atdm:mover_button"
"name" "PUSHME"
"model" "PUSHME"
"origin" "272 -240 144"
"target" "attach_light"
"translate" "0 0.5 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -16 ) ( ( 0.03125 0 8 ) ( 0 0.03125 248 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
( 0 1 0 -16 ) ( ( 0.03125 0 9 ) ( 0 0.03125 5 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
( 1 0 0 -16 ) ( ( 0.03125 0 8 ) ( 0 0.03125 5 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
( 0 0 -1 -16 ) ( ( 0.03125 0 8 ) ( 0 0.03125 9 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
( 0 -1 0 -16 ) ( ( 0.03125 0 120 ) ( 0 0.03125 5 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
( -1 0 0 -16 ) ( ( 0.03125 0 121 ) ( 0 0.03125 5 ) ) "textures/darkmod/paint_paper/wallpaper_fleurdelis_orangered" 0 0 0
}
}
}
// entity 3
{
"classname" "atdm:ambient_world"
"name" "ambient_world"
"_color" "0.08 0.08 0.08"
"light_center" "0 0 0"
"light_radius" "576 576 576"
"origin" "256 -256 384"
}
// entity 4
{
"classname" "atdm:target_callscriptfunction"
"name" "attach_light"
"call" "update_darkvision"
"foreach" "0"
"origin" "256 -192 160"
}
// entity 5
{
"classname" "atdm:location_settings"
"name" "atdm_location_settings_1"
"ambient_light_dist_scale" "32"
"ambient_light_dynamic_cap" "0.1 0.1 0.1"
"ambient_light_falloff" "1"
"origin" "256 -448 576"
"s_shader" "silence"
}
// entity 6
{
"classname" "info_location"
"name" "loc_testroom"
"ambient_light_dynamic" "0.01 0.01 0.01"
"origin" "256 -416 576"
}
// entity 7
{
"classname" "light"
"name" "nightvision"
"_color" "0.04 0.04 0.04"
"ai_see" "0"
"light_center" "0 0 0"
"light_radius" "80 80 80"
"origin" "256 -480 576"
}
dynamic_bug.map (7,438 bytes)   
dynamic_bug.script (203 bytes)   
void update_darkvision() {
    //move the nightvision light to the player's head
    sys.print( "Attaching light to head" );
    $nightvision.setOrigin( $player1.getEyePos() + '0 0 0.01');
    return;
}
dynamic_bug.script (203 bytes)   
thebigh

thebigh

05.10.2023 23:26

reporter   ~0016107

It would also be nice to have a spawnarg on lights that would prevent them from contributing to the dynamic, so that you can for example use Sotha's clever "dark vision" technique with a nonlinear ambient_light_falloff

Issue History

Date Modified Username Field Change
07.06.2023 05:47 thebigh New Issue
07.06.2023 05:47 thebigh Tag Attached: lighting
07.06.2023 05:49 thebigh Note Added: 0016014
07.06.2023 05:49 thebigh File Added: dynamic_bug.map
07.06.2023 05:49 thebigh File Added: dynamic_bug.script
05.10.2023 23:26 thebigh Note Added: 0016107
07.10.2023 01:55 thebigh Description Updated