1 #ifndef INCLUDE_ONCE_9100E17F_B7DD_4CC0_8D2F_9DBB66C7D23D 2 #define INCLUDE_ONCE_9100E17F_B7DD_4CC0_8D2F_9DBB66C7D23D 9 #include "AtmosphereParameters.hpp" 13 QOpenGLFunctions_3_3_Core& gl;
15 const unsigned texSizeByViewAzimuth;
16 const unsigned texSizeByViewElevation;
17 const unsigned texSizeBySZA;
19 const double texW, texH;
20 std::vector<glm::vec4> texture_;
21 std::vector<std::complex<float>> fourierIntermediate;
22 std::vector<float> elevationsAboveHorizon, elevationsBelowHorizon;
24 static constexpr
unsigned VEC_ELEM_COUNT=4;
28 std::vector<glm::vec2> samplesAboveHorizon[VEC_ELEM_COUNT];
29 std::vector<glm::vec2> samplesBelowHorizon[VEC_ELEM_COUNT];
32 std::vector<float> radianceInterpolatedOverElevations[VEC_ELEM_COUNT];
34 GLint origViewportWidth, origViewportHeight;
36 float cosZenithAngleOfHorizon(
const float altitude)
const;
37 std::pair<float,bool> eclipseTexCoordsToTexVars_cosVZA_VRIG(
float vzaTexCoordInUnitRange,
float altitude)
const;
38 void generateElevationsForEclipsedDoubleScattering(
float cameraAltitude);
48 unsigned texSizeByViewAzimuth,
unsigned texSizeByViewElevation,
49 unsigned texSizeBySZA,
unsigned texSizeByAltitude);
52 void computeRadianceOnCoarseGrid(QOpenGLShaderProgram& program,
53 GLuint intermediateTextureName, GLuint intermediateTextureTexUnitNum,
54 double cameraAltitude,
double sunZenithAngle,
double moonZenithAngle,
55 double moonAzimuthRelativeToSun,
double earthMoonDistance);
56 void convertRadianceToLuminance(glm::mat4
const& radianceToLuminance);
58 void generateTextureFromCoarseGridData(
unsigned altIndex,
unsigned szaIndex,
double cameraAltitude);
60 size_t appendCoarseGridSamplesTo(std::vector<glm::vec4>& data)
const;
61 void loadCoarseGridSamples(
double cameraAltitude, glm::vec4
const* data,
size_t numElements);
63 std::vector<glm::vec4>
const& texture()
const {
return texture_; }
Definition: EclipsedDoubleScatteringPrecomputer.hpp:11
Definition: AtmosphereParameters.hpp:10