LightmappedReflective: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
Line 29: Line 29:


{{bug|Adding proxies to a lightmappedreflective causes the texture to not be drawn. (Could this be because it includes some default proxy in order for it to work, and once there is a user-defined proxy, those "behind the scenes" proxies are no longer there?)}}
{{bug|Adding proxies to a lightmappedreflective causes the texture to not be drawn. (Could this be because it includes some default proxy in order for it to work, and once there is a user-defined proxy, those "behind the scenes" proxies are no longer there?)}}
{{bug|Does not appear to work in Portal 2}}
{{bug|If there is a portal in the reflection in Portal 2, it will cause the game to crash. Almost works in The Beginner Guide under the same conditions.}}
{{warning|Although this is functional in Portal 1, the reflection does not update when viewed through portals and portals will only update in the reflection if both of them are visible to you and to the func_reflective glass. Also, if the portals are rotated differently and viewed through the func_reflective_glass, the portals will display incorrectly.}}
{{warning|Although this is functional in Portal 1, the reflection does not update when viewed through portals and portals will only update in the reflection if both of them are visible to you and to the func_reflective glass. Also, if the portals are rotated differently and viewed through the func_reflective_glass, the portals will display incorrectly.}}



Revision as of 07:43, 17 November 2022

LightmappedReflective is the shader used by func_reflective_glass. This shader renders real-time reflection and refractions similar to Water (shader).

Warning.pngWarning:All parameters listed in the example (except $bumpframe, %tooltexture and $surfaceprop) must be included when used, or func_reflective_glass may not work properly. Counter-Strike:Global Offensive additionally requires $translucent.

Example

The example shown here is materials/glass/reflectiveglass001.vmt

"lightmappedreflective"
{
	"%tooltexture" "dev/flat_normal"
	"$refracttexture" "_rt_WaterRefraction"
	"$refractamount" "0"
	"$refracttint" "[.5 .5 .6]"

	"$reflecttexture" "_rt_WaterReflection"
	"$reflectamount" "0"
	"$reflecttint" "[1 1 1]"

	"$fresnelpower" "0"
	"$minreflectivity" "0.8"
	"$maxreflectivity" "1.0"
	
	"$normalmap" "dev/flat_normal"

	"$surfaceprop" "glass"
	"$bumpframe" "0"
}
Icon-Bug.pngBug:Adding proxies to a lightmappedreflective causes the texture to not be drawn. (Could this be because it includes some default proxy in order for it to work, and once there is a user-defined proxy, those "behind the scenes" proxies are no longer there?)  [todo tested in ?]
Icon-Bug.pngBug:If there is a portal in the reflection in Portal 2, it will cause the game to crash. Almost works in The Beginner Guide under the same conditions.  [todo tested in ?]
Warning.pngWarning:Although this is functional in Portal 1, the reflection does not update when viewed through portals and portals will only update in the reflection if both of them are visible to you and to the func_reflective glass. Also, if the portals are rotated differently and viewed through the func_reflective_glass, the portals will display incorrectly.

Shader parameters

Textures

$basetexture [[$normalmap|$normalmap]] $bumpframe $bumptransform

Reflection

$reflecttexture $reflectamount $reflecttint $reflectance $envmapmask $minreflectivity $maxreflectivity

Refraction

$refracttexture $refractamount $refracttint

Other

$surfaceprop %tooltexture $fresnelpower $translucent