View Issue Details

IDProjectCategoryView StatusLast Update
0003278The Dark ModAIpublic27.02.2013 00:48
Reporteruser81Assigned Tograyman  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWin32OSWindowsOS Version7 sp1
Target VersionTDM 2.00Fixed in VersionTDM 2.00 
Summary0003278: Snow particle effect dosent render in certain situations:
DescriptionIn my map "business as usual" I have changed the theme to winter. I then placed snow brushes directly above all the streets. Said brushes were all nodraw texture bar the upper most face with has snow and said brushes were level with thge highest roofs in the map.

Steps To Reproduce1. if the player looks down the snow stops being rendered.
2. if the plater walks under a bridge or room were I have not placed any snow patches, if the player walks just a few paces the snow stops being rendered.
3. rain particle dosent suffer as severely, but if the player looks down the rains stops being rendered.
Additional InformationI have tried various tricks to get the bloody snow to always render now matter where the player is located or where they are looking.
TagsNo tags attached.

Activities

grayman

grayman

06.01.2013 17:18

viewer   ~0004984

What does "player walks under a bright" mean?
grayman

grayman

06.01.2013 20:02

viewer   ~0004985

Shouldn't this be filed against TDM?
grayman

grayman

06.01.2013 20:11

viewer   ~0004986

Do you have a simple map where this doesn't work correctly?

I just tried a map where a light snow patch was 300 above the ground, and I could look at my feet and see the flakes falling to the ground.

user81

06.01.2013 20:29

  ~0004987

Last edited: 06.01.2013 20:38

I have made a basic map where is show the snow not working etc and attached it to this tracker. When you look down the snow stops being rendered.

user81

06.01.2013 20:36

 

snow.map (13,517 bytes)
grayman

grayman

06.01.2013 22:22

viewer  

