xxxxxxxxxx
precision highp float;
uniform vec2 resolution;
uniform float time;
uniform vec2 mouse;
uniform sampler2D backbuffer;
uniform sampler2D channel0;
// 使い方
// 1. 好きな画像をResourcesから選択
// 2. パラメータを調整
// 3. 完成!
// パラメータ
//--------------------------------------------------------------------------------------------------------------------------------
const float size = 1.5; // 描画する範囲。大きいほど広い範囲を描画する
const float speed = 1.5; // 回転のスピード。大きいほど速く回転する
const float n1 = 8.0; // ポアンカレの円板のパターンを決める整数n1
const float n2 = 3.0; // ポアンカレの円板のパターンを決める整数n2
// (n1 - 2)*(n2 - 2) > 4 を満たすようにn1, n2を設定する
const float textureScale = 0.25; // 画像の拡大率
const vec2 texturePosition = vec2(0.9, 0.2); // 画像の位置
//--------------------------------------------------------------------------------------------------------------------------------
// 数学的な説明
//--------------------------------------------------------------------------------------------------------------------------------
// このコードはシュレーフリ記号{n1, n2}で表されるポアンカレの円板(hyperbolic tessellation)を描画するものです。
// xy平面を考えます。
// x軸を直線L1とします。
// また、原点を通り、x軸の正方向とのなす角がangle1の直線をL2とします。
// そして、x軸上のx>0の範囲に中心をもち、直線L2と角度angle2で交わる円をCとします。
// ただし、円Cは原点を中心とする単位円に直交するものとします。
// また、angle1、angle2は以下を満たすものとします。
// angle1 = 180° / n1
// angle2 = 180° / n2