今回は、GLSLでのfloat型の精度向上策を考案していました。
最初はGLSLで独自の高精度浮動小数型を自作しようとしたのですが、小数による演算はとても複雑で、小数点の位置を合わせたりオーバーフローチェックが大変だったり一筋縄ではいきそうにないことが分かりました。つまり
無理そうなことが判明
/(^o^)\オワタ
そこで無い頭を捻って、整数で扱えるような座標系に一旦変換することを考えました。
マンデルブロ集合はおおよそ実軸と虚軸が共に-2.0~2.0位の実数の範囲に収まります。
これを、(4バイト整数なら) -2.0相当を整数値-2147483648に、2.0相当を2147483647に一旦変換して、その系でマンデルブロ集合の計算をして、元の座標系に戻す等をします。
このようにすれば計算を整数として扱え、WebGL2.0で導入されたビット演算子も手伝って、巨大な数を扱える整数型を自作出来る気がします。