45 lines
907 B
C++
45 lines
907 B
C++
|
#pragma once
|
||
|
#ifndef REAL_BUILD
|
||
|
# define REAL_BUILD
|
||
|
# include "externals.hh"
|
||
|
# include "texture.hh"
|
||
|
# include "rendertarget.hh"
|
||
|
# include "utilities.hh"
|
||
|
# undef REAL_BUILD
|
||
|
#endif
|
||
|
|
||
|
|
||
|
struct T_Raymarcher
|
||
|
{
|
||
|
public:
|
||
|
T_Raymarcher( ) = delete;
|
||
|
T_Raymarcher( T_Raymarcher const& ) = delete;
|
||
|
T_Raymarcher( T_Raymarcher&& ) = delete;
|
||
|
|
||
|
T_Raymarcher( __rw__ T_FilesWatcher& watcher ,
|
||
|
__rd__ const uint32_t width ,
|
||
|
__rd__ const uint32_t height );
|
||
|
|
||
|
void render( );
|
||
|
void makeUI( );
|
||
|
|
||
|
T_Camera const& camera( ) const noexcept { return camera_; }
|
||
|
T_Camera& camera( ) noexcept { return camera_; }
|
||
|
|
||
|
T_Texture& output( ) noexcept { return txOutput_; }
|
||
|
|
||
|
private:
|
||
|
T_Camera camera_;
|
||
|
|
||
|
T_ShaderProgram program_;
|
||
|
|
||
|
T_Texture txOutput_;
|
||
|
T_Rendertarget rtOutput_;
|
||
|
|
||
|
int rmIterations = 128;
|
||
|
float rmStep = .9;
|
||
|
float rmEpsilon = .000001;
|
||
|
float rmMaxDist = 50;
|
||
|
float epsLog = log( rmEpsilon ) / log( 10 );
|
||
|
};
|