Closed9
Compose Multiplatform で GLSL
GLSL とは
- GLSL は OpenGL のシェーディング言語
- 3D や 2D のグラフィックスを作ることができる
もちろん Jetpack Compose にも対応している。ShaderBrush と RuntimeShader を使用するのがポイント。
private const val COLOR_SHADER_SRC =
"""uniform float2 iResolution;
half4 main(float2 fragCoord) {
float2 scaled = fragCoord/iResolution.xy;
return half4(scaled, 0, 1);
}"""
// created as top level constants
val colorShader = RuntimeShader(COLOR_SHADER_SRC)
val shaderBrush = ShaderBrush(colorShader)
Canvas(
modifier = Modifier.fillMaxSize()
) {
colorShader.setFloatUniform("iResolution",
size.width, size.height)
drawCircle(brush = shaderBrush)
}
さらに Compose Multiplatform でも Skia の RuntimeEffect と RuntimeShaderBuilder を使ってシェーダーを組み込むことができる。
Tips 1
GLSL のコードは通常ただの文字列と認識されるが、IntelliJ の場合 @Language("GLSL")
と記述することで GLSL のコードとして認識されるようになる。
@Language("GLSL")
Tips 2
GLSL のプラグイン
Tips 3
GLSL のエディター。結果がリアルタイムで反映されるのが便利。
Tips 4
GLSL のリソース
このスクラップは2024/03/23にクローズされました