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
104104
105105 // Lighting Buffer ready for tone mapping
106106 _jobs.push_back(Job(new ToneMappingDeferred::JobModel("ToneMapping")));
107+ _toneMappingJobIndex = _jobs.size() - 1;
107108
108109 // Debugging Deferred buffer job
109110 _jobs.push_back(Job(new DebugDeferredBuffer::JobModel("DebugDeferredBuffer")));
@@ -164,6 +165,8 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend · 54 unmodified lines
164165
165166 setAntialiasingStatus(renderContext->_fxaaStatus);
166167
168+ setToneMappingExposure(renderContext->_toneMappingExposure);
169+
167170 renderContext->args->_context->syncCache();
168171
169172 for (auto job : _jobs) {
@@ -390,3 +393,18 @@ void DrawBackgroundDeferred::run(const SceneContextPointer& sceneContext, const · 220 unmodified lines
390393 });
391394 args->_batch = nullptr;
392395 }
396+
397+
398+void RenderDeferredTask::setToneMappingExposure(float exposure) {
399+ if (_toneMappingJobIndex >= 0) {
400+ _jobs[_toneMappingJobIndex].edit<ToneMappingDeferred>()._toneMappingEffect.setExposure(exposure);
401+ }
402+}
403+
404+float RenderDeferredTask::getToneMappingExposure() const {
405+ if (_toneMappingJobIndex >= 0) {
406+ _jobs[_toneMappingJobIndex].get<ToneMappingDeferred>()._toneMappingEffect.getExposure();
407+ } else {
408+ return 0.0f;
409+ }
410+}