snowbroken.map (7,494 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "317.26 121.418 212.152"
"editor_drLastCameraAngle" "15.3 161.5 0"
"editor_drMapPos1" "1738.55 1171.14 -520.531"
"editor_drMapAngle1" "14.7001 87.8977 0"
"editor_drMapPos2" "414.798 255.441 -264.933"
"editor_drMapAngle2" "2.10002 84.5976 0"
"editor_drMapPos3" "-749.97 -1606.21 -470.066"
"editor_drMapAngle3" "-3.29998 6.59757 0"
"editor_drMapPos4" "1014.05 -953.679 -556.857"
"editor_drMapAngle4" "-10.2 355.498 0"
"editor_drMapPos5" "987.599 3513.79 -319.877"
"editor_drMapAngle5" "-61.1999 172.198 0"
"editor_drMapPos6" "-1032.5 -2840 739.5"
"editor_drMapAngle6" "-77.0999 175.798 0"
"editor_drMapPos7" "952.822 285.005 1366.04"
"editor_drMapAngle7" "-74.8 149.373 0"
"editor_drMapPos8" "976 424 320"
"editor_drMapAngle8" "-3 15.3467 0"
"editor_drMapPos9" "409.146 547.464 392.83"
"editor_drMapAngle9" "-16.8 284.947 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -528 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 127.75 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -392 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -392 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 8 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 8 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 520 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 0.25 ) ) "textures/smf/portal_sky" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -400 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.875 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -400 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.125 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 1 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 0 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 6
{
patchDef2
{
"textures/darkmod/weather/snow_light"
( 3 3 0 0 0 )
(
( ( 8 208 264 0 0 ) ( 8 300 264 0 -0.75 ) ( 8 392 264 0 -1.5 ) )
( ( 108 208 264 0.78125 0 ) ( 108 300 264 0.78125 -0.75 ) ( 108 392 264 0.78125 -1.5 ) )
( ( 208 208 264 1.5625 0 ) ( 208 300 264 1.5625 -0.75 ) ( 208 392 264 1.5625 -1.5 ) )
)
}
}
// primitive 7
{
patchDef2
{
"textures/darkmod/metal/flat/copper_old_oxidised"
( 3 3 0 0 0 )
(
( ( 8.000000000000005 192 264.125 0 0 ) ( 8.000000000000005 100 264.125 0 -0.359375 ) ( 8.000000000000005 8.000000000000011 264.125 0 -0.71875 ) )
( ( 107.9607849121094 192 264.125 0.3904718160629273 0 ) ( 107.9607849121094 100 264.125 0.3904718160629273 -0.359375 ) ( 107.9607849121094 8.000000000000011 264.125 0.3904718160629273 -0.71875 ) )
( ( 207.9215698242188 192 264.125 0.7809436321258545 0 ) ( 207.9215698242188 100 264.125 0.7809436321258545 -0.359375 ) ( 207.9215698242188 8.000000000000011 264.125 0.7809436321258545 -0.71875 ) )
)
}
}
// primitive 8
{
patchDef2
{
"textures/darkmod/weather/snow_light"
( 3 3 0 0 0 )
(
( ( 8 8 264 0 0 ) ( 8 100 264 0 -0.75 ) ( 8 192 264 0 -1.5 ) )
( ( 108 8 264 0.78125 0 ) ( 108 100 264 0.78125 -0.75 ) ( 108 192 264 0.78125 -1.5 ) )
( ( 208 8 264 1.5625 0 ) ( 208 100 264 1.5625 -0.75 ) ( 208 192 264 1.5625 -1.5 ) )
)
}
}
// primitive 9
{
patchDef2
{
"textures/darkmod/metal/flat/copper_old_oxidised"
( 3 3 0 0 0 )
(
( ( 8.000000000000007 392 264.125 0 0 ) ( 8.000000000000007 300 264.125 0 -0.359375 ) ( 8.000000000000007 208 264.125 0 -0.71875 ) )
( ( 107.9607849121094 392 264.125 0.3904718160629273 0 ) ( 107.9607849121094 300 264.125 0.3904718160629273 -0.359375 ) ( 107.9607849121094 208 264.125 0.3904718160629273 -0.71875 ) )
( ( 207.9215698242188 392 264.125 0.7809436321258545 0 ) ( 207.9215698242188 300 264.125 0.7809436321258545 -0.359375 ) ( 207.9215698242188 208 264.125 0.7809436321258545 -0.71875 ) )
)
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90"
"origin" "32 56 16"
}
// entity 2
{
"classname" "light"
"name" "ambient_world"
"_color" "0.06 0.06 0.06"
"light_center" "0 0 0"
"light_radius" "864 809 776"
"nodiffuse" "0"
"noshadows" "0"
"nospecular" "0"
"origin" "200 216 256"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
snowbroken.map (7,494 bytes)   
grayman

grayman

06.01.2013 22:22

viewer  

snowbroken1.map (7,257 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "83.6067 327.762 70.6725"
"editor_drLastCameraAngle" "35.7 315.4 0"
"editor_drMapPos1" "1738.55 1171.14 -520.531"
"editor_drMapAngle1" "14.7001 87.8977 0"
"editor_drMapPos2" "414.798 255.441 -264.933"
"editor_drMapAngle2" "2.10002 84.5976 0"
"editor_drMapPos3" "-749.97 -1606.21 -470.066"
"editor_drMapAngle3" "-3.29998 6.59757 0"
"editor_drMapPos4" "1014.05 -953.679 -556.857"
"editor_drMapAngle4" "-10.2 355.498 0"
"editor_drMapPos5" "987.599 3513.79 -319.877"
"editor_drMapAngle5" "-61.1999 172.198 0"
"editor_drMapPos6" "-1032.5 -2840 739.5"
"editor_drMapAngle6" "-77.0999 175.798 0"
"editor_drMapPos7" "952.822 285.005 1366.04"
"editor_drMapAngle7" "-74.8 149.373 0"
"editor_drMapPos8" "976 424 320"
"editor_drMapAngle8" "-3 15.3467 0"
"editor_drMapPos9" "409.146 547.464 392.83"
"editor_drMapAngle9" "-16.8 284.947 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -528 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 127.75 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -392 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -392 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 8 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 8 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 520 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 0.25 ) ) "textures/smf/portal_sky" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -400 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.875 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -400 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.125 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 1 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 0 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 6
{
brushDef3
{
( 0 0 1 -104 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 255.96875 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 238.8125 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 238.8125 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 254.5 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
( 0 -1 0 388 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 238.8125 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
( -1 0 0 240 ) ( ( 0.0078125 0 1.5 ) ( 0 0.0078125 238.8125 ) ) "textures/darkmod/stone/brick/even_small_blocks01" 0 0 0
}
}
// primitive 7
{
patchDef2
{
"textures/darkmod/weather/snow_light"
( 3 3 0 0 0 )
(
( ( 8.000000000000014 8 264 0 0 ) ( 8.000000000000014 200 264 0 -1.5 ) ( 8.000000000000014 392 264 0 -3 ) )
( ( 200 8 264 1.5 0 ) ( 200 200 264 1.5 -1.5 ) ( 200 392 264 1.5 -3 ) )
( ( 392 8 264 3 0 ) ( 392 200 264 3 -1.5 ) ( 392 392 264 3 -3 ) )
)
}
}
// primitive 8
{
patchDef2
{
"textures/darkmod/metal/flat/copper_old_oxidised"
( 3 3 0 0 0 )
(
( ( 8 392 264.125 0 0 ) ( 8 200 264.125 0 -0.75 ) ( 8 7.999999999999996 264.125 0 -1.5 ) )
( ( 199.9607849121094 392 264.125 0.7498468160629273 0 ) ( 199.9607849121094 200 264.125 0.7498468160629273 -0.75 ) ( 199.9607849121094 7.999999999999996 264.125 0.7498468160629273 -1.5 ) )
( ( 391.9215698242188 392 264.125 1.499693632125855 0 ) ( 391.9215698242188 200 264.125 1.499693632125855 -0.75 ) ( 391.9215698242188 7.999999999999996 264.125 1.499693632125855 -1.5 ) )
)
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90"
"origin" "32 56 16"
}
// entity 2
{
"classname" "light"
"name" "ambient_world"
"_color" "0.06 0.06 0.06"
"light_center" "0 0 0"
"light_radius" "864 809 776"
"nodiffuse" "0"
"noshadows" "0"
"nospecular" "0"
"origin" "200 216 256"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
snowbroken1.map (7,257 bytes)   
grayman

grayman

06.01.2013 22:22

viewer  

snowbroken2.map (6,476 bytes)   
Version 2
// entity 0
{
"classname" "worldspawn"
"editor_drLastCameraPos" "188.438 194.713 112.442"
"editor_drLastCameraAngle" "-16.2 221.5 0"
"editor_drMapPos1" "1738.55 1171.14 -520.531"
"editor_drMapAngle1" "14.7001 87.8977 0"
"editor_drMapPos2" "414.798 255.441 -264.933"
"editor_drMapAngle2" "2.10002 84.5976 0"
"editor_drMapPos3" "-749.97 -1606.21 -470.066"
"editor_drMapAngle3" "-3.29998 6.59757 0"
"editor_drMapPos4" "1014.05 -953.679 -556.857"
"editor_drMapAngle4" "-10.2 355.498 0"
"editor_drMapPos5" "987.599 3513.79 -319.877"
"editor_drMapAngle5" "-61.1999 172.198 0"
"editor_drMapPos6" "-1032.5 -2840 739.5"
"editor_drMapAngle6" "-77.0999 175.798 0"
"editor_drMapPos7" "952.822 285.005 1366.04"
"editor_drMapAngle7" "-74.8 149.373 0"
"editor_drMapPos8" "976 424 320"
"editor_drMapAngle8" "-3 15.3467 0"
"editor_drMapPos9" "409.146 547.464 392.83"
"editor_drMapAngle9" "-16.8 284.947 0"
// primitive 0
{
brushDef3
{
( 0 0 1 -528 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 127.75 ) ) "textures/common/caulk" 0 0 0
( 0 1 0 -392 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 1 0 0 -392 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 -1 0 8 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( -1 0 0 8 ) ( ( 0.03125 0 0.25 ) ( 0 0.03125 60.5 ) ) "textures/common/caulk" 0 0 0
( 0 0 -1 520 ) ( ( 0.03125 0 127.75 ) ( 0 0.03125 0.25 ) ) "textures/smf/portal_sky" 0 0 0
}
}
// primitive 1
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -400 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 2
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.875 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0.125 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -400 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.125 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.875 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 3
{
brushDef3
{
( 0 1 0 -392 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 1 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 4
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 255.9375 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 0 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -8 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 5
{
brushDef3
{
( 0 0 1 -520 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 1 0 -392 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 0 -1 8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 0 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 0 -1 0 8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( -1 0 0 0 ) ( ( 0.0078125 0 0.0625 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
( 1 0 0 -8 ) ( ( 0.0078125 0 255.9375 ) ( 0 0.0078125 239.0625 ) ) "textures/darkmod/stone/brick/blocks_brown" 0 0 0
}
}
// primitive 6
{
patchDef2
{
"textures/darkmod/weather/snow_light"
( 3 3 0 0 0 )
(
( ( 8.000000000000014 8 384 0 0 ) ( 8.000000000000014 200 384 0 -1.5 ) ( 8.000000000000014 392 384 0 -3 ) )
( ( 200 8 384 1.5 0 ) ( 200 200 384 1.5 -1.5 ) ( 200 392 384 1.5 -3 ) )
( ( 392 8 384 3 0 ) ( 392 200 384 3 -1.5 ) ( 392 392 384 3 -3 ) )
)
}
}
// primitive 7
{
patchDef2
{
"textures/darkmod/metal/flat/copper_old_oxidised"
( 3 3 0 0 0 )
(
( ( 8 392 384.125 0 0 ) ( 8 200 384.125 0 -0.75 ) ( 8 7.999999999999996 384.125 0 -1.5 ) )
( ( 199.9607849121094 392 384.125 0.7498468160629273 0 ) ( 199.9607849121094 200 384.125 0.7498468160629273 -0.75 ) ( 199.9607849121094 7.999999999999996 384.125 0.7498468160629273 -1.5 ) )
( ( 391.9215698242188 392 384.125 1.499693632125855 0 ) ( 391.9215698242188 200 384.125 1.499693632125855 -0.75 ) ( 391.9215698242188 7.999999999999996 384.125 1.499693632125855 -1.5 ) )
)
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"angle" "90"
"origin" "32 56 16"
}
// entity 2
{
"classname" "light"
"name" "ambient_world"
"_color" "0.06 0.06 0.06"
"light_center" "0 0 0"
"light_radius" "864 809 776"
"nodiffuse" "0"
"noshadows" "0"
"nospecular" "0"
"origin" "200 216 264"
"parallel" "0"
"texture" "lights/ambientlightnfo"
}
snowbroken2.map (6,476 bytes)   
grayman

grayman

06.01.2013 22:35

viewer   ~0004988

Last edited: 06.01.2013 22:35

I added three maps:

snowbroken.map

1 - Put snow texture on the top of the snow patch, since the particles are ejected from the backside of the patch. This way they head down, and not up a bit, then down, when spawned.
2 - Moved the snow patch to 256 off the floor and duped it so there were two of them.
3 - Placed metal-textured patches 0.125 above the snow patch so we can see how high the snow patches are when we look up.
4 - When the map starts, wait until the snow reaches the floor. Then slowly look down toward the floor. At some point, the snow will disappear. Look down even more, and the snow reappears.

snowbroken1.map

1 - Took snowbroken, deleted one of the snow patches and its corresponding textured patch, and widened the snow patch so it fills the entire room.
2 - Now when you slowly look down, the snow doesn't disappear. Everything looks fine.

snowbroken2.map

1 - Took snowbroken1 and moved the snow patch and its textured patch up to where it's 376 off the floor.
2 - Now when you slowly look down, the snow disappears at a certain place and reappears again, as it did in snowbroken.map.

I don't know why the snow behaves this way, but maybe these maps can help someone track down the issue.

grayman

grayman

06.01.2013 22:37

viewer   ~0004989

Since this doesn't appear to be a DR issue, I suggest moving it to TDM so it catches the right person's eye.
Springheel

Springheel

14.01.2013 20:54

administrator   ~0005012

Could this be related to the flickering particle effect? Certain particles don't render correctly when you look down at them, like gas arrows.
Zbyl

Zbyl

29.01.2013 23:51

reporter   ~0005037

Last edited: 31.01.2013 14:46

It looks like the particles are just being culled.

Here is some info from http://www.iddevnet.com/doom3/editor_particle.php :
"Bounds expansion lets you add some constant amount to the size of the bounding box surrounding the particle system. This is only needed if you encounter a weird situation where your particles are disapearing when you face a certain direction. What is actually happening is the particle system is getting clipped with the view frustum because the bounds is too small. This theoretically shouldn't ever happen, but in reality it sometimes does."

Here is a hint from http://www.doom3world.org/phpbb2/viewtopic.php?t=24304 :
"Bounds Expansion is a tool to supposedly fix a problem that sometimes occurs in Doom 3 where sometimes viewing a particle beyond its bounds makes them disappear. In-game, essentially, you can be looking at say some cloudy skies at one angle, then look at it at another angle and the particles stop rendering and completely disappear.

Bounds Expansion is supposed to fix this by increasing the bounds, therefore preventing this from ever happening. However, I have never been able to get this to work. iddevnet says to give a large value, but irregardless of how many zeros I add, nothing seems to happen. I believe this tool is broken and should be ignored, unless this issue is exclusive to me. If you can get it to work, great, but if not, you know why."

My own findings:
1. idParticleStage::boundsExpansion is taken into account while computing bounding boxes of the particles emitted from surfaces (idDeclParticle::GetStageBounds()). Not that it changes anything.
2. The particles are culled when their particle-emitting-surface is being culled in R_AddAmbientDrawsurfs(). It happens because the bbox of the surface is not yet expanded to include the bbox of the particles. It is updated later - in R_ParticleDeform() run from R_AddDrawSurf().
3. Another bbox to watch for is entity->referenceBounds that is used for early culling in CullEntityByPortals().

Zbyl

Zbyl

31.01.2013 19:13

reporter  

Model.cpp.patch (2,201 bytes)   
Index: renderer/Model.cpp
===================================================================
--- renderer/Model.cpp	(revision 5694)
+++ renderer/Model.cpp	(working copy)
@@ -686,24 +686,36 @@
 			modelSurface_t	*surf = &surfaces[i];
 
 			// if the surface has a deformation, increase the bounds
-			// the amount here is somewhat arbitrary, designed to handle
-			// autosprites and flares, but could be done better with exact
-			// deformation information.
-			// Note that this doesn't handle deformations that are skinned in
-			// at run time...
-			if ( surf->shader->Deform() != DFRM_NONE ) {
-				srfTriangles_t	*tri = surf->geometry;
-				idVec3	mid = ( tri->bounds[1] + tri->bounds[0] ) * 0.5f;
-				float	radius = ( tri->bounds[0] - mid ).Length();
-				radius += 20.0f;
+			switch ( surf->shader->Deform() ) {
+			case DFRM_NONE:
+				break;
+			case DFRM_PARTICLE2: {
+					// expand surface bounds to include any emitted particles
+					srfTriangles_t	*tri = surf->geometry;
+					const idDeclParticle *particleSystem = (idDeclParticle *)surf->shader->GetDeformDecl();
+					tri->bounds.AddBounds(particleSystem->bounds);
+				}
+				break;
+			default: {
+					// the amount here is somewhat arbitrary, designed to handle
+					// autosprites and flares, but could be done better with exact
+					// deformation information.
+					// Note that this doesn't handle deformations that are skinned in
+					// at run time...
+					srfTriangles_t	*tri = surf->geometry;
+					idVec3	mid = ( tri->bounds[1] + tri->bounds[0] ) * 0.5f;
+					float	radius = ( tri->bounds[0] - mid ).Length();
+					radius += 20.0f;
 
-				tri->bounds[0][0] = mid[0] - radius;
-				tri->bounds[0][1] = mid[1] - radius;
-				tri->bounds[0][2] = mid[2] - radius;
+					tri->bounds[0][0] = mid[0] - radius;
+					tri->bounds[0][1] = mid[1] - radius;
+					tri->bounds[0][2] = mid[2] - radius;
 
-				tri->bounds[1][0] = mid[0] + radius;
-				tri->bounds[1][1] = mid[1] + radius;
-				tri->bounds[1][2] = mid[2] + radius;
+					tri->bounds[1][0] = mid[0] + radius;
+					tri->bounds[1][1] = mid[1] + radius;
+					tri->bounds[1][2] = mid[2] + radius;
+				}
+				break;
 			}
 
 			// add to the model bounds
Model.cpp.patch (2,201 bytes)   
Zbyl

Zbyl

31.01.2013 19:15

reporter   ~0005040

I've attached a patch for this issue. This is a bug in Doom3 renderer/Model.cpp. Model bounds calculation did not account for particle systems' bounds.
Zbyl

Zbyl

19.02.2013 14:26

reporter  

Model.cpp2.patch (2,345 bytes)   
Index: renderer/Model.cpp
===================================================================
--- renderer/Model.cpp	(revision 5694)
+++ renderer/Model.cpp	(working copy)
@@ -686,24 +686,39 @@
 			modelSurface_t	*surf = &surfaces[i];
 
 			// if the surface has a deformation, increase the bounds
-			// the amount here is somewhat arbitrary, designed to handle
-			// autosprites and flares, but could be done better with exact
-			// deformation information.
-			// Note that this doesn't handle deformations that are skinned in
-			// at run time...
-			if ( surf->shader->Deform() != DFRM_NONE ) {
-				srfTriangles_t	*tri = surf->geometry;
-				idVec3	mid = ( tri->bounds[1] + tri->bounds[0] ) * 0.5f;
-				float	radius = ( tri->bounds[0] - mid ).Length();
-				radius += 20.0f;
+			switch ( surf->shader->Deform() ) {
+			case DFRM_NONE:
+				break;
+			case DFRM_PARTICLE:
+			case DFRM_PARTICLE2: {
+					// expand surface bounds to include any emitted particles
+					// Note that this is an approximation. True bounds could be
+					// calculated by simulating R_ParticleDeform().
+					srfTriangles_t	*tri = surf->geometry;
+					const idDeclParticle *particleSystem = (idDeclParticle *)surf->shader->GetDeformDecl();
+					tri->bounds.AddBounds(particleSystem->bounds);
+				}
+				break;
+			default: {
+					// the amount here is somewhat arbitrary, designed to handle
+					// autosprites and flares, but could be done better with exact
+					// deformation information.
+					// Note that this doesn't handle deformations that are skinned in
+					// at run time...
+					srfTriangles_t	*tri = surf->geometry;
+					idVec3	mid = ( tri->bounds[1] + tri->bounds[0] ) * 0.5f;
+					float	radius = ( tri->bounds[0] - mid ).Length();
+					radius += 20.0f;
 
-				tri->bounds[0][0] = mid[0] - radius;
-				tri->bounds[0][1] = mid[1] - radius;
-				tri->bounds[0][2] = mid[2] - radius;
+					tri->bounds[0][0] = mid[0] - radius;
+					tri->bounds[0][1] = mid[1] - radius;
+					tri->bounds[0][2] = mid[2] - radius;
 
-				tri->bounds[1][0] = mid[0] + radius;
-				tri->bounds[1][1] = mid[1] + radius;
-				tri->bounds[1][2] = mid[2] + radius;
+					tri->bounds[1][0] = mid[0] + radius;
+					tri->bounds[1][1] = mid[1] + radius;
+					tri->bounds[1][2] = mid[2] + radius;
+				}
+				break;
 			}
 
 			// add to the model bounds
Model.cpp2.patch (2,345 bytes)   
Zbyl

Zbyl

19.02.2013 14:27

reporter   ~0005081

I've added slightly modified patch (Model.cpp2.patch) that handles also particles of type DFRM_PARTICLE.
grayman

grayman

27.02.2013 00:48

viewer   ~0005116

Zbyl contributed corrected code for correctly displaying particles regardless of view orientation.

rev. 5705:

Model.cpp

I tested the included snow maps, and they're fine now.

I also tested Awaiting the Storm and Thief's Den, where rain is used. They also looked fine.

Issue History

Date Modified Username Field Change
06.01.2013 16:47 user81 New Issue
06.01.2013 17:18 grayman Note Added: 0004984
06.01.2013 20:02 grayman Note Added: 0004985
06.01.2013 20:11 grayman Note Added: 0004986
06.01.2013 20:27 user81 Steps to Reproduce Updated
06.01.2013 20:28 user81 Category Map Editing => Renderer
06.01.2013 20:29 user81 Note Added: 0004987
06.01.2013 20:36 user81 File Added: snow.map
06.01.2013 20:37 user81 Note Edited: 0004987
06.01.2013 20:38 user81 Note Edited: 0004987
06.01.2013 20:53 user81 Additional Information Updated
06.01.2013 22:22 grayman File Added: snowbroken.map
06.01.2013 22:22 grayman File Added: snowbroken1.map
06.01.2013 22:22 grayman File Added: snowbroken2.map
06.01.2013 22:35 grayman Note Added: 0004988
06.01.2013 22:35 grayman Note Edited: 0004988
06.01.2013 22:37 grayman Note Added: 0004989
10.01.2013 03:25 greebo Project DarkRadiant => The Dark Mod
10.01.2013 03:25 greebo Category Renderer => General
14.01.2013 20:54 Springheel Note Added: 0005012
29.01.2013 23:51 Zbyl Note Added: 0005037
31.01.2013 14:46 Zbyl Note Edited: 0005037
31.01.2013 19:13 Zbyl File Added: Model.cpp.patch
31.01.2013 19:15 Zbyl Note Added: 0005040
19.02.2013 14:26 Zbyl File Added: Model.cpp2.patch
19.02.2013 14:27 Zbyl Note Added: 0005081
27.02.2013 00:48 grayman Note Added: 0005116
27.02.2013 00:48 grayman Assigned To => grayman
27.02.2013 00:48 grayman Status new => resolved
27.02.2013 00:48 grayman Resolution open => fixed
27.02.2013 00:48 grayman Category General => AI
27.02.2013 00:48 grayman Product Version 1.7.2 =>
27.02.2013 00:48 grayman Fixed in Version => TDM 2.00
27.02.2013 00:48 grayman Target Version => TDM 2.00