単純なmix()を追加すると、フレームレートが破壊されます
私は非常にシンプルなシェーダーを使用しており、次のようなミックスを介して線形フォグを追加しました。 finalColor = mix(finalColor, vec3(0.5, 0.8, 0.95), vUVoutAndViewZ.z); ビューのZ距離は、UV座標も含む変数内にあるため、フォグは新しい補間を追加していません。 それでも、この1本の無害なラインは、33 Spsから22 FpsのPower SGXチップセットを搭載したOG Droidのフレームレートをもたらしました。Adreno 200 GPUを備えたHTC Evoでも30fps未満にとどまります。(Adreno 205は一定の60fpsですが、それは獣です)。 フラグメントシェーダー自体はプリミティブです(テストシェーダーであるため、すべての値はハードコードされています)。 precision mediump float; varying mediump vec3 vUVoutAndViewZ; varying lowp vec3 vNormalOut; uniform lowp sampler2D diffuse; void main() { lowp vec3 normal = vNormalOut; // Lighting lowp vec3 lightDir = vec3(0.5, 0.3, …