EyeRefract: Difference between revisions
Jump to navigation
Jump to search
Bug:Although this shader has support for $emissiveblend, it is not fully implemented and does not work properly. [todo tested in ?]
Deprecated (talk | contribs) m (DX9 requirement) |
Deprecated (talk | contribs) (Rewritten, changed to use Shader and MatParam templates, added $ambientocclusion from L4D) |
||
Line 1: | Line 1: | ||
[[File:Eyerefract.jpg|right|300px]] | [[File:Eyerefract.jpg|right|300px]] | ||
{{Shader|EyeRefract|dx9=1|since=Half-Life 2: Episode Two}} 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 {{ent|Eyes}} shader from {{Game link|Half-Life 2}}. | |||
{{Bug|Although this shader has support for {{ent|$emissiveblend}}, it is not fully implemented and does not work properly.}} | |||
= Shader Parameters = | == Shader Parameters == | ||
{{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|$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. {{todo|Requires more testing. Source code: eye_refract_ps2x.fxc - search for "fIrisHighlightMask"}}.}} | |||
{{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|$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|[[$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|$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|$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|$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|$eyeballradius|float|Requires <code>$raytracesphere 1</code>. Radius of the eyeball. Should be the diameter of the eyeball divided by 2. Default <code>0.5</code>.}} | |||
== Other Parameters == | == Other Parameters == | ||
{{MatParam|$eyeorigin|vector3|Eyeball origin. Most likely derived from the qc eyes definition.}} | |||
{{MatParam|$irisu|vector4}} | |||
{{MatParam|$irisv|vector4|U/V projection vector for the iris. Default <code>"[0 1 0 0]"</code> and <code>"[0 0 1 0]"</code>, respectively.}} | |||
{{MatParam|$intro|bool|Eyes are used on a model in Episode 1's intro cutscene. Adds another shader pass.}} | |||
{{MatParam|$warpparam|float|Requires <code>$intro 1</code>. How far into the warp animation we are.}} | |||
{{MatParam|$entityorigin|vector3|Requires <code>$intro 1</code>. World-space location of the entity, required to correctly animate the warp.}} | |||
{{todo|Include cloak | {{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?}} | {{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?}} | ||
[[ | ==See also== | ||
*[[Eyeball]] | |||
*[[qc_eyes]] |
Revision as of 12:45, 7 June 2019
EyeRefract
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 Half-Life 2 .

Shader Parameters
$iris
$irisframe
$corneatexture
$corneabumpstrength
$parallaxstrength
$dilation
[[$lightwarptexture|$lightwarptexture]]
[[$envmap|$envmap]]
$glossiness
$ambientoccltexture
$ambientocclcolor
$ambientocclusion
[[$halflambert|$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?