Nebula
Loading...
Searching...
No Matches
visibility.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10
11namespace Visibility
12{
13
14enum ObserverMask : uint8_t
15{
16 Graphics = (1 << 0), // observer sees graphics entities (models, lights, characters, etc)
17 Observers = (1 << 1), // observer can see other observers (shadow casting lights, for example)
18
19 All = (1 << 2),
21};
23
24enum ObserverType : uint8_t
25{
26 Perspective = 0, // observer uses a 4x4 projection and view matrix to resolve visibility
27 Orthographic = 1, // observer uses a 4x4 orthogonal and view matrix to resolve visibility
28 BoundingBox = 2, // observer uses a non-projective bounding box
29 Omnipercipient = 3, // observer sees everything, without having to do any resolving
30
32};
34
36{
37 Model, // entity is a model
38 Particle, // entity is a particle
39 Camera, // ordinary camera
40 Light, // entity is a light source
41 LightProbe // entity is a light probe
42
43};
44
45} // namespace Visibility
Implements the shader server used by Vulkan.
Definition cameramanager.h:21
Implements a resource loader for models.
Definition modelcontext.h:35
ObserverType
Definition visibility.h:25
@ Orthographic
Definition visibility.h:27
@ BoundingBox
Definition visibility.h:28
@ Omnipercipient
Definition visibility.h:29
@ Perspective
Definition visibility.h:26
@ NumObserverTypes
Definition visibility.h:31
VisibilityEntityType
Definition visibility.h:36
@ LightProbe
Definition visibility.h:41
@ Light
Definition visibility.h:40
@ Particle
Definition visibility.h:38
@ Model
Definition visibility.h:37
@ Camera
Definition visibility.h:39
ObserverMask
Definition visibility.h:15
@ All
Definition visibility.h:19
@ Observers
Definition visibility.h:17
@ NumObserverMasks
Definition visibility.h:20
#define __ImplementEnumBitOperators(type)