v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
81
source/rendering/StarEnvironmentPainter.hpp
Normal file
81
source/rendering/StarEnvironmentPainter.hpp
Normal file
|
@ -0,0 +1,81 @@
|
|||
#ifndef STAR_ENVIRONMENT_PAINTER_HPP
|
||||
#define STAR_ENVIRONMENT_PAINTER_HPP
|
||||
|
||||
#include "StarParallax.hpp"
|
||||
#include "StarWorldRenderData.hpp"
|
||||
#include "StarAssetTextureGroup.hpp"
|
||||
#include "StarRenderer.hpp"
|
||||
#include "StarWorldCamera.hpp"
|
||||
#include "StarPerlin.hpp"
|
||||
#include "StarRandomPoint.hpp"
|
||||
|
||||
namespace Star {
|
||||
|
||||
STAR_CLASS(EnvironmentPainter);
|
||||
|
||||
class EnvironmentPainter {
|
||||
public:
|
||||
EnvironmentPainter(RendererPtr renderer);
|
||||
|
||||
void update();
|
||||
|
||||
void renderStars(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
void renderDebrisFields(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
void renderBackOrbiters(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
void renderPlanetHorizon(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
void renderFrontOrbiters(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
void renderSky(Vec2F const& screenSize, SkyRenderData const& sky);
|
||||
|
||||
void renderParallaxLayers(Vec2F parallaxWorldPosition, WorldCamera const& camera, ParallaxLayers const& layers, SkyRenderData const& sky);
|
||||
|
||||
void cleanup(int64_t textureTimeout);
|
||||
|
||||
private:
|
||||
static float const SunriseTime;
|
||||
static float const SunsetTime;
|
||||
static float const SunFadeRate;
|
||||
static float const MaxFade;
|
||||
static float const RayPerlinFrequency;
|
||||
static float const RayPerlinAmplitude;
|
||||
static int const RayCount;
|
||||
static float const RayMinWidth;
|
||||
static float const RayWidthVariance;
|
||||
static float const RayAngleVariance;
|
||||
static float const SunRadius;
|
||||
static float const RayColorDependenceLevel;
|
||||
static float const RayColorDependenceScale;
|
||||
static float const RayUnscaledAlphaVariance;
|
||||
static float const RayMinUnscaledAlpha;
|
||||
static Vec3B const RayColor;
|
||||
|
||||
void drawRays(float pixelRatio, SkyRenderData const& sky, Vec2F start, float length, double time, float alpha);
|
||||
void drawRay(float pixelRatio,
|
||||
SkyRenderData const& sky,
|
||||
Vec2F start,
|
||||
float width,
|
||||
float length,
|
||||
float angle,
|
||||
double time,
|
||||
Vec3B color,
|
||||
float alpha);
|
||||
void drawOrbiter(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky, SkyOrbiter const& orbiter);
|
||||
|
||||
uint64_t starsHash(SkyRenderData const& sky, Vec2F const& viewSize) const;
|
||||
void setupStars(SkyRenderData const& sky);
|
||||
|
||||
RendererPtr m_renderer;
|
||||
AssetTextureGroupPtr m_textureGroup;
|
||||
|
||||
double m_timer;
|
||||
int64_t m_lastTime;
|
||||
PerlinF m_rayPerlin;
|
||||
|
||||
uint64_t m_starsHash;
|
||||
List<TexturePtr> m_starTextures;
|
||||
shared_ptr<Random2dPointGenerator<pair<size_t, float>>> m_starGenerator;
|
||||
List<shared_ptr<Random2dPointGenerator<pair<String, float>>>> m_debrisGenerators;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue