WebGLちょっと慣れてきたけどFirefoxとVivaldiとSafari for iOSで挙動が大きく違う。動くのもあるんだからぼくの書き方が悪いんだろうけど問題判別できる知識と経験はまだ全然ないなあ。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 10:37
とかやってる間に目が消耗した。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 10:38
テクスチャの読み込みをいい加減にやってるとか、環境依存の定数周りを多分大丈夫というレベルでやってるとか、そういう自覚はなくもない。時間かけて調べれば解決する話なのか。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 10:41
挙動の違い。「drawArrays時点でbufferにデータがない状態」で、
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 14:56
「有効なattributeがあればdefaultの0がセットされて正常動作」、
「attributeがコードに存在しないとdraw自体が実行されてない」という感じ?
どう動くのが正しいのか何を見ればというかどれくらい見ればわかるんだ。3年待てば問題なくなりそうではある。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 14:57
まだ気味の悪いとこはあるけど大体あっていそう。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 15:00
Vivaldiは「attributeを書いてない頂点シェーダを認めない」ということになるのか。早計か。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 15:05
仕様にしては「何も警告がない」とか、そのままかまわずテクスチャ使おうとすると「.Offscreen-For-WebGL」とかよくわかんないエラーを出してくるとか。ダミーのattributeを書くとテクスチャのエラーが消えるとか。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 15:12
「attribute float a; float d=a;」だとダメ。
— Kimiru-Hamiru (@KimiruHamiru) 2017年9月12日 - 15:19
「attribute float a; gl_PointSize=1+a;」とか無意味でもいいから「最適化されないレベルでattributeは書いとけ」というのが今の結論。