61 std::string_view
type =
"combine";
91 static const std::vector<CameraComponent*>&
instances() {
return _instances; }
98 const std::vector<std::shared_ptr<RenderPass>>&
renderPasses()
const {
return _camera->renderPasses(); }
113 return (_dof.enabled || _taa.enabled || _ssao.enabled || _rendering.bloomIntensity > 0.0f || _rendering.vignetteEnabled)
117 const std::vector<int>&
layers()
const {
return _layers; }
138 _camera->setJitter(_taa.enabled ? std::max(_taa.jitter, 0.0f) : 0.0f);
141 std::shared_ptr<RenderPassTAA>
ensureTaaPass(
const std::shared_ptr<GraphicsDevice>& device,
Texture* sourceTexture);
157 std::shared_ptr<RenderPassCameraFrame>
cameraFrame()
const {
return _cameraFrame; }
158 void setCameraFrame(
const std::shared_ptr<RenderPassCameraFrame>& frame) { _cameraFrame = frame; }
162 if (_layers.empty()) {
165 return std::find(_layers.begin(), _layers.end(), layerId) != _layers.end();
169 static std::vector<CameraComponent*> _instances;
171 Camera* _camera =
nullptr;
174 int _renderSceneColorMap = 0;
177 int _renderSceneDepthMap = 0;
183 std::shared_ptr<Texture> _dofSceneColorTexture;
184 std::shared_ptr<RenderTarget> _dofSceneRenderTarget;
185 std::shared_ptr<RenderPassTAA> _taaPass;
186 std::shared_ptr<RenderPassCameraFrame> _cameraFrame;
187 void ensureDofRenderTarget();
188 bool requiresPostprocessRenderTarget()
const {
return _dof.
enabled || _taa.
enabled || _ssao.
enabled; }
189 void updatePostprocessRenderTargetBinding()
const;
bool renderSceneColorMap() const
static const std::vector< CameraComponent * > & instances()
void setDof(const DofSettings &value)
void requestSceneDepthMap(bool enabled)
void * onPostprocessing() const
void setRendering(const RenderingSettings &value)
RenderingSettings & rendering()
void setCameraFrame(const std::shared_ptr< RenderPassCameraFrame > &frame)
void setTaaEnabled(bool enabled)
const std::vector< int > & layers() const
CameraComponent(IComponentSystem *system, Entity *entity)
const Camera * camera() const
void setSsaoEnabled(bool enabled)
std::shared_ptr< RenderTarget > dofSceneRenderTarget() const
const DofSettings & dof() const
const Matrix4 & projectionMatrix() const
const TaaSettings & taa() const
const SsaoSettings & ssao() const
void setDofEnabled(bool enabled)
std::shared_ptr< RenderPassTAA > ensureTaaPass(const std::shared_ptr< GraphicsDevice > &device, Texture *sourceTexture)
const RenderingSettings & rendering() const
bool renderSceneDepthMap() const
const std::vector< std::shared_ptr< RenderPass > > & renderPasses() const
void requestSceneColorMap(bool enabled)
std::shared_ptr< RenderPassCameraFrame > cameraFrame() const
void initializeComponentData() override
bool rendersLayer(const int layerId) const
void setLayers(const std::vector< int > &layers)
void setTaa(const TaaSettings &value)
void setSsao(const SsaoSettings &value)
Perspective or orthographic camera with projection matrix, jitter (TAA), and render target binding.
virtual bool enabled() const
Component(IComponentSystem *system, Entity *entity)
IComponentSystem * system() const
ECS entity — a GraphNode that hosts components defining its behavior.
GPU texture resource supporting 2D, cubemap, volume, and array formats with mipmap management.
constexpr int LAYERID_DEPTH
constexpr int LAYERID_IMMEDIATE
constexpr int LAYERID_SKYBOX
constexpr int LAYERID_WORLD
4x4 column-major transformation matrix with SIMD acceleration.