#define_import_path bevy_render::view struct ColorGrading { balance: mat3x3, saturation: vec3, contrast: vec3, gamma: vec3, gain: vec3, lift: vec3, midtone_range: vec2, exposure: f32, hue: f32, post_saturation: f32, } struct View { clip_from_world: mat4x4, unjittered_clip_from_world: mat4x4, world_from_clip: mat4x4, world_from_view: mat4x4, view_from_world: mat4x4, // Typically a right-handed projection matrix, one of either: // // Perspective (infinite reverse z) // ``` // f = 1 / tan(fov_y_radians / 2) // // ⎡ f / aspect 0 0 0 ⎤ // ⎢ 0 f 0 0 ⎥ // ⎢ 0 0 0 -1 ⎥ // ⎣ 0 0 near 0 ⎦ // ``` // // Orthographic // ``` // w = right - left // h = top - bottom // d = near - far // cw = -right - left // ch = -top - bottom // // ⎡ 2 / w 0 0 0 ⎤ // ⎢ 0 2 / h 0 0 ⎥ // ⎢ 0 0 1 / d 0 ⎥ // ⎣ cw / w ch / h near / d 1 ⎦ // ``` // // `clip_from_view[3][3] == 1.0` is the standard way to check if a projection is orthographic // // Custom projections are also possible however. clip_from_view: mat4x4, view_from_clip: mat4x4, world_position: vec3, exposure: f32, // viewport(x_origin, y_origin, width, height) viewport: vec4, // 6 world-space half spaces (normal: vec3, distance: f32) ordered left, right, top, bottom, near, far. // The normal vectors point towards the interior of the frustum. // A half space contains `p` if `normal.dot(p) + distance > 0.` frustum: array, 6>, color_grading: ColorGrading, mip_bias: f32, frame_count: u32, };