blob: ccc50b15a9a0cac6d3640d574da9666a1ca406b2 (
plain)
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
|
#pragma once
#include <LLBM/base.h>
class RenderWindow;
class VolumetricRenderConfig;
class Sampler {
protected:
const std::string _name;
DeviceTexture<float> _sample_buffer;
cudaTextureObject_t _sample_texture;
cudaSurfaceObject_t _sample_surface;
public:
Sampler(std::string name, descriptor::CuboidD<3> cuboid):
_name(name),
_sample_buffer(cuboid),
_sample_texture(_sample_buffer.getTexture()),
_sample_surface(_sample_buffer.getSurface())
{ }
const std::string& getName() const {
return _name;
}
virtual void sample() = 0;
virtual void render(VolumetricRenderConfig& config) = 0;
virtual void interact() = 0;
};
|