vmt_parser/material/
eyerefract.rs1use super::deserialize_path;
2use crate::{default_scale, Vec3};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct EyeRefractMaterial {
7 #[serde(rename = "$iris", deserialize_with = "deserialize_path")]
9 pub iris: String,
10 #[serde(rename = "$corneatexture", deserialize_with = "deserialize_path")]
12 pub cornea_texture: String,
13 #[serde(rename = "$corneabumpstrength", default = "default_scale")]
15 pub cornea_bump_strength: f32,
16 #[serde(rename = "$parallaxstrength", default = "default_parallax_strength")]
18 pub parallax_strength: f32,
19 #[serde(rename = "$dilation", default = "default_dilation")]
21 pub dilation: f32,
22
23 #[serde(rename = "$lightwarptexture", deserialize_with = "deserialize_path")]
25 pub light_warp_texture: String,
26 #[serde(rename = "$envmap", deserialize_with = "deserialize_path")]
28 pub env_map: String,
29 #[serde(rename = "$glossiness", default = "default_dilation")]
31 pub glossiness: f32,
32
33 #[serde(rename = "$ambientoccltexture", deserialize_with = "deserialize_path")]
35 pub ambient_occlusion_texture: String,
36 #[serde(rename = "$ambientocclcolor", default = "default_occl_color")]
38 pub ambient_occlusion_color: Vec3,
39 #[serde(rename = "$ambientocclusion", default = "default_scale")]
41 pub ambiento_cclusion: f32,
42
43 #[serde(rename = "$halflambert", default)]
45 pub half_lambert: bool,
46 #[serde(rename = "$raytracesphere", default)]
48 pub ray_trace_sphere: bool,
49 #[serde(rename = "$spheretexkillcombo", default)]
51 pub sphere_tex_kill_combo: bool,
52 #[serde(rename = "$eyeballradius", default = "default_dilation")]
54 pub eye_ball_radius: f32,
55}
56
57fn default_parallax_strength() -> f32 {
58 0.25
59}
60
61fn default_dilation() -> f32 {
62 0.5
63}
64
65fn default_occl_color() -> Vec3 {
66 Vec3([0.33; 3])
67}