๋ ํฐ๋ ๋์คํ๋ ์ด์์ PIXI๋ก ๊ทธ๋ฆฐ ๋ํ์ ํ๋ฆฟํ๊ฒ ๋ณด์ ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ํ ํฌ๋ผ ๊ฒ์๋ฌผ์ ๋ง๋ค๋ ค๊ณ ํ์ง๋ง ์ ๋ง ์๋ฌด๋ฐ๋ ๊ฐ์ง ์์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๋ ์์ธํ ์กฐ์ฌํ๊ณ ๋ฌธ์ ๋ฅผ ๋ ์ ์ค๋ช ํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ผ๋ฐ ์บ๋ฒ์ค์ PIXI์ ๋ช ๊ฐ์ง ์๋ฅผ ๋๋ํ ์ค์ ํ์ต๋๋ค. ์ฌ๊ธฐ ๋ฐ์ด์ฌ๋ฆฐ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํฌ๋ฆฐ์ท
PIXI ์บ๋ฒ์ค ์ปจํ ์คํธ๋ฅผ ํ์ฅํ๋ ค๋ ์๋์์ ์ด์ํ ๊ฒ์ ์ ๋ฐฐ๊ฒฝ์ด ์๋ ๊ฑฐ๋๊ฐ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค... ์๋ชป ์ํํ๊ฑฐ๋ ํ๋ ์์ํฌ์ ๋ค๋ฅธ ๊ฒ์ด ๋ฐฉํด๊ฐ ๋๊ฑฐ๋ ์ปจํ ์คํธ ์์ .
PIXI๊ฐ devicePixelRatio
๋ฅผ ํ์ธํ ๋ค์ ๊ทธ์ ๋ฐ๋ผ ์บ๋ฒ์ค + ์ปจํ
์คํธ ์์ฑ์ ์กฐ์ ํ์ฌ ๋ด์ฅ๋ ๋ง๋ง ์ง์์ ์ถ๊ฐํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ๋ค๋ฅธ ์๋ฏธ๊ฐ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด ๋ฒ๊ทธ์ ๋์ํฉ๋๋ค. ์ฐธ๊ณ ๋ก ์ด๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. http://www.html5rocks.com/en/tutorials/canvas/hidpi/
์ด๊ฒ์ ๋ํ ํ ์คํธ์ ๋ฌธ์ ์ ๋๋ค.
devicePixelRatio๊ฐ 2์ธ ๋ง๋ง ํ๋ฉด์ด ์๊ณ ์ ๋ช ํ 400x300 ์บ๋ฒ์ค๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ์ป์ผ๋ ค๋ฉด ์ํ๋ ์บ๋ฒ์ค ํฌ๊ธฐ์ devicePixelRatio(800x600)๋ฅผ ๊ณฑํ PIXI ๋ ๋๋ฌ๋ฅผ ์ด๊ธฐํํ ๋ค์ CSS๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์บ๋ฒ์ค๋ฅผ 400x300์ผ๋ก ์ถ์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ์์น, ๊ธ๊ผด ํฌ๊ธฐ, ์ ๋๋น, ๋ก๋๋ ์์ฐ ๋ฑ ๋ชจ๋ ๊ณ์ฐ์ ์ด ํฌ๊ธฐ ์กฐ์ ์ ํตํฉํด์ผ ํฉ๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
var canvas = document.getElementById('game'),
scale = window.devicePixelRatio,
width = 400,
height = 300,
renderer = PIXI.autoDetectRenderer(width * scale, height * scale, canvas);
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
+1
์ด ๋ฌธ์ ๋ฅผ ๊ณง ํด๊ฒฐํ ๊ณํ์ด ์์ต๋๊น? ๋ชจ๋ ํฌ๊ธฐ, ์์น, ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผ ํ๋ ๊ฒ์ ์ ๋ง ๊ณ ํต์ค๋ฝ์ต๋๋ค. ํนํ ํ์ค ์บ๋ฒ์ค๋ก ์ด ์์ ์ ์ํํ๋ ๋งค์ฐ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒฝ์ฐ.
์คํ๋ผ์ดํธ๊ฐ hidpi์ธ์ง ์๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ํํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๋น์ ์ ์คํ๋ผ์ดํธ๊ฐ hidpi๋ฅผ ์ํด ํ์ฅ๋์ด์ผ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ธ์ ํ์ฅ๋ ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ userland์ ๋ณด๊ดํ์ต๋๋ค. ํ์ง๋ง ๋น์ ์ ํ .
์๋ ํ์ธ์ @englercj ์ ๋๋ค. ์คํ๋ผ์ดํธ๋ ์ฌ์ฉ์๊ฐ ๋ก๋ํ ์์ฐ์ ์๋ฏธํฉ๋๊น?
@dcascais ๋ค
@englercj ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.
ํ์ฌ ๋ ๋๋ฌ ๋ณด๊ธฐ๊ฐ ์ ์ ํ ๋์คํ๋ ์ด ํด์๋๋ฅผ ์ป๊ธฐ ์ํด CSS ํธ๋ฆญ(์ด์ ๋งํฌ์์ ์ค๋ช )์ผ๋ก ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ๊ฒฝ์ฐ ์คํ ์ด์ง์ ์ถ๊ฐ๋ ๋ค์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ๋ ๋๋ฌ ๋ณด๊ธฐ๋ก ๋ ๋๋ง๋๋ ๋ชจ๋ ํญ๋ชฉ์ ๊ทธ์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋์ง ์๊ณ ํฝ์ ์ ์ ์งํฉ๋๋ค. ๊ฐ์ด๋ฏ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฐ ํฌ๊ธฐ์ ๋๋ค.
์ฌ๊ธฐ์๋ ๊ทธ๋ํฝ ์ปจํ ์คํธ, ํ ์คํธ ๋ฐ ๋ก๋๋ ์์ฐ์์ ๋์ ์ผ๋ก ๋ ๋๋ง๋๋ ์ฝํ ์ธ ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ค๋ฅธ ํ๋ซํผ์์๋ ๋ค์ํ ํ๋ฉด ๋ฐ๋์ ๋ํด ์ ์ ํ ์์ฐ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ฌ์ฉ์์ ์ฑ ์์ด๋ผ๊ณ ๊ฐ์ ํ์ง๋ง ๋ด๋ถ๋ ๋์์ผ๋ก ์ผ๊ณ ์ถ์ ๋์คํ๋ ์ด ๋ฐ๋๋ฅผ ์ฝ๊ฒ ๊ฒฐ์ ํ ์ ์๋ ์ถ์ฒ ๊ณ์ ์์ฑ์ด ์์ด ์ํํ๊ฒ ์๋ํฉ๋๋ค. ์ด๊ฒ์ด Pixi ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๋จํ ์ ๊ทผ ๋ฐฉ์์ธ์ง ๊ถ๊ธํฉ๋๋ค. ์ ์ ํ ์์ฐ์ ๋ํด์๋ง ๊ฑฑ์ ํ๊ฒ ํ๊ณ ์ถ์ฒ ๋น์จ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
์คํ ์ด์ง์ ์ถ๊ฐ๋ ์ฝํ ์ธ ์ ์์ ํฌ๊ธฐ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์์ด ์์ต๋๊น?
ํ์ ๋ชฉ๋ก์ ์๋ ๋ชจ๋ ํญ๋ชฉ์ x, y, ๋๋น ๋ฐ ๋์ด ๊ฐ์ ์๋์ผ๋ก ์กฐ์ ํ๊ณ ํ ์คํธ์ ๊ฒฝ์ฐ ์ ์ ํ ํฌ๊ธฐ์ ๊ธ๊ผด ์ด๋ฆ์ ๊ฐ์ง ๋ค๋ฅธ ๋ฌธ์์ด์ ์ ์ํ๋ฉด ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๊ณ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. ํ๋ก์ ํธ.
๊ฐ์ฌ ํด์.
ํฅ๋ฏธ๋กญ๊ฒ๋ ์ด๋ฌํ ์์คํ ์ค ์ผ๋ถ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด๊ณ ์ถ์ต๋๋ค. ๊ฐ ํญ๋ชฉ์ ๊ฐ๋ณ์ ์ผ๋ก ํ์ฅํ๋ ํ, ๊ทธ๊ฒ์ ๊ฐ ๊ธธ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ์ฅ๋ฉด ๊ทธ๋ํ์ด๋ฏ๋ก ๋ฃจํธ DOC๋ฅผ ์ ์ ํ๊ฒ ํ์ฅํ ์ ์์ต๋๊น?
@englercj , ๋๋ ์ด๊ฒ์ ์๋๋ฐ์ค์์ ์๋ํ๊ณ ์ ์ ํ ํฌ๊ธฐ๋ก ๋ค์ ๋ถ์ด๋๋ ๋์ ํฝ์ ํ๋์์ต๋๋ค. ๋ค๋ฅธ ํ๋์ ๊ธฐ๋ํ์๊ฒ ์ต๋๊น?
@bmantuano ์ ํํ ์๊ณ ๋ฆฌ์ฆ(๊ฐ์ฅ ๊ฐ๊น์ด, ์ ํ, ์์ผ์ฐจ ๋ฑ)์ผ๋ก ํ์ฅ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
Chad, ์ฌ๊ธฐ์ ์๋ตํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค์ผ์ผ๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ดํด์๋ PIXI.scaleModes๋ฅผ ์ฐธ์กฐํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์์ ๋ฐฉ ์ต์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@englercj ๋ค์์ ๊ณ ํด์๋ ๋์คํ๋ ์ด์์ ์ ๋ช ํ ํ ์คํธ์ ๊ทธ๋ํฝ(์์ฐ์ด ์๋ ๋์ ์ผ๋ก ๊ทธ๋ ค์ง)์ ์ป๊ธฐ ์ํด ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ํ๋ ค๊ณ ํ๋์ง ๋ณด์ฌ์ฃผ๋ ๋ช ๊ฐ์ง JSFiddle์ ๋๋ค.
์บ๋ฒ์ค ํฌ๊ธฐ ์กฐ์ ๋ฐ ํฌ๊ธฐ ์กฐ์ ๋ ๊ธฐ๋ณธ ํ์ ๊ฐ์ฒด ์ปจํ
์ด๋(ํฌ๊ธฐ๋ ์ ํํ์ง๋ง ํ๋ฆฟํ๊ณ ์ผ๋ถ ๋ฌธ์ ์์)
http://jsfiddle.net/hsv8Q
์บ๋ฒ์ค ํฌ๊ธฐ ์กฐ์ (์ ๋ช
ํ์ง๋ง ์๋ชป๋ ํฌ๊ธฐ์ ์ผ๋ถ ๋ฌธ์ ๊ฐ ์์)
http://jsfiddle.net/hsv8Q/1
์ค์ผ์ผ๋ง ์์(ํฌ๊ธฐ๋ ์ ํํ์ง๋ง ํ๋ฆฟํจ)
http://jsfiddle.net/hsv8Q/2
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๋ํด์ผ ํ ๋ค๋ฅธ ๊ฒ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
๋ฐ์ด์ฌ๋ฆฐ์ ์ถ๊ฐํด ์ฃผ์ @dcascais ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. @englercj , ์ฒซ ๋ฒ์งธ ๊ฒ์ ๋น์ ์ด ์ ์ํ ๊ฒ์ ๋๋ค. ๋ง์ต๋๊น? ๊ฑฐ๊ธฐ์ ๋์ DPI ์ฅ์น์์ ํฝ์ ํ๋ฅผ ๋ณผ ์ ์์ต๋๊น?
@bmantuano ๋ถํํ๋ ํ ์คํธํ HDPI ์ฅ์น๊ฐ ์์ต๋๋ค :( @GoodBoyDigital ๋๋ @photonstorm ์ด ๋ณผ ์ ์๋๋ก ์ด ์ฅ์น๋ฅผ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค.
@englercj , ์ง๊ธ๊น์ง @arahlf ๋ฐ @n1313 , ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๊น?
์๋, ์์ง :(
@bmantuano , ๋๋ ์ฌ์ ํ ์ด์ ์๊ฒฌ์ ์ค๋ช ๋ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ด์ ๋ํ ์์ง์์ด ์์์ต๋๊น? ์ธ๊ธํ @n1313 ํฌ๊ธฐ ์กฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง๋ง ๋ ํฐ๋ ์ฅ์น์์ FPS๋ฅผ ํ๊ดดํ๊ณ ์์ต๋๋ค.
์ด๋ค ์์ด๋์ด?
@arahlf ๋ฐ @n1313 , thx ๋ต์ฅ.
@GoodBoyDigital , ์ด๊ฒ์ด ๋ ์ด๋์ ์์ต๋๊น? ํฅํ ์ ๋ฐ์ดํธ์์ ์์ํ ์ ์๋ ๊ธฐ๋ฅ์ธ์ง ๋๋ ์ด๋ฅผ ํดํนํด์ผ ํ๋์ง ์ฌ๋ถ์ ๋ํ ์์ด๋์ด๋ฅผ ์ป๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
@GoodBoyDigital ์ฌ๊ธฐ์ ๋ด ๋ชฉ์๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์์ต๋๋ค. ์ ๋ Pixi.js๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ท๋ชจ ๋ฉํฐํ๋ ์ด์ด ์จ๋ผ์ธ ๊ฒ์์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๊ฐ Pixi.js๋ฅผ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ๋ ๋๋ง ์์ง์ผ๋ก ์๋ณํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ ํฐ๋ ์ง์์ ์ถ๊ฐํ๋ ์ค์ ๋๋ค. :) ์ด ๊ณต๊ฐ์ ์ง์ผ๋ณด์ธ์.
์ต๊ณ :+1:
@GoodBoyDigital , ํ์์ ์ ๋๋ค! ์ ๋ฐ์ดํธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ธฐ๋๋ฉ๋๋ค.
@GoodBoyDigital ๋ฉ์ง๋ค์! ๋๋ฌด ๋นจ๋ฆฌ ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋งํ๊ธฐ ์ด๋ ต๋ค๋ ๊ฒ์ ์๋๋ค. ํ์ง๋ง Pixi์ ๋ํ ๋ง๋ง ์ง์์ด ์๋ฃ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ์๊ธฐ์ ๋ํด ๋งค์ฐ ๋์จํ ์์์ ์ ์๊ฒ ์๋ ค์ฃผ์ค ์ ์์ต๋๊น?
๊ทธ ๊ธฐ๊ฐ ๋ด์ ์๋ฃ๋์ง ์์ผ๋ฉด ๊ฒฌ์ ์ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ๋ถํํ์ง ์์ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ผ๋ง๋ ์ค๋ ๊ธฐ๋ค๋ฆด ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋์ง ๊ถ๊ธํฉ๋๋ค!
์๋ ํ์ธ์, ์๋ก์ด "dev-retina" ๋ธ๋์น๋ฅผ git ํ๋ธ์ ์ ๋ก๋ํ์ต๋๋ค. ๋ชจ๋๊ฐ ์ฐ๊ทน์ ํ ์ ์๋ค๋ฉด ์์ด์ค๊ฐ ๋ ๊ฒ์ ๋๋ค. ๊ฑฐ๊ธฐ์๋ ์์ง์ด๋ ๋ถ๋ถ์ด ๋ง์ด ์์ผ๋ฏ๋ก dev ๋ถ๊ธฐ์ ๋ณํฉํ๊ธฐ ์ ์ ์ค์ ํ๋ก์ ํธ๋ก ํ ์คํธํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ด์ ๋ ๋๋ฌ์ ์ต์ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. ์๋ก์ด ์ต์ ์ค ํ๋๋ ํด์๋์ ๋๋ค. ๋ฐ๋ผ์ ๋ ๋๋ฌ๋ฅผ ๋ง๋ง์ผ๋ก ์ค์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ ๋๋ฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
PIXI.autodetectRenderer(100, 100, {resolution:2})
๋ชจ๋ ๊ฒ์ด ๋์ผํ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํด์๋๋ ๋ ๋์ ๊ฒ์ ๋๋ค :)
BaseTextures์๋ ์ด์ ํด์๋๊ฐ ์์ต๋๋ค. ์ด๋ฏธ์ง๊ฐ ๊ณ ํด์๋์ธ ๊ฒฝ์ฐ ํด์๋๋ฅผ 2๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ๋ก๋ ์ ํด์๋๋ฅผ ์๋์ผ๋ก 2๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ์ง ์ด๋ฆ์ @2x ๊ฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ [email protected] ๋ฅผ ๋ก๋ํ๋ฉด pixi๋ ํด์๋๊ฐ 2๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ ๋ง ์ฐ๊ทน์ ํ๋ ๊ฒ์ด ์ต๊ณ ! ํ์ง๋ง ์ด๊ฒ์ด ์๊ฐ๋ณด๋ค ๊ฐ๋จํ์ง ์์ ์ ์์ผ๋ฏ๋ก ์ง๋ฌธํด ์ฃผ์ธ์. :)
+1
ํค์ด ๋งท. ์ด๊ฒ์ ์ข์ ๋ณด์ธ๋ค! ๋๋ Canvas๊ฐ ๋ฉ์ง๊ณ ์ ๋ช ํ ํ ์คํธ์ ์์ฐ์ ๋ ๋๋งํ๋๋ก ํ ์ ์์์ต๋๋ค. ํฌ๊ธฐ์ ์์น๋ ๋ด๊ฐ ํ ์คํธํ ํ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ ์ ์ผํ ๋ฌธ์ ๋ Pixi.Graphics ๊ทธ๋ฆฌ๊ธฐ ์ ์ฐจ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ๋ค์ ์ ๋ช ํ๊ฒ ๋ ๋๋ง ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ ๋๋ง์ ํฌ๊ธฐ์ ์์น๋ ์ ํํฉ๋๋ค.
๊ทธ๋ํฝ ๊ฐ์ฒด๋ ๋ง๋ง์ด์ด์ผ ํฉ๋๊น? ๋นํธ๋งต์ผ๋ก ์บ์ฑํ๊ณ ์์ต๋๊น?
์ฐ์ฐํ ๊ทธ๋ํฝ ๊ฐ์ฒด? ์๋๋ฉด ๋ฐ๋ก PIXI.graphics์
๋๊น?
2014๋ 9์ 9์ผ ํ์์ผ ์คํ 5์ 32๋ถ์ dcascais [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
ํค์ด ๋งท. ์ด๊ฒ์ ์ข์ ๋ณด์ธ๋ค! Canvas๋ฅผ ๋ฉ์ง๊ฒ ๋ ๋๋งํ ์ ์์์ต๋๋ค.
์ ๋ช ํ ํ ์คํธ์ ์์ฐ. ํฌ๊ธฐ์ ์์น๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ํ ์คํธ ํ ํ.๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ ์ ์ผํ ๋ฌธ์ ๋ Pixi์ ๋๋ค.๊ทธ๋ํฝ
๊ทธ๋ฆฌ๊ธฐ ์ ์ฐจ. ๋๋ ๊ทธ๊ฒ๋ค์ ์ ๋ช ํ๊ฒ ๋ ๋๋ง ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. NS
๊ทธ๋ฌ๋ ๋ ๋๋ง์ ํฌ๊ธฐ์ ์์น๋ ์ ํํฉ๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/GoodBoyDigital/pixi.js/issues/621#issuecomment -54997804
.
๋งคํธ ๊ทธ๋ก๋ธ
_๊ธฐ์ ํํธ๋_
์ ํ: 07708 114496 :: www.goodboydigital.com
First Floor, Unit 9B, Queens Yard, White Post Lane, London, E9 5EN
๊ตฟ๋ณด์ดยฉ. ํ๊ถ ์์ .
@GoodBoyDigital ๋ฌธ์ ๋ฅผ ์ค๋ช ํ ๋ ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ตฌ์ฑ์ ์ผ๋ถ๋ฅผ ๋์ณค์ต๋๋ค. ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ค์ ์ PIXI.Graphics ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ ์ค์ฒ๊ฐ ์๋ PIXI.Sprite์ ๋๋ค.
๋ฌธ์ ์ ๊ฒฐ๊ณผ ๋ ๋๋ง์ ์ค๋ช
ํ๋ ๋ฐ ๋์์ด ๋๋๋ก JSFiddle์ ๋ง๋ค์์ต๋๋ค.
์ด๊ฒ์ PIXI.Sprite๊ฐ PIXI.Graphics์ ๊ธฐ๋ฐํ ํ
์ค์ฒ๋ฅผ ์ป๋ ๊ฒฝ์ฐ ํ๋ฆฟํ ๊ทธ๋ํฝ ์ถ๋ ฅ์ ๋ณด์ฌ์ค๋๋ค.
http://jsfiddle.net/hsv8Q/13/
PIXI.Graphics๋ฅผ ์ง์ ์ฌ์ฉํ๋ ์ด ์ค์ ์ ์ ์์ ์ผ๋ก ์๋ํฉ๋๋ค.
http://jsfiddle.net/hsv8Q/7/
์ก์๋ค! ๊ฑฑ์ ํ์ง ๋ง์ญ์์ค. ์์ธ์ด ๋ฌด์์ธ์ง ์ ํํ ์๊ณ ์์ต๋๋ค. :)
์กฐ์ ๋๋ฉด ์๋ ค๋๋ฆฝ๋๋ค. ๊ณ ๋ง์!
@GoodBoyDigital๋ , ๋ ํฐ๋ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ฐ๋ฆฌ ๊ณ ๊ฐ์๊ฒ ํ์ํ ๋งํผ ์ข์ ์๊ธฐ์ ์ต๋๋ค. :)
๋ ํฐ๋ ๋ธ๋์น์์ ๋ฐ๊ฒฌํ ํ ๊ฐ์ง ๋ฌธ์ : ๋ ๋๋ง์ ๋ ์ข์ง๋ง ํํธ ์์ญ์ด ์๋ชป ์ ๋ ฌ๋ฉ๋๋ค. ์บ๋ฒ์ค์ ํฌ๊ธฐ๋ ์กฐ์ ๋์ง๋ง ์ ์ค ์์ญ์ ์กฐ์ ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ฉด ์ค์์ ์๋ ๋ฒํผ์ ํฐ์นํ๋ ค๋ฉด ํ๋ฉด ์ผ์ชฝ ์๋จ ์ค์์ ํฐ์นํด์ผ ์ค์ ๋ก ํฐ์น๋ฉ๋๋ค.
์ด ํ๋ฉด์์ ์ค์์ ์๋ ๋ฒํผ์ ๋๋ฅด๋ ค๋ฉด ์ฃผํฉ์ ์(๋์ค์ ์์ ๋ก ์ถ๊ฐํจ)์ ๋๋ฌ์ผ ์ค์ ๋ก ๋๋ฅด๊ฒ ๋ฉ๋๋ค. hitarea๋ ๋๋จธ์ง์ ํจ๊ป ํ์ฅ๋์ง ์์ต๋๋ค.
autodetectRenderer ํจ์์ "ํด์๋" ๋งค๊ฐ๋ณ์ ์ ๋ณด "window.devicePixelRatio"๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น?
์์์ ์ค๋ช ํ ๋ฌธ์ ์ ๋ํ ๋น ๋ฅธ/๋๋ฌ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. ๋ฌธ์ ๋ InteractionManager์ onTouchStart, onTouchMove ๋ฐ onTouchEnd ๊ธฐ๋ฅ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด๋น ํจ์์์ touchData.global.x ๋ฐ touchData.global.y์ ๊ณ์ฐ์ ๋ณ๊ฒฝํ๊ณ this.resolution์ผ๋ก ๋๋์ด ์์ ํ๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ง๋ง ํจ์ฌ ๋ ๋์ ์๋ฃจ์ ์ด ์์ ์ ์์ต๋๋ค.
์๋
ํ์ธ์ @GillesVermeulen
๋ง์ง๋ง ์ปค๋ฐ์์ ํํธ ์์ญ ํญ๋ชฉ์ ์กฐ์ ํ์ต๋๋ค. ์ต์ ๋ฒ์ ์ผ๋ก ์๋ํ์๊ฒ ์ต๋๊น? ๊ณ ๋ง์!
@GoodBoyDigital๋ , ๋น ๋ฅธ ๋ต๋ณ๊ณผ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง ๋ง์ํ์ ์ปค๋ฐ์ด ์์ง Github์ ์์ ์๋ ์๋์?
@GillesVermeulen - ์ด์ ํฐ์น๊ฐ ์ข์์ผ ํฉ๋๋ค. ๋ง์ฐ์ค ์ด๋ฒคํธ์ ํด์๋ ๋ณ๊ฒฝ๋ง ์ ์ฉํ์ต๋๋ค. ์ด์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋์ง ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌ ํด์!
์คํ @dcascais ! ๋ฐฉ๊ธ generateTexture ํจ์์ ํด์๋๋ฅผ ์ ์ํ ์ ์๋๋ก ํ๋ ์์ ์ฌํญ์ ๋ ํฐ๋ ๋ถ๊ธฐ์ ํธ์ํ์ต๋๋ค.
๋ฐ๋ผ์ ๋ฉ์ง ํ์ญ ํ์ญ ํ ๋ง๋ง ์ง๊ฐ์ ์ํด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
var retinaTexture = myGraphicsObject.generateTexture(2)
var normalTexture = myGraphicsObject.generateTexture(1)
var smallTexture = myGraphicsObject.generateTexture(0.5)
๊ทธ๊ฒ์ด ๋์ค์ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค์ฃผ์ญ์์ค. ๊ฐ์ฌ ํด์!
@GoodBoyDigital ์ข์์ ! ์ด๊ฒ์ ์ด์ ๊ฝค ์ ์๋ํฉ๋๋ค. ์ด์ ๋ํ ์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ผ๋ฐ์ ์ธ ์ง๋ฌธ์ผ๋ก. ์ด ๊ณ ํด์๋ ์ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฑ๋ฅ, ๋ฉ๋ชจ๋ฆฌ ๋๋ ์ถฉ๋ ๋ฌธ์ ์ ๊ฐ์ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๊น?
๊ณ ๋ง์์, ๋งท.
๋คํ!
๊ทธ์๊ฒ ๋ง๋ฒ์ ์ด์์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค! ๋ถํํ๋ ๋ ๋์ ํด์๋๋ ๋ณธ์ง์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ ๋ฐฐ๋ก ํฌ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์๋น์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. Retina ์ด๋ฏธ์ง๋ 2๋ฐฐ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ฉฐ webGL/Canvas๋ 2๋ฐฐ ๋ง์ ํฝ์ ๋ก ์ฅ๋ฉด์ ๋ ๋๋งํด์ผ ํฉ๋๋ค. ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ/cpu ์ฅ์น์์ ์ด๊ฒ์ ์ง์ง ํฌ๋ฌ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก ๊ณ ํด์๋๋ก ๋ฌด์์ด๋ ํ ๋ ์ผ๋์ ๋๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.
4๋ฐฐ๋ผ๊ณ ์๊ฐ๋๋๊ฑฐ ์๋? ๋ํ ๋ ํฐ๋ ๋์คํ๋ ์ด๋ฅผ ๊ฐ์ง ์ฌ๋๋ค๋ ๋น ๋ฅธ ์ปดํจํฐ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ๊ฑฐ์ ๋ณด์ฅ๋์ง ์์ต๋๊น?
@iirelu ์ฐธ์ผ๋ก! 4๋ฐฐ!
์, ๋ ํฐ๋ ๋์คํ๋ ์ด๊ฐ ์๋ ์ปดํจํฐ๋ ์๋นํ ๊ณ ๊ธํ์ด๋ฏ๋ก ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ ๋ ํฐ๋ ์คํฌ๋ฆฐ์ด ์๋ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ ๋ง์ด ๋ํ๋ ์ ์์ต๋๋ค.
@GoodBoyDigital , ํฐ์น ๊ธฐ๋ฅ ์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๋ด ์์ ์์ ๊ณผ ๋์ผํ๊ณ ํธ๋ฆญ์ ์ํํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฑ๋ฅ: ์ต๊ทผ๋ถํฐ IOS7์ CocoonJS์์ ํ ์คํธ๋ฅผ ํด์์ต๋๋ค. Phonegap๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์ฌ์ฉํ๋ ํ์ค iOS Webview์ ๋นํด ์ฑ๋ฅ์ ํ์คํ ๋ ์ข์ง๋ง ๋ชจ์์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๋งค์ฐ ๋ถ๋ด์ด ๋๋ ๊ฒ ๊ฐ๊ณ ๋ชจ์์ Safari์์์ ๊ฐ์ด ์คํฐ์จ๋ฆฌ์ด์ฑ๋์ง ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด CocoonJS์ ๊ด๋ จ์ด ์๊ณ Pixi์ ๊ฑฐ์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ ํฐ๋(@2x) ํ ์ค์ฒ์ ํํฐ๋ฅผ ์ ์ฉํ์๋ง์ ๋ชจ๋ ์์น ์ง์ ์ด ํด์ ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค @joaomoreno ! ๊ผญ ์ดํด๋ณด์ธ์ :+1:
๋น์ ์ด ์ ์ํ๋ API์ ๋ํ ์์ ์ง๋ฌธ: PIXI.autodetectRenderer(width, height, optionObject)
์ PIXI.autodetectRenderer(width, height, view, antialias, transparent
์ฌ์ด์ ์ถฉ๋์ด ์์ง ์์ต๋๊น?
src/pixi/utils/Detector.js
์ค๋ช
๋ ๋๋ก optionObject
์ธ์๋ฅผ ๋ ๋ฒ์งธ ์๋ช
์ ์ฌ์ฏ ๋ฒ์งธ ์ธ์๋ก ๋ง๋ค๊น์? ์ธ ๋ฒ์งธ ์ธ์๊ฐ ์ด๋ฏธ DOMElement์ด๋ฏ๋ก ๋ค๋ฅธ ์์น์ ๋ฃ์ ์ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ฃ ?
pixi์ ๋ค์ ๋ฒ์ ์ ์๋ก์ด ๋ฉ์๋ ์๋ช ์ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋ค.
@englercj ๋น ๋ฅธ ์๋ต์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ญ์ ๋ ์ต์ ์ ์ฌ์ ํ โโ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ก์ธ์คํ ์ ์์ต๋๊น?
options ๊ฐ์ฒด๋ ์ด์ ์ ๋ชจ๋ ์ต์ ๊ณผ ์๋ก์ด ์ต์ ์ ํฌํจํฉ๋๋ค. ๊ธฐ๋ฅ์ด ์ ๊ฑฐ๋์ง ์๊ณ ์ต์ ์ ๋ค๋ฅด๊ฒ ์ ๋ฌํ๋ฉด ๋ฉ๋๋ค.
https://github.com/GoodBoyDigital/pixi.js/blob/dev/src/pixi/utils/Detector.js#L14 -L19
์ค, ํธ๋ฆฌํ! ๊ฐ์ฌํฉ๋๋ค. :+1:
๋ ํฐ๋ ์ง์์ ํ์ฌ dev ๋ธ๋์น์ ์์ต๋๋ค. ๋ฌธ์ ๊ฐ ์๋ ์ฌ๋์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. +1: ์ง๊ธ์ ๋ซ์ต๋๋ค.
๋ ํฐ๋ ๋งฅ๋ถ ํ๋ก์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
{resolution:2}
์ฌ์ฉํ์ง ์์ต๋๋ค.
์คํ
์ด์ง ๋๋น๋ ์ค์ ๋ง๋ง ํฝ์
์ ๋ฐํํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ 2540
ํฝ์
์
๋๋ค. ํ
์ค์ฒ๋ ๋ ๋ฐฐ ํฌ๊ธฐ๋ก ๋ ๋๋ง๋๋ฉฐ ๋๋น๋ ์ค์ 1:1 ๋ง๋ง ํฝ์
์ด ์๋๋๋ค. ๋ฐ๋ผ์ 300 x 200 ์ด๋ฏธ์ง๋ 600 x 400 ๋ง๋ง ํฝ์
์ ์ฐจ์งํ์ง๋ง ๋๋น๋ 300์ ๋ฐํํฉ๋๋ค.
์ด๊ฒ์ ์์๋ ๋์์ ๋๊น?
@PierBover ์, ๊ฐ์ฒด์ ๋์ด/๋๋น๋ ์ค์ ๋ก ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๋ค๋ฅธ ํด์๋๋ก ๋ ๋๋ง๋ฉ๋๋ค.
@englercj ํ์ง๋ง ์ค์ ํฝ์ ๊ณผ 2๋ฐฐ ํฝ์ ์ด ํผํฉ๋ ์ฐจ์์ด ์๋
์๋ค ์, ๋ด๊ฐ ์ฌ๊ธฐ์ ๋ญ๊ฐ ์๋ชปํ๊ณ ์์ต๋๊น? ๋ ํฐ๋ ๋์คํ๋ ์ด์ฉ CanvasRenderer์ ํด์๋๋ฅผ 2๋ก ์ค์ ํ๋ฉด ์บ๋ฒ์ค ํฌ๊ธฐ๊ฐ ๋ ๋ฐฐ, @x2
์ด๋ฏธ์ง๊ฐ ๋ค ๋ฐฐ๊ฐ ๋ฉ๋๋ค.
<strong i="7">@scale</strong> = window.devicePixelRatio
width = 960/<strong i="8">@scale</strong>
height = 556/<strong i="9">@scale</strong>
renderer = new (PIXI.CanvasRenderer)(width, height,{resolution:@scale})
container = document.getElementById 'container'
container.appendChild renderer.view
StackOverflow ์ง๋ฌธ
http://stackoverflow.com/questions/29142342/pixi-js-retina-display-canvas-is-doubled-in-size
์ด๋ฒ ํธ์ ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ http://www.goodboydigital.com/pixi-js-v2-fastest-2d-webgl-renderer/ ์์ ๋ง๋ง ์ด๋ฏธ์ง๋ ํ์ฅ ์ ์ @2x ๋๋ @x2 ๊ฐ ํ์ํ๋ค๊ณ ์ธ๊ธ๋์ด ์์ต๋๋ค. . ์ ๋ต์ @2x ๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด ์ฌ๋ฐ๋ฅธ์ง?
@2x ๋ง์ต๋๋ค. ํด๋ ์ด๋ฆ์ด๊ฑฐ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค.
assets/@2x/image.png
or
assets/[email protected]
@์๋๋ ๋ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ์ ๋ฐ์ ์ ํฌ์ ๋๋ค. ๋ด ์บ๋ฒ์ค๊ฐ ํด์๋๊ฐ ์ฆ๊ฐํ์ง ์๊ณ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ ์ด์ ๋ฅผ ์๊ณ ์์ต๋๊น?
๋ ํฐ๋์ ๋ํ ๋์ผํ ๋ฌธ์ , ํด์๋ ์ฌ์ฉ: 2, ์ผ๋ถ PIXI.Text ์ต์ปค ์์น ์ง์ ์ด ์๋ชป๋ฉ๋๋ค. CSS์์ ์บ๋ฒ์ค์ ํฌ๊ธฐ๋ฅผ ๋ค์ ์กฐ์ ํ๋ ๊ฒ์ ๋ณ๋ก ๋์์ด ๋์ง ์์ต๋๋ค. ํด์๋๋ฅผ 1๋ก ์ค์ ํ๊ณ ํ ์คํธ ๊ธ๊ผด ํฌ๊ธฐ๋ฅผ ๋ ๋ฐฐ๋ก ํ ๋ค์ ์ ๋ฐ์ผ๋ก ์ถ์ํด์ผ ํ์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ํ ์คํธ๋ ์ฌ์ ํ ๋งค๋๋ฝ์ง ์์ต๋๋ค.
์๋ Elyx0, ์ฌ๊ธฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ฐ์ผ์ฉ ํ ์คํธ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค: https://github.com/JiDW/pixi-cocoontext
๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๊น?
์๋ ํ์ธ์ @JiDW , ๋๋์ด
@GillesVermeulen
๋ด ํ๋ก์ ํธ์์ High DPI ์ฅ์น๋ฅผ ์ง์ํ๋ ๊ฒ์ ๊ณ ๋ ค ์ค์ด๋ฏ๋ก ๋ค์ ์ฌํญ์ด ๊ถ๊ธํฉ๋๋ค.
์บ๋ฒ์ค์ ํฌ๊ธฐ๋ ์กฐ์ ๋์ง๋ง ์ ์ค ์์ญ์ ์กฐ์ ๋์ง ์์ต๋๋ค.
์ด๊ฒ์ด PixiJS์์ ํด๊ฒฐ๋์์ต๋๊น? (์: ์ต์ /์ต์ ๋ฒ์ )
์๋ ํ์ธ์ @tobireif , ๊ทธ๋ ๊ฒ ์๊ฐํฉ๋๋ค. ์ค๋ซ๋์ ๋ฌธ์ ๊ฐ ์์์ง๋ง Pixi v2์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ต์ ๋ฒ์ ๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์์.
@GillesVermeulen ์ ๋ค๋ฆฌ
์บ๋ฒ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฅผ ์ํด ์ผํ CSS ๋ฐฉ๋ฒ(pixi.js ์ ์ธ)
canvas {
image-rendering: optimizeSpeed;
image-rendering: -moz-crisp-edges;
image-rendering: -o-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: optimize-contrast;
image-rendering: crisp-edges;
image-rendering: pixelated;
-ms-interpolation-mode: nearest-neighbor;
}
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ.
์๋ ํ์ธ์ !
๋ด ๋ง์ง๋ง ํ๋ก์ ํธ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค .
๋ด ๊ฐ์ฒด์์ ์ฌ๋ฐ๋ฅธ ํฝ์ ํด์๋๋ฅผ ์ป์ ์ ์์ต๋๋ค... ๋ ๋๋ฌ์ ๊ดํ ๊ฒ์ธ์ง ์๋๋ฉด ํ ์ค์ฒ๋ฅผ ์์ฑํ ๊ทธ๋ํฝ์ ๊ดํ ๊ฒ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ ๊ฒฝ์ฐ ๋ชจ๋ window.devicePixelRatio๋ฅผ ์ถ๊ฐํ์ง๋ง ๋ณด์ด์ง ์์ต๋๋ค. ์ด๋ค ์ํฅ์ ๋ฏธ์น๊ธฐ ์ํด.
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์บ๋ฒ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฅผ ์ํด ์ผํ CSS ๋ฐฉ๋ฒ(pixi.js ์ ์ธ)
canvas { image-rendering: optimizeSpeed; image-rendering: -moz-crisp-edges; image-rendering: -o-crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: optimize-contrast; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor; }
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋์ธ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ.