Fermat
src
eaw.h
1
/*
2
* Fermat
3
*
4
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
* * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* * Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* * Neither the name of the NVIDIA CORPORATION nor the
14
* names of its contributors may be used to endorse or promote products
15
* derived from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
* DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
21
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#pragma once
30
31
#include "framebuffer.h"
32
#include "filters.h"
33
36
41
44
struct
EAWParams
45
{
46
float
phi_normal;
47
float
phi_position;
// must take into account the scene size
48
float
phi_color;
// must take into account the maximum intensity
49
50
cugar::Vector3f
E;
51
cugar::Vector3f
U;
52
cugar::Vector3f
V;
53
cugar::Vector3f
W;
54
};
55
58
void
EAW
(
FBufferChannelView
dst,
const
FBufferChannelView
img,
const
GBufferView
gb,
const
float
* var,
const
EAWParams
params,
const
uint32 step_size);
59
64
void
EAW
(
FBufferChannelView
dst,
const
FilterOp op,
const
FBufferChannelView
w_img,
const
float
w_min,
const
FBufferChannelView
img,
const
GBufferView
gb,
const
float
* var,
const
EAWParams
params,
const
uint32 step_size);
65
68
void
EAW
(
const
uint32 n_iterations, uint32& in_buffer,
FBufferChannelView
pingpong[2],
const
GBufferView
gb,
const
float
* var,
const
EAWParams
params);
69
72
void
EAW
(
const
uint32 n_iterations,
FBufferChannelView
dst,
const
FBufferChannelView
img,
const
GBufferView
gb,
const
float
* var,
const
EAWParams
params,
FBufferChannelView
pingpong[2]);
73
76
void
EAW
(
const
uint32 n_iterations,
FBufferChannelView
dst,
const
FBufferChannelView
w_img,
const
FBufferChannelView
img,
const
GBufferView
gb,
const
float
* var,
const
EAWParams
params,
FBufferChannelView
pingpong[2]);
77
78
EAW
void EAW(FBufferChannelView dst, const FBufferChannelView img, const GBufferView gb, const float *var, const EAWParams params, const uint32 step_size)
cugar::Vector< float, 3 >
FBufferChannelView
Definition:
framebuffer.h:125
GBufferView
Definition:
framebuffer.h:49
EAWParams
Definition:
eaw.h:44
Generated by
1.8.13