载入中...
搜索中...
未找到
FogVolume.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include <string>
6
7#include <glm/vec3.hpp>
8
9namespace eve::graphics {
10
13public:
15 enum class Shape { sphere, box, cylinder };
16
18 void setShape(const std::string &shape);
19 Shape getShape() const { return shape_; }
20 std::string getShapeName() const;
21
23 void setPosition(float x, float y, float z) { position_ = {x, y, z}; }
24 const glm::vec3 &getPosition() const { return position_; }
26 void setSize(float x, float y, float z);
27 const glm::vec3 &getSize() const { return size_; }
28
30 void setExtinction(float extinction) { extinction_ = extinction; }
31 float getExtinction() const { return extinction_; }
33 void setAlbedo(float r, float g, float b);
34 const glm::vec3 &getAlbedo() const { return albedo_; }
36 void setEmissive(float r, float g, float b);
37 const glm::vec3 &getEmissive() const { return emissive_; }
39 void setAnisotropy(float anisotropy);
40 float getAnisotropy() const { return anisotropy_; }
42 void setEdgeFalloff(float falloff);
43 float getEdgeFalloff() const { return edgeFalloff_; }
50 void setNoise(float amount, float scale, int seed);
52 float getNoiseAmount() const { return noiseAmount_; }
54 float getNoiseScale() const { return noiseScale_; }
56 int getNoiseSeed() const { return noiseSeed_; }
57
59 float sampleExtinction(const glm::vec3 &worldPosition) const;
60
61private:
62 Shape shape_ = Shape::box;
63 glm::vec3 position_{0.f};
64 glm::vec3 size_{1.f};
65 float extinction_ = 0.05f;
66 glm::vec3 albedo_{1.f};
67 glm::vec3 emissive_{0.f};
68 float anisotropy_ = 0.f;
69 float edgeFalloff_ = 0.2f;
70 float noiseAmount_ = 0.f;
71 float noiseScale_ = 1.f;
72 int noiseSeed_ = 0;
73};
74
75} // namespace eve::graphics
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
float z
Definition AnimClip.cpp:738
#define EVENGINE_API_BACKENDS
Definition Export.h:108
tensor::Graph g
Definition GpuGraph.cpp:7
ShaderImageInput shape
double r
std::array< float, 3 > scale
MeleePoint3 b
Definition MeleeHit.cpp:41
std::uint32_t seed
Definition PointSet.cpp:807
Vec extinction
Analytic local participating-media volume injected into atmospheric fog.
Definition FogVolume.h:12
const glm::vec3 & getAlbedo() const
Definition FogVolume.h:34
void setExtinction(float extinction)
Signed extinction; negative values carve fog but total density is clamped.
Definition FogVolume.h:30
float getNoiseScale() const
World-space density-noise frequency.
Definition FogVolume.h:54
const glm::vec3 & getEmissive() const
Definition FogVolume.h:37
float getExtinction() const
Definition FogVolume.h:31
float getAnisotropy() const
Definition FogVolume.h:40
const glm::vec3 & getPosition() const
Definition FogVolume.h:24
Shape getShape() const
Definition FogVolume.h:19
float getEdgeFalloff() const
Definition FogVolume.h:43
int getNoiseSeed() const
Stable density-noise seed.
Definition FogVolume.h:56
Shape
Shape public API.
Definition FogVolume.h:15
float getNoiseAmount() const
Density-noise blend amount in [0,1].
Definition FogVolume.h:52
void setPosition(float x, float y, float z)
Set world-space center.
Definition FogVolume.h:23
const glm::vec3 & getSize() const
Definition FogVolume.h:27
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25