0

画面にたくさんの円を描く必要があるアプリを作っているので、テクスチャを描くために使用している三角形のテクスチャを、円を描く関数に置き換えるというアイデアがありました。ただし、テスト後、テクスチャから値を選択するよりも遅いことが判明しました (ただし、品質ははるかに優れています)。円を生成する方法に問題がありますか、それともテクスチャからの読み取りは実際にははるかに高速ですか? (約2倍の速さ)

新しいコード:

precision mediump float; 
uniform sampler2D u_Texture;
varying vec4 vColor; 
varying vec2 vTexCoordinate;
void main() {
  gl_FragColor = vec4(0, 0, 0, 0);
  mediump float thing = vTexCoordinate.x * vTexCoordinate.x + vTexCoordinate.y * vTexCoordinate.y;
  if(thing < 1.0 && thing > 0.9){
     gl_FragColor = vec4(0, 0, 0, 1);
  }
  if(thing < 0.9){
     gl_FragColor = vec4(1, 1, 1, 1) * vColor;
  }
};

古いコード:

gl_FragColor = texture2D(u_Texture, vTexCoordinate) * vColor;

obs: vTexCoordinate の名前をわざわざ変更しなかったため、[0, 1] だった値が [-1, 1] になりました

4

1 に答える 1