summaryrefslogtreecommitdiff
path: root/serve
diff options
context:
space:
mode:
Diffstat (limited to 'serve')
-rw-r--r--serve/index.html6
1 files changed, 3 insertions, 3 deletions
diff --git a/serve/index.html b/serve/index.html
index 46b6c60..5314a89 100644
--- a/serve/index.html
+++ b/serve/index.html
@@ -1692,7 +1692,7 @@ bigPlanet(28, 0x98a0ba, -0.7, 0.42, -0.7, 1000, 0.25); // Полужопие
const _sunWorld = new THREE.Vector3();
// ---------- god rays (радиальный пост-эффект от солнца) ----------
-let rtScene = new THREE.WebGLRenderTarget(innerWidth, innerHeight);
+let rtScene = new THREE.WebGLRenderTarget(Math.floor(innerWidth * renderer.getPixelRatio()), Math.floor(innerHeight * renderer.getPixelRatio())); // device-разрешение, иначе мыло на hi-DPI
const grScene = new THREE.Scene(), grCam = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
const grMat = new THREE.ShaderMaterial({
uniforms: { tScene: { value: null }, sunPos: { value: new THREE.Vector2(0.5, 0.8) }, intensity: { value: 0.0 }, res: { value: new THREE.Vector2(innerWidth, innerHeight) } },
@@ -2113,7 +2113,7 @@ function tick(now) {
_sunWorld.copy(sunDir).multiplyScalar(1150).add(camera.position); // sun world pos -> screen for god rays
_sunProj.copy(_sunWorld).project(camera);
grMat.uniforms.sunPos.value.set(_sunProj.x * 0.5 + 0.5, _sunProj.y * 0.5 + 0.5);
- grMat.uniforms.res.value.set(innerWidth, innerHeight);
+ grMat.uniforms.res.value.set(innerWidth * renderer.getPixelRatio(), innerHeight * renderer.getPixelRatio());
grMat.uniforms.intensity.value = (_sunProj.z < 1) ? 0.55 : 0.0;
renderer.setRenderTarget(rtScene); renderer.render(scene, camera); renderer.setRenderTarget(null);
grMat.uniforms.tScene.value = rtScene.texture;
@@ -2223,7 +2223,7 @@ if (('ontouchstart' in window) || navigator.maxTouchPoints > 0) {
dp.style.right = '8px';
dp.style.padding = '5px 8px';
}
-addEventListener('resize', () => { camera.aspect = innerWidth / innerHeight; camera.updateProjectionMatrix(); renderer.setSize(innerWidth, innerHeight); rtScene.setSize(innerWidth, innerHeight); });
+addEventListener('resize', () => { camera.aspect = innerWidth / innerHeight; camera.updateProjectionMatrix(); renderer.setSize(innerWidth, innerHeight); rtScene.setSize(Math.floor(innerWidth * renderer.getPixelRatio()), Math.floor(innerHeight * renderer.getPixelRatio())); });
try { window.PZ = { THREE, scene, camera, S, groundH, WATER_Y, herd, herdMeshes, MAP, MAPS: PZ_MAPS }; } catch(e) {}
requestAnimationFrame(tick);
})();