1

テクスチャリングは次のとおりです。

gl_FragColor=texture2D(my_main_texture, vUv);

gl_FragColor= mix(gl_FragColor,texture2D(texture[1], 32.0*vUv),texture2D(mask[0], vUv).r);
gl_FragColor= mix(gl_FragColor,texture2D(texture[2], 32.0*vUv),texture2D(mask[0], vUv).b);

たとえば、マスクを使用すると、次のようになります。

http://i.imgur.com/Y0p9ilH.png

しかし、青マスクと赤マスクの間の各ピクセルのチャネル数は 255 ですが、何らかの理由で赤マスクと青マスクの間の境界ではテクスチャ値が生成されません。

たとえば、次のコードは次のようになります。

gl_FragColor=vec4(0.0);

gl_FragColor= mix(gl_FragColor,vec4(1.0),texture2D(mask[0], vUv).r);
gl_FragColor= mix(gl_FragColor,vec4(1.0),texture2D(mask[0], vUv).b);

私は得る:

http://i.imgur.com/hCMqbAm.png

影付きの円 - これは赤と青のマスクの境界線です。

それを取り除く方法は?おそらく mix() を使用する理由であり、目的の結果を達成する他の方法はありますか?

4

1 に答える 1