15 enum class Shape { sphere, box, cylinder };
18 void setShape(
const std::string &
shape);
20 std::string getShapeName()
const;
26 void setSize(
float x,
float y,
float z);
27 const glm::vec3 &
getSize()
const {
return size_; }
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);
39 void setAnisotropy(
float anisotropy);
42 void setEdgeFalloff(
float falloff);
50 void setNoise(
float amount,
float scale,
int seed);
59 float sampleExtinction(
const glm::vec3 &worldPosition)
const;
62 Shape shape_ = Shape::box;
63 glm::vec3 position_{0.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;
#define EVENGINE_API_BACKENDS
std::array< float, 3 > scale
Analytic local participating-media volume injected into atmospheric fog.
const glm::vec3 & getAlbedo() const
void setExtinction(float extinction)
Signed extinction; negative values carve fog but total density is clamped.
float getNoiseScale() const
World-space density-noise frequency.
const glm::vec3 & getEmissive() const
float getExtinction() const
float getAnisotropy() const
const glm::vec3 & getPosition() const
float getEdgeFalloff() const
int getNoiseSeed() const
Stable density-noise seed.
float getNoiseAmount() const
Density-noise blend amount in [0,1].
void setPosition(float x, float y, float z)
Set world-space center.
const glm::vec3 & getSize() const
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...