This article's documentation is for anything that uses the Source engine. Click here for more information.

EyeRefract: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
m (fixes formatation at $lightwarptexture $envmap $ambientocclusion and $halflambert)
Line 9: Line 9:
{{MatParam|$iris|texture|The texture for the iris. The alpha channel controls the noisiness of the cornea.}}
{{MatParam|$iris|texture|The texture for the iris. The alpha channel controls the noisiness of the cornea.}}
{{MatParam|$irisframe|int|The frame to start an animated <code>$iris</code> on.}}
{{MatParam|$irisframe|int|The frame to start an animated <code>$iris</code> on.}}
{{MatParam|$corneatexture|texture|A texture to specify the shape of the cornea, similar to a normal map. Influences lighting and dilation. The red and green channels are used for the normal mapping, the blue channel is a mask for parallax mapping (straight multiply), and the alpha channel seems to be a multiplier for lighting. Because the <code>$iris</code> is warped in various ways the normals will not match 1-to-1 with the base texture. {{todo|Requires more testing. Source code: eye_refract_ps2x.fxc - search for "fIrisHighlightMask"}}.}}
{{MatParam|$corneatexture|texture|A texture to specify the shape of the cornea, similar to a normal map. Influences lighting and dilation. The red and green channels are used for the normal mapping, the blue channel is a mask for parallax mapping (straight multiply), and the alpha channel seems to be a multiplier for lighting. Because the <code>$iris</code> is warped in various ways the normals will not match 1-to-1 with the base texture. {{todo|Requires more testing. Source code: eye_refract_ps2x.fxc - search for "fIrisHighlightMask"}}}}
{{MatParam|$corneabumpstrength|float|Strength of the <code>$corneatexture.</code>}}
{{MatParam|$corneabumpstrength|float|Strength of the <code>$corneatexture.</code>}}
{{MatParam|$parallaxstrength|float|How much the viewing angle should influence the positioning of the eye. Stronger values cause the iris to be smaller, but also move slower, making it seem "inset further". Default <code>0.25</code>.}}
{{MatParam|$parallaxstrength|float|How much the viewing angle should influence the positioning of the eye. Stronger values cause the iris to be smaller, but also move slower, making it seem "inset further". Default <code>0.25</code>.}}
{{MatParam|$dilation|normal|Dilates the pupil using the cornea texture to determine the shape of dilation. Default <code>0.5</code>.}}
{{MatParam|$dilation|normal|Dilates the pupil using the cornea texture to determine the shape of dilation. Default <code>0.5</code>.}}
{{MatParam|[[$lightwarptexture]]|texture|1-dimensional texture which remaps lighting colors.}}
{{MatParam|$lightwarptexture|texture|1-dimensional texture which remaps lighting colors.}}
{{MatParam|[[$envmap]]|texture|Enables cubemap reflections. This shader has a specific cubemap made for it, <code>engine/eye-reflection-cubemap-.vtf</code>, but others can be used, including <code>env_cubemap</code>.}}
{{MatParam|$envmap|texture|Enables cubemap reflections. This shader has a specific cubemap made for it, <code>engine/eye-reflection-cubemap-.vtf</code>, but others can be used, including <code>env_cubemap</code>.}}
{{MatParam|$glossiness|float|The opacity of the cubemap reflection. Does not affect the eye glint. Default <code>0.5</code>.}}
{{MatParam|$glossiness|float|The opacity of the cubemap reflection. Does not affect the eye glint. Default <code>0.5</code>.}}
{{MatParam|$ambientoccltexture|texture|An ambient occlusion texture overlaid onto the entire eye (be sure to adjust the iris scale of the [[Eyeball]] in the QC to make it fit) to make it appear darker near the borders. The texture is multiplicative (white changes nothing, black turns the result darker).}}
{{MatParam|$ambientoccltexture|texture|An ambient occlusion texture overlaid onto the entire eye (be sure to adjust the iris scale of the [[Eyeball]] in the QC to make it fit) to make it appear darker near the borders. The texture is multiplicative (white changes nothing, black turns the result darker).}}
{{MatParam|$ambientocclcolor|RGB matrix|Tints the <code>$ambientoccltexture</code>. Default <code>"[0.33 0.33 0.33]"</code>.}}
{{MatParam|$ambientocclcolor|RGB matrix|Tints the <code>$ambientoccltexture</code>. Default <code>"[0.33 0.33 0.33]"</code>.}}
{{MatParam|[[$ambientocclusion]]|float|Strength of the dynamic ambient occlusion. Default <code>1</code>. {{todo|Strength for SSAO?}}|since={{l4d}}}}
{{MatParam|$ambientocclusion|float|Strength of the dynamic ambient occlusion. Default <code>1</code>. {{todo|Strength for SSAO?}}|since={{l4d}}}}
{{MatParam|[[$halflambert]]|bool|Enables half-lambertian lighting.}}
{{MatParam|$halflambert|bool|Enables half-lambertian lighting.}}
{{MatParam|$raytracesphere|bool|Enables sphere raytracing. Each pixel is raytraced to allow sharper angles to look more accurate.}}
{{MatParam|$raytracesphere|bool|Enables sphere raytracing. Each pixel is raytraced to allow sharper angles to look more accurate.}}
{{MatParam|$spheretexkillcombo|bool|Requires <code>$raytracesphere 1</code>. Causes pixels which don't hit the raytraced sphere to be transparent, instead of rendering the "non-raytraced" eye behind it.}}
{{MatParam|$spheretexkillcombo|bool|Requires <code>$raytracesphere 1</code>. Causes pixels which don't hit the raytraced sphere to be transparent, instead of rendering the "non-raytraced" eye behind it.}}

Revision as of 12:50, 20 September 2023

English (en)Translate (Translate)
Eyerefract.jpg
This article is about the shader. For the preceding shader, see Eyes.  For the QC property of $model, see Eyeball./ For the tool, see qc_eyes.

Template:Format It is used to create realistic eyes, which are affected by map lighting and dynamic lighting, such as those from flashlights. This shader is a successor to the Eyes shader from Source 2004 Source 2004.

Icon-Bug.pngBug:Although this shader has support for $emissiveblend, it is not fully implemented and does not work properly.  [todo tested in ?]
Icon-Bug.pngBug:The shader doesn't work in Counter-Strike: Global Offensive Counter-Strike: Global Offensive, where eyes are always directed to the map's center. Standard models use static eyes.  [todo tested in ?]
Confirm:is this just CS:GO, or is it all CS:GO engine branch CS:GO engine branch games?

Shader Parameters

$iris $irisframe $corneatexture $corneabumpstrength $parallaxstrength $dilation $lightwarptexture $envmap $glossiness $ambientoccltexture $ambientocclcolor $ambientocclusion $halflambert $raytracesphere $spheretexkillcombo $eyeballradius

Other Parameters

$eyeorigin $irisu $irisv $intro $warpparam $entityorigin

Todo: Include cloak parameters in here?
Todo: Can this shader be used outside of a model with qc eyes, by using proxies (or in SFM override materials) to modify these shader values?