์: http://moonrat.co.uk/html5/pixi-ios-animation-bug/
๋น์ ์ด ๋ณด๋ ๊ฒ์ 3๊ฐ์ง ํฌ๊ธฐ์ ์ ๋๋ฉ์ด์ ์ ๋๋ค. ์๋จ์ x0.5, ์ค๊ฐ์ x0.75, ํ๋จ์ x1์ ๋๋ค. ์ผ์ชฝ์๋ ์ผ๋ฐ ๋ ๋๋ง ๊ฒฝ๋ก๊ฐ ์ฌ์ฉ๋๊ณ ์ค๋ฅธ์ชฝ์๋ 3๊ฐ์ ์ ๋๋ฉ์ด์ ์ด pixi-picture๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ด์ ์ ๋ _WebGL ๋ชจ๋์ iOS ๊ธฐ๊ธฐ์์๋ง ์ด ๋ฌธ์ ๋ฅผ ๋ด ๋๋ค_. Mac์ Safari๋ฅผ ํฌํจํ ๋ค๋ฅธ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. ์บ๋ฒ์ค ๋ชจ๋์ iOS, ์ ๋์ ์ผ๋ก ๊ด์ฐฎ์ต๋๋ค. ํ์ง๋ง WebGL์ ์ฌ์ฉํ๋ iOS(iPad ๋ฐ iPhone) ์ฅ์น๋... ํ๋ค๋ฆฝ๋๋ค.
@ivanpopelyshev ๋ ๋ ์ ํํ ๋ ๋๋ง์ ์ํด pixi-picture๋ฅผ ์ฌ์ฉํ๋๋ก ์ ์ํ์ผ๋ฉฐ ๋๋ถ๋ถ์ ์ฅ์น์์ ๋์์ด ๋์ง๋ง ๋ชจ๋ ์ฅ์น์์ ๋์์ด ๋์ง ์์ผ๋ฉฐ ๋ฌธ์ ๋ฅผ ๊ฑฐ์ ์ ๊ฑฐํ์ง ์์ต๋๋ค.
๋ค์์ ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ iOS ๊ธฐ๊ธฐ๊ฐ ์์ ์์์ ์ด๋ป๊ฒ ๋ณด์ด๋์ง์ ๋ํ ๋ชฉ๋ก์ ๋๋ค.
iPad Mini 2: 10.0.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง ์์
iPad 4: 8.4 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iPad Air: 10.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง ์์
iPad Air: 10.3 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง ์์
iPad Air2: 8.3 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 4s: 9.1 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 4s: 9.2.1 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 5: 9.1 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๋ ํ๋ค๋ฆฝ๋๋ค.
iphone 5: 10.1 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๋ ํ๋ค๋ฆฝ๋๋ค.
iphone 5s: 10.0.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง ์์
iphone 6: 8.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 6: 10.0.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 6+: 8.4 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone 6+: 9.2.1 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
iphone se: 10.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง ์์
iphone 7: 10.2 - pixi๊ฐ ํ๋ค๋ฆฌ๊ณ pixi-picture๊ฐ ํ๋ค๋ฆฌ์ง๋ง ๋ ๊ทธ๋ ์ต๋๋ค.
์ด๋ค ์์ด๋์ด?
์ถ๊ฐ ์ ๋ณด; ์ด ํ๋ค๋ฆผ์ ๋ง์ง๋ง pixi v3์์ ๋ฐ์ํ์ง ์์ต๋๋ค: http://moonrat.co.uk/html5/pixi-ios-animation-bug-v3/
v3๊ฐ ๋ ๋์๊ฐ์? ๊ทธ ํฅ๋ฏธ ๋กญ๊ตฐ์
์ผ๋ถ ๋ชจ์์ ํ์ ํ ๋๋ง iOS์์ ๋์ผํ "ํ๋ค๋ฆผ" ๋ฌธ์ ๊ฐ ์์ต๋๋ค(๊ฐ๋๊ฐ 0์ ์ค์ฌ์ผ๋ก ์์ง์ผ ๋ ๋ฐ์ํจ). v3๋ก ๋์๊ฐ ์ ์์ต๋๋ค ...
๋ด๊ฐ ์๊ฐํ ์ ์๋ ์ ์ผํ ์ฐจ์ด์ ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ v4์ float32 ๋ฐฐ์ด์ ์ ์ฅํ๋ค๋ ๊ฒ๋ฟ์ ๋๊น? ์ ๋ฐ๋ ๋ฌธ์ ๊ฐ ์๋๊น์?
@GoodBoyDigital ์ค๋ ํ ์คํธํ๋๋ฐ @themoonrat ๋ ๋ง์ฐฌ๊ฐ์ง๋ผ๊ณ ๋งํ์ต๋๋ค.
๋ฉ์ง - ์๋ง๋ ์ ฐ์ด๋ ์ ๋ฐ๋?
roundPixels๋ฅผ false๋ก ์ค์ ํ์ฌ ์ค์ง๋๋์ง ํ์ธํ๊ธฐ ์ํด ํ ์คํธํ ๊ฐ์น๊ฐ ์์ต๋๊น?
2017๋ 2์ 17์ผ ๊ธ์์ผ 16:13 Mat Groves [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ฉ์ง - ์๋ง๋ ์ ฐ์ด๋ ์ ๋ฐ๋?
โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/pixijs/pixi.js/issues/3742#issuecomment-280692953 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAipZJ8DLKkA3bRJQIOYcmTDpXZgfTehks5rdccygaJpZM4MDJtw
.
roundPixels๋ ๊ธฐ๋ณธ์ ์ผ๋ก false์ด๋ฉฐ ์ด๋ฏธ ํ์ธํ์ต๋๋ค.
์ ๊น, ์ ๊น, ๊ทธ๊ฒ ์๊ฐ๋ฌ์ด!
@ivanpopelyshev - ๊ธฐ๋ณธ ์ ฐ์ด๋ ์ ๋ฐ๋๋ฅผ highp๋ก ๋ณ๊ฒฝํ๋๋ก ์์ฒญํ์ง๋ง ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝํ์ง ์์ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค. ๊ธ์, ๋๋ ๋น์ ์ด ์ค๋ ์์นจ์ ๋์๊ฒ ์ค ๋น์ ์ ์ ๋ฒ์ ์์ ๊ทธ๊ฒ์ ์๋ํ๊ณ ๊ทธ๊ฒ์ _does_ ๊ทธ๊ฒ์ ๊ณ ์ณค์ต๋๋ค!
์ข์, ์ด๊ฒ์ ์ด์ํ๋ค.
๊ทธ๋์.
PRECISION์ฉ highp๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ dev ๋ถ๊ธฐ๋ ์๋ํฉ๋๋ค. ํ์ง๋ง....
PIXI.settings.PRECISION = 'highp'
์๋ํ์ง ์์ต๋๋ค
pixi.js์ ์ง์ ๋ค์ด๊ฐ์ ํธ์งํ๋ฉด
PRECISION: 'mediump',
์๊ฒ
PRECISION: 'highp',
๊ทธ๋ฌ๋ฉด ์๋ํฉ๋๋ค.
๊ทธ๋์, ๋์ ์ ๋ฐ๋ + ์ด์ค ๊ฐ? double->float->highp ๋ณํ์ iphone/ipad์ ์ข์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ฅ๊ธ์ง ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ค์ ๋ก๋ ๋ฌผ๊ฑด์ ๋ง์ด ์๋ฆฝ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๋ฌธ์ ๊ฐ ์๋ ์ค์ ์ด ์ ํ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ข์ ์บ์น @themoonrat
k, ์์ ์ฌํญ์ด ์์ต๋๋ค. ์ค์ ์ ๊ฐ์ ธ์ค๋ ์คํ์ผ ๋๋ฌธ์ ๋๋ค. ๊ฐ์ ธ์ค๊ธฐ ์๊ฐ์ ํ์ฌ ์ํ์ ๋์ ์ผ๋ก ์ ์ฉํ์ง ์๊ณ ์ ์ ์ผ๋ก ๋ง๋ญ๋๋ค. ๊ณง PR ์ฌ๋ฆฌ๊ธฐ
๋ํ Sprrite์์ Float32Array ๋์ Float64Array๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ค๋ฅ๊ฐ ์ฝ๊ฐ ์ค์ด๋ญ๋๋ค.
ํธ์ง: ๊ทธ๋ ์ง๋ ์์ง๋ง ๋ช ๊ฐ์ง ๋ค๋ฅธ ์กฐ์น๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค. :)
@ivanpopelyshev ๋๋ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ทธ๋๋ก ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค - ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ float32๋ก ์ ๋ก๋ํ๋ฏ๋ก ๋ฐฐ์ ๋ฐ๋๋ก ๊ทธ๊ฒ๋ค์ ์ก์ ์๋ฏธ๊ฐ ์์ต๋๋ค..
๋ถํํ๋ pixi4.4.1์ด ์ค์น๋ iPad Mini3์์ ์ฌ์ ํ ํ๋ค๋ฆผ์ด ์์ต๋๋ค.
PIXI.settings.PRECISION = 'highp'๋ฅผ ์๋์ผ๋ก ์ค์ ํ๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ์์
์ ์ํํด์ผ ํฉ๋๊น?
์ฝ์์ ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ค์ ๋ก 4.4.1์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋๋ค.
๋น์ ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น? ์คํ ์ด์ง์ ์คํ๋ผ์ดํธ๊ฐ ๋ช ๊ฐ๋ฟ์ธ๊ฐ์?
์, PIXI.settings.PRECISION_FRAGMENT ์ง์ ์ค๋จ ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
๋ด ํ
์คํธ์๋ 24fps(์๋ 0.4)์์ ์ฌ์๋๋ 1๊ฐ์ AnimatedSprite๋ง ์์ต๋๋ค.
์ ๋๋ฉ์ด์
์ TexturePacker๋ก ์์ฑ๋์์ผ๋ฉฐ ๊ธฐ๋ณธ ํ
์ค์ฒ ํฌ๊ธฐ๋ POT(2048x2048)์
๋๋ค.
4.4.1์์ ๊ทธ๋ ์ด์ ๋ณด๋ค ๋ ํ๋ค๋ฆฌ์ง๋ง ์ฌ์ ํ ๋์ ๋๋ ์งํฐ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ํด pixi-picture ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? https://github.com/pixijs/pixi-picture/tree/master/bin ์ ์ถ๊ฐํ๊ณ ์์ฑํ์ญ์์ค.
sprite.pluginName = 'picture';
์์ฒญ๋! pixi-picture๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒฝํ๊ฒ ๋ณด์
๋๋ค :)
์ด๊ฒ์ด ๋์ฒด ์คํ๋ผ์ดํธ ๋ ๋๋ฌ์
๋๊น?
์ด๋ค ๊ฒฝ์ฐ์ ์ฌ์ฉํด์ผ ํฉ๋๊น? (์ด ๋ช
๋ฐฑํ ๊ฒฝ์ฐ ์ธ์). ์ผ๋ฐ ๋ ๋๋ฌ(๋ค์ค ํ
์ค์ฒ ์ผ๊ด ์ฒ๋ฆฌ ์ง์)๋ก ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋๋ฉด ํน์ ๋ชฉ์ ์ ๋ ๊ฐ๊น์ต๋๊น?
๊ทธ๋ฐ ๋ค์ ๋ฉ์ธ ์คํ๋ผ์ดํธ ๋ ๋๋ฌ์ ๋ฌด์์ด ๋ฌธ์ ์ธ์ง ์๋๋ค. Pixi ์ฌ์ง์ ์ผ๊ด ์ฒ๋ฆฌ๋์ง ์๋ ์ด๋ฆฌ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ฒฝ๊ณ ์ํฐํฉํธ๋ฅผ ์ค์ด๊ณ ์ค๋ฒ๋ ์ด/ํ๋๋ผ์ดํธ ํผํฉ ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค.
์ฃผ์ ์ฐจ์ด์ ์ UV ์ขํ๊ฐ ์ ๋ฌ๋๋ ๋ฐฉ์์ ๋๋ค. ๋ฉ์ธ ์คํ๋ผ์ดํธ ๋ ๋๋ฌ๋ Uint16์ ์ฌ์ฉํ๋ ๋ฐ๋ฉด, ๋ค๋ฅธ ๋ชจ๋ ํ๋ฌ๊ทธ์ธ๊ณผ ๊ฐ์ ๊ทธ๋ฆผ์ Float๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐธ๊ณ ๋ก:
PIXI.settings.PRECISION_FRAGMENT = 'highp';
ํ๋ฌ๊ทธ์ธ ์์ด ํ๋ค๋ฆฌ๋ iOS ์ ๋๋ฉ์ด์
์ ํด๊ฒฐํฉ๋๋ค.
ps - @ivanpopelyshev , ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก PRECISION_VERTEX 'highp'๋ฅผ ์ค์ ํ๋๋ฐ ์๋ชป๋ ๊ฒ์ ์ ํํ์ ์๋ ์์ต๋๋ค. ๋ด ๊ฒ์์ '์ค๊ฐ'์ผ๋ก ๋ค์ ๋ค์ด๊ทธ๋ ์ด๋ํ๋ ๋ฐ ์ด๋ค ๋จ์ ์ด ์์ต๋๊น?
pps - ๋ ๊ฑฐ์ ๋ชจ๋๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ 'highp' ์ค์ ์ด 'mediump'๋ก ๋ค์ด๊ทธ๋ ์ด๋๋๋๋ก ํด์ผ ํฉ๋๊น?
๋๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ pixi v4.6.2๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์๊ฒ๋ ๋งค์ฐ ์ค์ํ ๋ฒ๊ทธ์ ๋๋ค. @ivanpopelyshev , ์๋ฌด๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ์ต๋๊น?
PIXI.settings.PRECISION_FRAGMENT = '๋์'
๋ ๋๋ฌ๋ฅผ ๋ง๋ค๊ธฐ ์ ์
์ผ๋ถ ์ฅ์น๋ ์ง์ํ์ง ์์ผ๋ฉฐ, ํ๋ค๋ฆฌ๋ ํน์ ์ฅ์น์์๋ง highp๋ฅผ ํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ํ ์ ์ ์์ ๊ฐ์ฒด์ ๋ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด pixi-picture ํ๋ฌ๊ทธ์ธ๊ณผ sprite.pluginName='picture'
๋ฅผ ์ฌ์ฉํ์ญ์์ค.
๋ฌธ์ ๊ฐ IOS์์ ํ๋ค๋ฆฌ๋ ์คํ๋ผ์ดํธ๋ผ๋ฉด ์, "iOS๊ฐ ์์ผ๋ฉด ์ ๋ฐ๋ ์กฐ๊ฐ์ ๋์์ผ๋ก ์ค์ "์ ์ํํ์ญ์์ค.
ios๊ฐ ์๋๋ฉด ๊ทธ๋ฆผ ํ๋ฌ๊ทธ์ธ์ด ํ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ด ios๋ง์ ๋ฌธ์ ๊ฐ ์๋์์ต๋๋ค. :)
@ivanpopelyshev , @themoonrat ๊ฐ์ฌํฉ๋๋ค. ์๋ํฉ๋๋ค.
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฌธ์ ๊ฐ IOS์์ ํ๋ค๋ฆฌ๋ ์คํ๋ผ์ดํธ๋ผ๋ฉด ์, "iOS๊ฐ ์์ผ๋ฉด ์ ๋ฐ๋ ์กฐ๊ฐ์ ๋์์ผ๋ก ์ค์ "์ ์ํํ์ญ์์ค.
ios๊ฐ ์๋๋ฉด ๊ทธ๋ฆผ ํ๋ฌ๊ทธ์ธ์ด ํ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ด ios๋ง์ ๋ฌธ์ ๊ฐ ์๋์์ต๋๋ค. :)