gezoomt Ich verwende cocos2d-js webgl Modus eine sehr einfache Shader-Effekt zu erzeugen:Fragment-Shader-Position ändert sich, wenn Browser
einen gefüllten Kreis mit einer Position geben Zentrum ziehen und einen Radius.
Die Fragment-Shader:
uniform vec2 position;
uniform vec3 lightColor;
uniform float lightSize;
void main()
{
float distance = distance(gl_FragCoord.xy, position);
if (distance <= lightSize) {
gl_FragColor = vec4(lightColor, 1.0);
}
else {
gl_FragColor = vec4(lightColor, 0.0);
}
}
Dieser Code funktioniert gut, wenn der Browser nicht (100%) skaliert wird.
Aber wenn ich versuche, den Browser auf 80% oder 120% zu zoomen, habe ich festgestellt, dass der Kreis mit einem Versatz von der eingestellten Mittelposition gezeichnet wurde.
Ich bin mir nicht sicher, wie Sie dieses Problem beheben können, um sicherzustellen, dass der Kreis immer auf der MITTLERE POSITION eingestellt ist, egal wie ich den Browser zoome.
Jede Beratung geschätzt wird, Dank :)
Welchen Wert setzen Sie für 'position'? Es ist eine Uniform und der gepostete Code zeigt nicht, auf welchen Wert Sie ihn setzen. –