Eyeball: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Fix self-redirected links)
(Removed information only true for the Eyes shader, added disambiguation template)
Line 2: Line 2:
[[Image:Eye alyxep2.jpg|thumb|Alyx's eyeball in [[Episode Two]], using the obsolete [[Eyes]] shader.]]
[[Image:Eye alyxep2.jpg|thumb|Alyx's eyeball in [[Episode Two]], using the obsolete [[Eyes]] shader.]]
[[Image:Eye vortep2.jpg|thumb|A vortigaunt's largest eye. The iris covers its entire surface.]]
[[Image:Eye vortep2.jpg|thumb|A vortigaunt's largest eye. The iris covers its entire surface.]]
 
{{For|about=the [[QC]] property of [[$model]]|the shaders used to render the eyes|{{ent|EyeRefract}} and {{ent|Eyes}}|the tool|[[qc_eyes]]}}
'''<code>Eyeball</code>''' is a property of [[$model (QC)|$model]]. It consists of two components:
'''<code>Eyeball</code>''' is a property of [[$model (QC)|$model]]. It defines the data needed to properly render a character's eyes, defining the name, positioning, size and material of the eyeball.
 
# An 'eye white' surface on the model, with a unique material.
# A dynamic [[Wikipedia:Iris (anatomy)|iris]] decal that travels over the eye white material to simulate the eye looking in different directions.
 
{{tip|An iris material can cover the entire surface of the eye if need be.}}


== Parameters ==
== Parameters ==
Line 21: Line 16:
: World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
: World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
;<code><material_name></code>
;<code><material_name></code>
: Material above which the iris material will be drawn. Make sure every eye has a unique one! You can either use a material with the <code>Eyes</code> shader, or the <code>[[EyeRefract]]</code> shader, but the latter is pretty much always recommended due to its more accurate rendering methods and more parameters to mess with.
: Material of the eye. Make sure each or every eye has a unique one. It is recommended to use a material using the <code>EyeRefract</code> shader.
;<code><diameter></code>
;<code><diameter></code>
: Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head. {{note|The iris will travel in a circle even if the eyeball is oval. Your model's [[flex]] should accommodate for this. {{todo|How?}} }}
: Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head. {{note|The iris will travel in a circle even if the eyeball is oval. Your model's [[flex]] should accommodate for this. {{todo|How?}} }}
;<code><angle></code>
;<code><angle></code>
: Default yaw offset (from directly forward) for iris. Humans are typically 2-4 degrees [[Wikipedia:Strabismus|wall-eyed]]. Not setting this correctly will result in either your characters appearing cross-eyed, or if you've compensated by misplacing the ball of the eye, them not tracking side to side. Should be a negative value for the left eye, and a positive value for the right eye.
: Default yaw offset (from directly forward) for the iris. Humans are typically 2-4 degrees [[Wikipedia:Strabismus|wall-eyed]]. Not setting this correctly will result in either your characters appearing cross-eyed, or if you've compensated by misplacing the ball of the eye, them not tracking side to side. Should be a negative value for the left eye, and a positive value for the right eye.
;<code><iris_material></code>
;<code><iris_material></code>
: Material used as the iris texture. (This property is deprecated)
: Material used as the iris texture. (This property is deprecated)
;<code><iris_scale></code>
;<code><iris_scale></code>
: Scale of the iris texture. The model's UV map does not influence the eye material in any way. {{todo|While this is true for <code>[[EyeRefract]]</code>, is this also true for the <code>Eyes</code> shader?}}
: Scale of the iris texture. The model's UV map does not influence the eye material in any way. {{todo|While this is true for <code>EyeRefract</code>, is this also true for the <code>Eyes</code> shader?}}


=== Example ===
=== Example ===
Line 42: Line 37:
== See also ==
== See also ==


* The <code>[[EyeRefract]]</code> shader
* [[Eye Position Setup]], for a guide to calculating the various numbers required
* [[Eye Position Setup]], for a guide to calculating the various numbers required
* <code>[[qc_eyes]]</code>, a tool to aid your calculations


[[Category:Modeling]]
[[Category:Modeling]]

Revision as of 16:16, 18 February 2020

The Demoman's eyeball, using the EyeRefract shader.
Alyx's eyeball in Episode Two, using the obsolete Eyes shader.
A vortigaunt's largest eye. The iris covers its entire surface.
This article is about the QC property of $model. For the shaders used to render the eyes, see EyeRefract and Eyes.  For the tool, see qc_eyes.

Eyeball is a property of $model. It defines the data needed to properly render a character's eyes, defining the name, positioning, size and material of the eyeball.

Parameters

Tip.pngTip:The qc_eyes tool can help you manage the potentially confusing string of numbers needed for this command.
<name>
Name of eyeball, used to match eyelid rules. For humans, use righteye and lefteye.
<bone_name>
The bone which the eye is parented to, typically the head.
<X> <Y> <Z>
World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
<material_name>
Material of the eye. Make sure each or every eye has a unique one. It is recommended to use a material using the EyeRefract shader.
<diameter>
Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head.
Note.pngNote:The iris will travel in a circle even if the eyeball is oval. Your model's flex should accommodate for this.
Todo: How?
<angle>
Default yaw offset (from directly forward) for the iris. Humans are typically 2-4 degrees wall-eyed. Not setting this correctly will result in either your characters appearing cross-eyed, or if you've compensated by misplacing the ball of the eye, them not tracking side to side. Should be a negative value for the left eye, and a positive value for the right eye.
<iris_material>
Material used as the iris texture. (This property is deprecated)
<iris_scale>
Scale of the iris texture. The model's UV map does not influence the eye material in any way.
Todo: While this is true for EyeRefract, is this also true for the Eyes shader?

Example

Hover your mouse over each value for its description.

$model "female_01" "female_01_reference_RE.smd"
{
	eyeball righteye ValveBiped.Bip01_Head1 -1.261 -3.702 64.974 eyeball_r 1 4 pupil_r 0.66
}

See also