モジュール
std::shaders
安定性: 暫定 —
stdのシェーダーライブラリです。色フィルター、ミックスモード、手続き的なマスク、テクスチャー、モーションを含みます。
std::screen::shader のすべてのロールについて、既製のシェーダーを効果値として提供します。ライブラリの各シェーダーは 3 つのアイテムからなります。
- 引数の
#[shader_arg]構造体(引数の型が()の場合はありません)。 - シェーダーアセットそのものである定数。たとえば
BLUR: ColorShader<Blur>です。 - 効果値を作る
const fn。たとえばblur(radius) -> Filterです。
普段は関数を使います。定数は、引数を自分で組み立てるコードのためにあります。たとえば filter(BLUR, Blur { radius: 4.0 }) は blur(4.0) と同じ値です。同じシェーダーの 2 つの値の間をトゥイーンすると引数が動く(シェーダー効果 を参照)ので、blur(0.0) から blur(6.0) へのトゥイーンは少しずつぼかしていきます。
WGSL ファイルは std に同梱されています。kagari build はゲームが使うものを std.kiarchive に詰めるので、ゲームがコピーする必要はありません。std::shaders のアイテムはプレリュードにありません。
| モジュール | ロール | 内容 |
|---|---|---|
std::shaders::color | 色(Filter) | CSS のフィルター関数、まとめたフィルター、ガウスぼかし |
std::shaders::mix | ミックス(Mix) | W3C のブレンドモード、加算合成、すりガラス |
std::shaders::mask | マスク(Mask) | 線形、放射、ひし形、時計、縞、市松、ノイズ、ガウス、角丸矩形のランプ |
std::shaders::texture | テクスチャー(Paint) | 単色、グラデーション、ガウスの光点、雨、雪 |
std::shaders::motion | ローカルモーションと遷移モーション | ループ(bob、sway、pulse、spin、orbit)、減衰する揺れ、ODE で動く移動、経路(arc、bounce、spiral) |
use std::screen::CENTER;use std::screen::anim::masked;use std::shaders::{color, mask, mix, motion};
const fn memory(mut screen: Screen) -> Screen { screen.filter().change(Some(color::sepia(0.8))).apply_animation(tween(ms(800))); screen.entity(LIGHT).mix().change(Some(mix::screen())).apply_animation(instant()); screen.entity(HANAKO).local_motion().change(Some(motion::bob(12.0, ms(2000)))).apply_animation(instant()); screen.background().change(BG::ROOF).apply_animation(masked(mask::radial(CENTER), ms(1000))); screen}最終更新日 2026年10月29日