My Project
light_scattering_data.h
1 #pragma once
2 
3 namespace ParaEngine
4 {
5 #ifdef USE_DIRECTX_RENDERER
6  #include "shaders/light_scattering_constants.h"
7 #else
8  //
9  // Define a structure used by both C++ and HLSL
10  //
12  {
13  Vector4 vBeta1;
14  Vector4 vBeta2;
15  Vector4 vBetaD1;
16  Vector4 vBetaD2;
17  Vector4 vSumBeta1Beta2;
18  Vector4 vLog2eBetaSum;
19  Vector4 vRcpSumBeta1Beta2;
20  Vector4 vHG;
21  Vector4 vConstants;
22  Vector4 vTermMultipliers;
23  Vector4 vSoilReflectivity;
24  };
25 #endif
27  {
28  public:
31 
32  private:
33  float m_henyeyG;
34  float m_rayleighBetaMultiplier;
35  float m_mieBetaMultiplier;
36  float m_inscatteringMultiplier;
37  float m_extinctionMultiplier;
38  float m_reflectivePower;
39  sLightScatteringShaderParams m_shaderParams;
40  public:
41  void recalculateShaderData();
42 
43  void setHenyeyG(float g);
44  void setRayleighScale(float s);
45  void setMieScale(float s);
46  void setInscatteringScale(float s);
47  void setExtinctionScale(float s);
48  void setTerrainReflectionScale(float s);
49  sLightScatteringShaderParams* getShaderData(){return &m_shaderParams;};
50  protected:
51 
52  };
53 }
4-dimensional homogeneous vector.
Definition: ParaVector4.h:10
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: light_scattering_data.h:26
Definition: light_scattering_data.h:11