vmt_parser/material/
refract.rs1use super::deserialize_path;
2use crate::{
3 default_detail_scale, default_scale, default_scale3, BlendMode, TextureTransform, Vec2, Vec3,
4};
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct RefractMaterial {
9 #[serde(rename = "$normalmap", deserialize_with = "deserialize_path")]
11 pub normal_map: String,
12 #[serde(rename = "$dudvmap", default, deserialize_with = "deserialize_path")]
14 pub du_dv_map: Option<String>,
15 #[serde(rename = "$normalmap2", default, deserialize_with = "deserialize_path")]
17 pub normal_map2: Option<String>,
18 #[serde(
20 rename = "$basetexture",
21 default,
22 deserialize_with = "deserialize_path"
23 )]
24 pub base_texture: Option<String>,
25 #[serde(rename = "$bumptransform", default)]
27 pub bump_transform: TextureTransform,
28 #[serde(rename = "$bumptransform2", default)]
30 pub bump_transform2: TextureTransform,
31
32 #[serde(rename = "$refracttint", default = "default_scale3")]
33 pub refract_tint: Vec3,
34 #[serde(
36 rename = "$refracttinttexture",
37 default,
38 deserialize_with = "deserialize_path"
39 )]
40 pub refract_tint_texture: Option<String>,
41 #[serde(rename = "$refractamount", default = "default_scale")]
43 pub refract_amount: f32,
44 #[serde(rename = "$bluramount", default)]
46 pub blur_amount: f32,
47
48 #[serde(rename = "$decalscale", default = "default_detail_scale")]
49 pub detail_scale: Vec2,
51 #[serde(rename = "$detailblendfactor", default = "default_scale")]
53 pub detail_blend_factor: f32,
54 #[serde(rename = "$detailblendmode", default)]
56 pub detail_blend_mode: BlendMode,
57 #[serde(
59 rename = "$modelmaterial",
60 default,
61 deserialize_with = "deserialize_path"
62 )]
63 pub model_material: Option<String>,
64 #[serde(rename = "$pointsamplemagfilter", default)]
66 pub point_sample_mag_filter: bool,
67 #[serde(rename = "$seamless_scale", default = "default_scale")]
69 pub seamless_scale: f32,
70
71 #[serde(rename = "$alpha", default = "default_scale")]
73 pub alpha: f32,
74 #[serde(rename = "$alphatest", default)]
76 pub alpha_test: bool,
77 #[serde(rename = "$alphatestreference", default = "default_scale")]
79 pub alpha_test_reference: f32,
80 #[serde(rename = "$distancealpha", default)]
82 pub distance_alpha: bool,
83 #[serde(rename = "$nocull", default)]
85 pub no_cull: bool,
86 #[serde(rename = "$translucent", default)]
88 pub translucent: bool,
89
90 #[serde(rename = "$bumpmap", default, deserialize_with = "deserialize_path")]
92 pub bump_map: Option<String>,
93 #[serde(
95 rename = "$lightwarptexture",
96 default,
97 deserialize_with = "deserialize_path"
98 )]
99 pub light_wrap_texture: Option<String>,
100 #[serde(rename = "$selfillum", default)]
102 pub self_illum: bool,
103 #[serde(rename = "$ssbump", default)]
105 pub ss_bump: bool,
106
107 #[serde(rename = "$envmap", default, deserialize_with = "deserialize_path")]
109 pub env_map: Option<String>,
110 #[serde(rename = "$envmaptint", default = "default_scale3")]
111 pub env_map_tint: Vec3,
112}