0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

flutter でshaderを使う防備録01

Posted at

最近なんだか感傷的になって、繊細なんですよね。
つまりシェーダーで数式を扱うのがクソおもろいってことです(???)。

(ちなみに忘備録なんで自由に書きます。)
こんな記事読むよりこっちをおすすめする。
https://thebookofshaders.com/?lan=jp

Flutter ってなんぞや

Googleさんが開発した、マルチプラットフォーム対応のフレームワークです。
ここ半年ぐらい触ってみての感想は、日本語リファレンスが充実してなかったり、ライブラリの数がNextとかと比べると少ないので、ガッツリエンジニアパワーが求められるなあ、という具合です。

Shaderってなんぞや

基本ディスプレイだとかはGPUで処理されていますが、その処理の部分のことです。Flutterでは.frag形式しか対応はしていないですが、他にもあるようです(無知)。
.fragはGLSLという言語で書かれており、Cっぽいjavaっぽいdartっぽい感じです。

GLSLは何できるんや

普通にグラフィックが書けます。しかも数式で。
つまり、解像度の落ちないフォントのように、グラフィックが作れるということ。
あと普通の3Dモデルを扱うよりどちゃくそ軽い点が素晴らしい。旧スマホに優しいアプリを作ろうの会。
image.png

どうやって書くねん

flutter側はflutter_shadersを使うと実装しやすいよ。

GLSL側

// バージョンとか初期設定
#version 300 es
#include <flutter/runtime_effect.glsl>

// Flutterから変数を受け取る
uniform float u_time


// 型 変数名 = 型();
vec3 color = vec3(0.0,0.0,0.0);

// 関数
void main {
    // これがちで重要
    vec2 uv = (FlutterFragCoord().xy * 2.0 - u_resolution.xy) / u_resolution.y;

}
float sdShere() {
    return;
}

// あとは筋肉

コードよりノートとにらめっこ

普通に何作りたいのかと、完成形と数式が完成してないと実装は無理です。
初心者には感覚だけで動かすのは厳しすぎました。
あとは調べまくる書きまくるです。(こいつ3日目のくせに偉そうだな)

終わり

ちょっとずつ更新して完成形まで持っていくつもりなので、一旦メモ程度の記事です。
それではよいシェーダーライフを

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?