-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathvfmt.xml
128 lines (118 loc) · 4.87 KB
/
vfmt.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!--
input data streams:
pos : position vec3f[x, y, z]
uv[n] : uv coordinates vec2f[x, y]
normal : vertex normal vec3f[x, y, z]
tangent : targent vec3f[x, y, z]
binormal : binormal vec3f[x, y, z]
color[n] : color vec4f[r, g, b, a]
qframe : quaternion tangent frame vec4f[quat_vec={x, y, z}, mirror=0/1]
tbn32 : uint32 quantized tangent frame [aaaaaaaaaahyyyyyyyyyxxxxxxxxxxx]
input constants:
mesh_bvol_pos : mesh bounding volume position vec3f[x, y, z]
mesh_bvol_rad : mesh bounding volume radius
-->
<vertex_formats>
<format id="1" name="p">
<!-- position -->
<element type="float32" expr="pos.x" />
<element type="float32" expr="pos.y" />
<element type="float32" expr="pos.z" />
</format>
<format id="2" name="pn">
<!-- position -->
<element type="float32" expr="pos.x" />
<element type="float32" expr="pos.y" />
<element type="float32" expr="pos.z" />
<!-- normal -->
<element type="float32" expr="normal.x" />
<element type="float32" expr="normal.y" />
<element type="float32" expr="normal.z" />
</format>
<format id="3" name="pq">
<!-- position -->
<element type="float32" expr="pos.x" />
<element type="float32" expr="pos.y" />
<element type="float32" expr="pos.z" />
<!-- quaternion tangent frame -->
<element type="float32" expr="qframe.x+(qframe.w?0:2)" />
<element type="float32" expr="qframe.y" />
<element type="float32" expr="qframe.z" />
</format>
<format id="4" name="pnu">
<!-- position -->
<element type="float32" expr="pos.x" />
<element type="float32" expr="pos.y" />
<element type="float32" expr="pos.z" />
<!-- normal -->
<element type="float32" expr="normal.x" />
<element type="float32" expr="normal.y" />
<element type="float32" expr="normal.z" />
<!-- uv -->
<element type="float32" expr="uv.x" />
<element type="float32" expr="uv.y" />
</format>
<format id="5" name="pqu">
<!-- position -->
<element type="float32" expr="pos.x" />
<element type="float32" expr="pos.y" />
<element type="float32" expr="pos.z" />
<!-- quaternion tangent frame -->
<element type="float32" expr="qframe.x+(qframe.w?0:2)" />
<element type="float32" expr="qframe.y" />
<element type="float32" expr="qframe.z" />
<!-- uv -->
<element type="float32" expr="uv.x" />
<element type="float32" expr="uv.y" />
</format>
<format id="6" name="p48">
<!-- position -->
<element type="int16" expr="32767.5*(pos.x-mesh_bvol_pos.x)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.y-mesh_bvol_pos.y)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.z-mesh_bvol_pos.z)/mesh_bvol_rad" />
</format>
<format id="7" name="p48n32">
<!-- position -->
<element type="int16" expr="32767.5*(pos.x-mesh_bvol_pos.x)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.y-mesh_bvol_pos.y)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.z-mesh_bvol_pos.z)/mesh_bvol_rad" />
<!-- normal -->
<element type="int8" expr="normal.x*127.5" />
<element type="int8" expr="normal.y*127.5" />
<element type="int8" expr="normal.z*127.5" />
<element type="int8" expr="0" />
</format>
<format id="8" name="p48tbn32">
<!-- position -->
<element type="int16" expr="32767.5*(pos.x-mesh_bvol_pos.x)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.y-mesh_bvol_pos.y)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.z-mesh_bvol_pos.z)/mesh_bvol_rad" />
<!-- quaternion tangent frame -->
<element type="uint32" expr="tbn32" />
</format>
<format id="9" name="p48n32uv32">
<!-- position -->
<element type="int16" expr="32767.5*(pos.x-mesh_bvol_pos.x)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.y-mesh_bvol_pos.y)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.z-mesh_bvol_pos.z)/mesh_bvol_rad" />
<!-- normal -->
<element type="int8" expr="normal.x*127.5" />
<element type="int8" expr="normal.y*127.5" />
<element type="int8" expr="normal.z*127.5" />
<element type="int8" expr="0" />
<!-- uv -->
<element type="int16" expr="2048*uv.x" />
<element type="int16" expr="2048*uv.y" />
</format>
<format id="10" name="p48tbn32uv32">
<!-- position -->
<element type="int16" expr="32767.5*(pos.x-mesh_bvol_pos.x)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.y-mesh_bvol_pos.y)/mesh_bvol_rad" />
<element type="int16" expr="32767.5*(pos.z-mesh_bvol_pos.z)/mesh_bvol_rad" />
<!-- quaternion tangent frame -->
<element type="uint32" expr="tbn32" />
<!-- uv -->
<element type="int16" expr="2048*uv.x" />
<element type="int16" expr="2048*uv.y" />
</format>
</vertex_formats>