File: ToneMapper.h

package info (click to toggle)
ospray 3.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,048 kB
  • sloc: cpp: 80,569; ansic: 951; sh: 805; makefile: 170; python: 69
file content (45 lines) | stat: -rw-r--r-- 1,072 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright 2009 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#include "fb/FrameOp.h"
// ispc shared
#include "ToneMapperShared.h"

namespace ospray {

/*! \brief Generic tone mapping operator approximating ACES by default. */
struct OSPRAY_SDK_INTERFACE ToneMapperFrameOp : public FrameOp
{
  ToneMapperFrameOp(devicert::Device &device);

  void commit() override;

  std::unique_ptr<LiveFrameOpInterface> attach(
      FrameBufferView &fbView) override;

  std::string toString() const override;

 private:
  // Params for the tone mapping curve
  float a{1.6773f}, b{1.11743f}, c{0.244676f}, d{0.9714f};
  bool acesColor{true};
  float exposure{1.f};
};

struct OSPRAY_SDK_INTERFACE LiveToneMapperFrameOp
    : public AddStructShared<LiveFrameOp, ispc::LiveToneMapper>
{
  LiveToneMapperFrameOp(devicert::Device &device,
      FrameBufferView &fbView,
      float exposure,
      float a,
      float b,
      float c,
      float d,
      bool acesColor);

  // Execute FrameOp kernel
  devicert::AsyncEvent process() override;
};

} // namespace ospray