History

Adding a simple manual exposure control to configure the tonemapping and expose it to js. Add a convenient way to access the Job._concept._data with template

samcake committed 10 years ago

Commit d2ebaef1 parent 2bbd5d818 files · +165 −12Browse files

Showing the changes to libraries/render-utils/src/RenderDeferredTask.cpp (1 of 18 files). Show all

Unified · Split

libraries/render-utils/src/RenderDeferredTask.cpp+18−0
@@ -104,6 +104,7 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 103 unmodified lines
104 104
105 // Lighting Buffer ready for tone mapping105 // Lighting Buffer ready for tone mapping
106 _jobs.push_back(Job(new ToneMappingDeferred::JobModel("ToneMapping")));106 _jobs.push_back(Job(new ToneMappingDeferred::JobModel("ToneMapping")));
107 _toneMappingJobIndex = _jobs.size() - 1;
107 108
108 // Debugging Deferred buffer job109 // Debugging Deferred buffer job
109 _jobs.push_back(Job(new DebugDeferredBuffer::JobModel("DebugDeferredBuffer")));110 _jobs.push_back(Job(new DebugDeferredBuffer::JobModel("DebugDeferredBuffer")));
@@ -164,6 +165,8 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend · 54 unmodified lines
164 165
165 setAntialiasingStatus(renderContext->_fxaaStatus);166 setAntialiasingStatus(renderContext->_fxaaStatus);
166 167
168 setToneMappingExposure(renderContext->_toneMappingExposure);
169
167 renderContext->args->_context->syncCache();170 renderContext->args->_context->syncCache();
168 171
169 for (auto job : _jobs) {172 for (auto job : _jobs) {
@@ -390,3 +393,18 @@ void DrawBackgroundDeferred::run(const SceneContextPointer& sceneContext, const · 220 unmodified lines
390 });393 });
391 args->_batch = nullptr;394 args->_batch = nullptr;
392}395}
396
397
398void RenderDeferredTask::setToneMappingExposure(float exposure) {
399 if (_toneMappingJobIndex >= 0) {
400 _jobs[_toneMappingJobIndex].edit<ToneMappingDeferred>()._toneMappingEffect.setExposure(exposure);
401 }
402}
403
404float RenderDeferredTask::getToneMappingExposure() const {
405 if (_toneMappingJobIndex >= 0) {
406 _jobs[_toneMappingJobIndex].get<ToneMappingDeferred>()._toneMappingEffect.getExposure();
407 } else {
408 return 0.0f;
409 }
410}