View Issue Details

IDProjectCategoryView StatusLast Update
0006572The Dark ModGraphicspublic30.09.2024 22:41
Reporterwellingtoncrab Assigned Tostgatilov  
PrioritynormalSeveritynormalReproducibilityalways
Status resolvedResolutionfixed 
Product VersionTDM 2.13 
Target VersionTDM 2.13Fixed in VersionTDM 2.13 
Summary0006572: Cubemap Reflections Only Take the First Bump Stage and Don’t Check For Conditions
DescriptionCubemap reflections won’t work on materials with multiple bump map stages and conditions, such as when creating animated bump maps.

See examples in forum thread here:
https://forums.thedarkmod.com/index.php?/topic/22550-cubemap-reflection-bug-with-animated-normal-maps/#comment-496889
Steps To ReproduceAt the end of a material with animated bump maps, such as arcturus’s mesh water, place a cubemap reflection stage such as
        {
            forceHighQuality
                    blend gl_dst_alpha, gl_one
                    CubeMap _ambientWorldSpecularCubeMap
                    texgen reflect
                    RGB .5
        }

Alternatively you can look at the material “water_animatedA” available in the CC0 texture project on the beta mapper repository (example material def attatched):
https://svn.thedarkmod.com/contributor/betamapper/wellingtoncrab/_cc0tex
TagsNo tags attached.
Attached Files
animatednormalexample.txt (30,857 bytes)   
water_animatedA
{
    noshadows
	noselfshadow
    noimpact
    nonsolid
	qer_editorimage textures/common/prototype/proto_liquid_ed	

////// Specular
	{	
		blend	specularmap
		map _white
		rgb 0.15
	}
	
////// Water distortion effect	
		{
		if ( (time * 30) % 59 == 0 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0001.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 1 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0002.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 2 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0003.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 3 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0004.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 4 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0005.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 5 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0006.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 6 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0007.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 7 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0008.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 8 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0009.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 9 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0010.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 10 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0011.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 11 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0012.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 12 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0013.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 13 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0014.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 14 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0015.png
		fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 15 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0016.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 16 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0017.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 17 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0018.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 18 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0019.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 19 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0020.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 20 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0021.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 21 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0022.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 22 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0023.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 23 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0024.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 24 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0025.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
		{
		if ( (time * 30) % 59 == 25 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0026.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 26 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0027.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 27 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0028.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 28 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0029.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 29 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0030.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 30 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0031.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 31 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0032.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 32 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0033.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 33 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0034.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 34 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0035.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 35 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0036.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 36 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0037.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 37 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0038.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 38 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0039.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 39 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0040.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 40 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0041.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 41 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0042.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 42 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0043.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 43 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0044.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 44 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0045.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 45 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0046.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 46 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0047.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 47 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0048.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 48 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0049.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 49 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0050.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
		{
		if ( (time * 30) % 59 == 50 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0051.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 51 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0052.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 52 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0053.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 53 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0054.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 54 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0055.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 55 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0056.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 56 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0057.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 57 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0058.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 58 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0059.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}
	{
		if ( (time * 30) % 59 == 59 )
		vertexProgram		heatHazeWithAlphaDepth.vfp
		vertexParm	0	time * 0 , time * 0 // scroll
		vertexParm	1	(( parm6 + 2.5) - (( parm6 || 0) * 2.5)) //magnitude
		fragmentMap	0 	_currentRender
		fragmentMap	1	textures/water_source/water_animatedA/0060.png
        fragmentMap 2 textures/water_source/vp_water
        fragmentMap 3 _currentDepth
	}

///////// Water Color
	{
		blend   add
		map textures/water_source/water_cyan
		red     Parm0 * 0.4
		green   Parm1 * 0.4
		blue    Parm2 * 0.
	}
	{
		blend filter
		map textures/water_source/water_cyan
		colored
		RGB 3
	}

////////// Normal Maps
	{
		if ( (time * 30) % 59 == 0 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0001.png
	}
	{
		if ( (time * 30) % 59 == 1 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0002.png
	}
	{
		if ( (time * 30) % 59 == 2 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0003.png
	}
	{
		if ( (time * 30) % 59 == 3 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0004.png
	}
	{
		if ( (time * 30) % 59 == 4 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0005.png
	}
	{
		if ( (time * 30) % 59 == 5 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0006.png
	}
	{
		if ( (time * 30) % 59 == 6 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0007.png
	}
	{
		if ( (time * 30) % 59 == 7 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0008.png
	}
	{
		if ( (time * 30) % 59 == 8 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0009.png
	}
	{
		if ( (time * 30) % 59 == 9 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0010.png
	}
	{
		if ( (time * 30) % 59 == 10 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0011.png
	}
	{
		if ( (time * 30) % 59 == 11 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0012.png
	}
	{
		if ( (time * 30) % 59 == 12 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0013.png
	}
	{
		if ( (time * 30) % 59 == 13 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0014.png
	}
	{
		if ( (time * 30) % 59 == 14 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0015.png
	}
	{
		if ( (time * 30) % 59 == 15 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0016.png
	}
	{
		if ( (time * 30) % 59 == 16 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0017.png
	}
	{
		if ( (time * 30) % 59 == 17 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0018.png
	}
	{
		if ( (time * 30) % 59 == 18 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0019.png
	}
	{
		if ( (time * 30) % 59 == 19 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0020.png
	}
	{
		if ( (time * 30) % 59 == 20 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0021.png
	}
	{
		if ( (time * 30) % 59 == 21 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0022.png
	}
	{
		if ( (time * 30) % 59 == 22 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0023.png
	}
	{
		if ( (time * 30) % 59 == 23 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0024.png
	}
	{
		if ( (time * 30) % 59 == 24 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0025.png
	}
	{
		if ( (time * 30) % 59 == 25 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0026.png
	}
	{
		if ( (time * 30) % 59 == 26 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0027.png
	}
	{
		if ( (time * 30) % 59 == 27 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0028.png
	}
	{
		if ( (time * 30) % 59 == 28 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0029.png
	}
	{
		if ( (time * 30) % 59 == 29 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0030.png
	}
	{
		if ( (time * 30) % 59 == 30 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0031.png
	}
	{
		if ( (time * 30) % 59 == 31 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0032.png
	}
	{
		if ( (time * 30) % 59 == 32 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0033.png
	}
	{
		if ( (time * 30) % 59 == 33 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0034.png
	}
	{
		if ( (time * 30) % 59 == 34 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0035.png
	}
	{
		if ( (time * 30) % 59 == 35 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0036.png
	}
	{
		if ( (time * 30) % 59 == 36 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0037.png
	}
	{
		if ( (time * 30) % 59 == 37 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0038.png
	}
	{
		if ( (time * 30) % 59 == 38 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0039.png
	}
	{
		if ( (time * 30) % 59 == 39 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0040.png
	}
	{
		if ( (time * 30) % 59 == 40 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0041.png
	}
	{
		if ( (time * 30) % 59 == 41 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0042.png
	}
	{
		if ( (time * 30) % 59 == 42 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0043.png
	}
	{
		if ( (time * 30) % 59 == 43 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0044.png
	}
	{
		if ( (time * 30) % 59 == 44 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0045.png
	}
	{
		if ( (time * 30) % 59 == 45 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0046.png
	}
	{
		if ( (time * 30) % 59 == 46 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0047.png
	}
	{
		if ( (time * 30) % 59 == 47 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0048.png
	}
	{
		if ( (time * 30) % 59 == 48 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0049.png
	}
	{
		if ( (time * 30) % 59 == 49 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0050.png
	}
		{
		if ( (time * 30) % 59 == 50 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0051.png
	}
	{
		if ( (time * 30) % 59 == 51 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0052.png
	}
	{
		if ( (time * 30) % 59 == 52 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0053.png
	}
	{
		if ( (time * 30) % 59 == 53 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0054.png
	}
	{
		if ( (time * 30) % 59 == 54 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0055.png
	}
	{
		if ( (time * 30) % 59 == 55 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0056.png
	}
	{
		if ( (time * 30) % 59 == 56 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0057.png
	}
	{
		if ( (time * 30) % 59 == 57 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0058.png
	}
	{
		if ( (time * 30) % 59 == 58 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0059.png
	}
	{
		if ( (time * 30) % 59 == 59 )

		blend bumpmap
		map	textures/water_source/water_animatedA/0060.png
	}

////////// Cubemap Reflection	
		{
		
			forceHighQuality
					blend gl_dst_alpha, gl_one
					CubeMap _ambientWorldSpecularCubeMap 
					texgen reflect
					RGB .5
		}

}
animatednormalexample.txt (30,857 bytes)   

Activities

stgatilov

stgatilov

30.09.2024 22:40

administrator   ~0016850

Fixed in svn rev 10886.
Now disabled bump stages are skipped, thus a proper one is selected in animated case.

I believe interaction and env.map are the only stages which use bumpmap.

Issue History

Date Modified Username Field Change
30.09.2024 13:24 wellingtoncrab New Issue
30.09.2024 13:24 wellingtoncrab File Added: animatednormalexample.txt
30.09.2024 22:40 stgatilov Note Added: 0016850
30.09.2024 22:41 stgatilov Assigned To => stgatilov
30.09.2024 22:41 stgatilov Status new => resolved
30.09.2024 22:41 stgatilov Resolution open => fixed
30.09.2024 22:41 stgatilov Fixed in Version => TDM 2.13