1    type CameraUbo = struct
2        projection : Matrix4
3        projection_inverse : Matrix4
4        view : Matrix4
5        view_inverse : Matrix4
6    
7    type ObjectUbo = struct
8        world : Matrix4
9        color : Vector4
10       emission : f32
11       camera_index : u32
12       skin_offset : u32
13       pad1 : u32 = 0
14       aabb : Aabb
15       pad2 : [u32; 2] = memory@zero
16   
17   type SceneUbo = struct
18       cameras : [CameraUbo; 2]
19       time : f32
20   
21   object CameraUbo =
22       val default = CameraUbo
23           projection = Matrix4.identity
24           projection_inverse = Matrix4.identity
25           view = Matrix4.identity
26           view_inverse = Matrix4.identity
27   
28   object SceneUbo =
29       val default = SceneUbo
30           cameras = [CameraUbo.default, CameraUbo.default]
31           time = 0
32   
33   object ObjectUbo =
34       val default = ObjectUbo
35           world = Matrix4.identity
36           color = Vector4.new
37           emission = 0
38           camera_index = 0
39           aabb = Aabb.default
40           skin_offset = 0
41