Retinaãã£ã¹ãã¬ã€ã§ã¯ãPIXIã§æç»ããã圢ç¶ããŒãããŠèŠããŸãã ããã«ã€ããŠãã©ãŒã©ã ã«æçš¿ããŠã¿ãŸããããå®éã«ã¯ã©ãã«ãè¡ããŸããã§ããã ç§ã¯ãããããã«èª¿æ»ããåé¡ããããã瀺ãããã«ãéåžžã®ãã£ã³ãã¹ãšPIXIã®äŸãããã€ã䞊ã¹ãŠèšå®ããŸããã ããããã£ãã«ã§ã
ãããŠã¹ã¯ãªãŒã³ã·ã§ãã
PIXIãã£ã³ãã¹ã³ã³ããã¹ããã¹ã±ãŒãªã³ã°ããããšãããšãã«ãå¥åŠãªé»ãèæ¯ã§äœãååŒãããŠããã®ãããããŸãã...ééã£ãŠè¡ã£ããããã¬ãŒã ã¯ãŒã¯å ã®ä»ã®äœããéªéãããŠããããŸãã¯æ··ä¹±ããŠããå¯èœæ§ããããŸãã³ã³ããã¹ãã®å€æŽã
PIXIã¯ã devicePixelRatio
ããã§ãã¯ããããã«å¿ããŠãã£ã³ãã¹ãšã³ã³ããã¹ãã®ããããã£ã調æŽããããšã§ãçµã¿èŸŒã¿ã®ç¶²èãµããŒããè¿œå ã§ããããã§ãããä»ã«ã©ã®ãããªåœ±é¿ãããã®ãââããããŸããã
ç§ã¯ãã®ãã°ã«åæããŸãã åèãŸã§ã«ãããã¯éåžžã©ã®ããã«åŠçã§ãããã§ãïŒ http ïŒ
ãããããã¹ãã®åé¡ã§ãã
devicePixelRatioã2ã®Retinaç»é¢ããããé®®æãª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ã«åãããŠã¹ã±ãŒãªã³ã°ããã¹ãã©ã€ããããã°ããã€ãã©ã®ã¹ãã©ã€ãã«ãããããããªãããããŠãŒã¶ãŒã©ã³ãã«ä¿æããŠããŸãã ããããããªãã¯è¡ããŸãã
ãã@englercj ã ã¹ãã©ã€ããšã¯ããŠãŒã¶ãŒãããŒãããã¢ã»ãããæå³ããŸããïŒ
@dcascaisã¯ã
@englercjãè¿äºããããšãããããŸãã
çŸåšãé©åãªè¡šç€ºè§£å床ãåŸãããã«ã¬ã³ãã©ãŒãã¥ãŒãCSSããªãã¯ïŒåã®ãªã³ã¯ã§èª¬æïŒã§ã¹ã±ãŒãªã³ã°ãããŠããå Žåãã¹ããŒãžã«è¿œå ãããŠã¹ã±ãŒãªã³ã°ãããã¬ã³ãã©ãŒãã¥ãŒã§ã¬ã³ããªã³ã°ããããã®ã¯ãããã«å¿ããŠã¹ã±ãŒãªã³ã°ãããããã¯ã»ã«ãç¶æãããŸãå€ãªã®ã§ãåºæ¬çã«ååã®ãµã€ãºã§ãã
ããã«ã¯ãã°ã©ãã£ãã¯ã¹ã³ã³ããã¹ãã§åçã«ã¬ã³ããªã³ã°ãããã³ã³ãã³ããããŒããããããã¹ãããã³ã¢ã»ãããå«ãŸããŸãã
ä»ã®ãã©ãããã©ãŒã ã§ã¯ãããŸããŸãªç»é¢å¯åºŠã«é©åãªã¢ã»ãããæäŸããã®ã¯ãŠãŒã¶ãŒã®è²¬ä»»ã§ãããšæ³å®ããŠããŸãããå éšã¯ã·ãŒã ã¬ã¹ã«æ©èœããã¿ãŒã²ããã«ãã衚瀺å¯åºŠãç°¡åã«æ±ºå®ã§ããã¹ã±ãŒã«ãã¡ã¯ã¿ãŒããããã£ãåããŠããŸãã ããã¯PixiãŠãŒã¶ãŒã«ãšã£ãŠããç°¡åãªã¢ãããŒãã«ãªãã®ã§ã¯ãªãããšæããŸãã é©åãªè³ç£ã«ã€ããŠã®ã¿å¿é ãããã¹ã±ãŒã«ä¿æ°ãæ£ããèšå®ãããŠããããšã確èªããŸãã
ã¹ããŒãžã«è¿œå ãããã³ã³ãã³ãã®æåŸ ãããã¹ã±ãŒãªã³ã°ãã©ã®ããã«éæãããã«ã€ããŠã®ææ¡ã¯ãããŸããïŒ
ãã£ã¹ãã¬ã€ãªã¹ãã®ãã¹ãŠã®ã¢ã€ãã ã®xãyãå¹ ãé«ãã®å€ãæåã§ã¹ã±ãŒãªã³ã°ããããã¹ãã®å Žåãé©åãªãµã€ãºã®ãã©ã³ãåãæã€ããŸããŸãªæååãå®çŸ©ãããšãéåžžã«é¢åã§ãã°ãçºçãããããªããŸããäºæ¥ã
ããããšãã
èå³æ·±ãããšã«ããããã®ã·ã¹ãã ã®ããã€ããã©ã®ããã«æ©èœãããã確èªããããšæããŸãã åã¢ã€ãã ãåå¥ã«ã¹ã±ãŒãªã³ã°ããéããããã¯éã®ãã®ããã«ã¯æããŸããã ããã¯ã·ãŒã³ã°ã©ããªã®ã§ãã«ãŒãDOCãé©åã«ã¹ã±ãŒãªã³ã°ã§ããŸããã§ãããïŒ
@englercj ãç§ã¯ããããµã³ãããã¯ã¹ã§è©ŠããŸããããç©äºãé©åãªãµã€ãºã«æ»ããŸãããããã¯ã»ã«åããããŸãŸã§ããã å¥ã®åäœãæåŸ ããŸããïŒ
@bmantuanoéžæããã¢ã«ãŽãªãºã ïŒæãè¿ããç·åœ¢ããã€ãã¥ãŒããã¯ãªã©ïŒã§ã¹ã±ãŒãªã³ã°ãããããšãæåŸ ããŠããŸãã
ãã£ããããã§è¿ä¿¡ããŠãããŠããããšãã ã¹ã±ãŒãªã³ã°ã¢ã«ãŽãªãºã ã«ã€ããŠã¯ãPIXI.scaleModesãåç §ããŠããŸããïŒ ãããããªãããã€ãã¥ãŒããã¯ãªãã·ã§ã³ã¯ãããŸããã
@englercjããã¯ãé«è§£å床ã®ãã£ã¹ãã¬ã€ã§é®®æãªããã¹ããšã°ã©ãã£ãã¯ã¹ïŒã¢ã»ããã§ã¯ãªãåçã«æç»ãããïŒãååŸããããã«ç§ãã¡ãäœãããããšããŠããã®ãã瀺ãããã€ãã®JSFiddleã§ãã
ãã£ã³ãã¹ã®ã¹ã±ãŒãªã³ã°ãšã¹ã±ãŒãªã³ã°ãããã¡ã€ã³ãã£ã¹ãã¬ã€ãªããžã§ã¯ãã³ã³ããïŒãµã€ãºã¯æ£ããããŒãããŠãããããã€ãã®åé¡ãããïŒ
http://jsfiddle.net/hsv8Q
ãã£ã³ãã¹ã®ã¹ã±ãŒãªã³ã°ïŒé®®æã§ãããµã€ãºãééã£ãŠãããããã€ãã®åé¡ããããŸãïŒ
http://jsfiddle.net/hsv8Q/1
ã¹ã±ãŒãªã³ã°ãªãïŒæ£ãããµã€ãºã§ãããŒãããŠããŸãïŒ
http://jsfiddle.net/hsv8Q/2
ããŸãããã°ãããã¯ç§ãã¡ãäœãæå³ããã®ããç解ããã®ã«åœ¹ç«ã€ã§ãããã ç§ãã¡ãè©Šã¿ãã¹ãä»ã®äœãããããã©ããç§ãã¡ã«ç¥ãããŠãã ããã
ãããã®ãã£ãã«ãè¿œå ããŠããã@dcascaisã«æè¬ããŸãã @englercj ãæåã®ãã®ã¯ããªããææ¡ããŠãããã®ã§ãããïŒ ããã«ããé«DPIããã€ã¹ã§ãã¯ã»ã«åã確èªã§ããŸããïŒ
@bmantuanoæ®å¿µãªããç§ã¯1ã€ããã¹ãããããã®HDPIããã€ã¹ãæã£ãŠããŸãã:(ç§ã¯@GoodBoyDigitalãŸãã¯@photonstormãèŠãããã«ãããæ®ããŠãããŸãã
@englercj ããããŸã§èª¿ã¹ãŠãããŠããããšãã å©ãã«æè¬ããŸãã @arahlfãš@ n1313 ãåé¿çãèŠã€ããŸãããïŒ
ãããããŸã ã§ã ïŒïŒ
@bmantuano ãç§ã¯ä»¥åã®ã³ã¡ã³ãã§èª¬æããã¢ãããŒãããŸã 䜿çšããŠãããäœã®åé¡ããããŸããã
ããã«ã€ããŠäœãåãã¯ãããŸãããïŒ åè¿°ã®ã¹ã±ãŒãªã³ã°æ¹æ³@ n1313ã䜿çšããŸãããã網èããã€ã¹ã®FPSãç Žå£ãããŠããŸãã
äœãæ¡ã¯ïŒ
@arahlfãš@ n1313 ãè¿ä¿¡çšã®thxã
@GoodBoyDigital ãããã¯ããªãã®ã¬ãŒããŒã«ãããŸããïŒ ãããå°æ¥ã®ã¢ããããŒãã§æåŸ ã§ãããã®ã§ãããã©ããããŸãã¯ãããããã¯ããå¿ èŠããããã©ãããç¥ãããã ãã«åœ¹ç«ã¡ãŸãã
@GoodBoyDigitalããã«ç§ã®å£°ãè¿œå ãããã£ãã ãã§ãã Pixi.jsã䜿çšããŠå€§èŠæš¡ãã«ããã¬ã€ã€ãŒãªã³ã©ã€ã³ã²ãŒã ã«åãçµãã§ããã®ã¯ãPixi.jsãæãããã©ãŒãã³ã¹ã®é«ãã¬ã³ããªã³ã°ãšã³ãžã³ã§ãããšç¹å®ããããã§ãããRetinaãã£ã¹ãã¬ã€ã®ãµããŒãã«ã¯æ¬åœã«èŠåŽããŠããŸãã
ããŸããŸãç§ã¯å®éã«ç¶²èãµããŒããè¿œå ããéäžã§ã:)ãã®ã¹ããŒã¹ãèŠãŠãã ããã
çŽ æŽãããïŒ+1ïŒ
@GoodBoyDigital ãããã¯çŽ æŽãããã§ãïŒ æŽæ°ããŠããã ãããããšãããããŸãã 楜ãã¿ã«ããŠããŸãã
@GoodBoyDigitalããã¯ãããïŒ æ©ãè¿äºããããŠããããšãã äžè¬çã«èšãã®ã¯é£ãããšæããŸãããPixiã®ç¶²èãµããŒããè¡ããããšæãææã«ã€ããŠãéåžžã«å€§ãŸããªèŠç©ãããæããŠããã ããŸããïŒ
ãã®æéæ å ã«ãããè¡ãããªãã£ãå Žåãç§ã¯ããªããèŠç©ããã«ææãããæå¥ãèšã£ããããŸãã-ããªããç§ãã¡ãã©ããããåŸ ã£ãŠãããšæããäžè¬çã«èå³ããããŸãïŒ
ããã¿ããª-æ°ãããdev-retinaããã©ã³ããgitããã«ã¢ããããŒããããšããã§ãã ã¿ããªã§éã¹ãããšãŒã¹ã ããã ããã«ã¯ããããã®å¯åéšåãããã®ã§ããããdevãã©ã³ãã«ããŒãžããåã«ãããã€ãã®å®éã®ãããžã§ã¯ãã§ãã¹ãããã®ãè¯ããšèããŸããã
ã¬ã³ãã©ãŒã«ãªãã·ã§ã³ãã©ã¡ãŒã¿ãŒãè¿œå ãããŸããã æ°ãããªãã·ã§ã³ã®1ã€ã¯è§£å床ã§ãã ãããã£ãŠãã¬ã³ãã©ãŒã網èã«èšå®ããã«ã¯ã次ã®ãããªã¬ã³ãã©ãŒãäœæã§ããŸãã
PIXI.autodetectRenderer(100, 100, {resolution:2})
ãã¹ãŠãåãããã«èŠããã¯ãã§ã..ãããã解å床ã¯é«ããªããŸã:)
BaseTexturesã«ã解å床ããããŸãã ç»åãé«è§£å床ã®å Žåã¯ã解å床ã2ã«èšå®ããå¿ èŠããããŸããããŒãæã«è§£å床ãèªåçã«2ã«èšå®ããæ¹æ³ã¯ãç»ååã«@ 2xãä»ããç»åãè¿œå ããããšã§ãã
ãããã£ãŠãããšãã°[email protected]ãããŒããããšã
æ¬åœã«éã¶ã®ãäžçªïŒ ããããããã¯ããããèŠãç®ã»ã©ç°¡åã§ã¯ãªãã®ã§ã質åããŠãã ãã:)
+1
ãããããã ããã¯çŽ æŽãããèŠããŸãïŒ Canvasã«ããã£ãããšããããã¹ããšã¢ã»ãããã¬ã³ããªã³ã°ãããããšãã§ããŸããã ç§ããã¹ãããéãããµã€ãºãšäœçœ®ã¯æ£ããåŠçãããŠããããã§ãã
ç§ãåé¡ãæ±ããŠãããšæãããã®ã¯ãPixi.Graphicsã®æç»æé ã ãã§ãã ãããããµã¯ãµã¯ãšã¬ã³ããªã³ã°ãããããšãã§ããªãããã§ãã ãã ããã¬ã³ããªã³ã°ã®ãµã€ãºãšäœçœ®ã¯æ£ããã§ãã
ã°ã©ãã£ãã¯ãªããžã§ã¯ãã網èã§ããå¿
èŠããããŸããïŒ ãããããããšããŠãã£ãã·ã¥ããŠããŸãã
ããŸããŸã°ã©ãã£ãã¯ãªããžã§ã¯ãïŒ ãããšããŸã£ããã«PIXI.graphicsã§ããïŒ
ç«æãåå5æ32åPMã«2014幎9æ9æ¥ãäždcascais [email protected]ã¯æžããŸããïŒ
ãããããã ããã¯çŽ æŽãããèŠããŸãïŒ CanvasãããŸãã¬ã³ããªã³ã°ããããšãã§ããŸãã
é®®æãªããã¹ããšã¢ã»ããã ãµã€ãºãšäœçœ®ã¯æ£ããåŠçãããŠããããã§ã
ç§ããã¹ãããéãã§ã¯ãç§ãåé¡ãæ±ããŠãããšæãããã®ã¯Pixi.Graphicsã ãã§ã
æç»æé ã ãããããµã¯ãµã¯ãšã¬ã³ããªã³ã°ãããããšãã§ããªãããã§ãã NS
ãã ããã¬ã³ããªã³ã°ã®ãµã€ãºãšäœçœ®ã¯æ£ããã§ããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/GoodBoyDigital/pixi.js/issues/621#issuecomment -54997804
ã
ãããã°ããŒã
_ãã¯ãã«ã«ããŒãããŒ_
é»è©±çªå·ïŒ07708 114496 :: www.goodboydigital.com
1éããŠããã9Bãã¯ã€ãŒã³ãºã€ãŒãããã¯ã€ããã¹ãã¬ãŒã³ããã³ãã³ãE9 5EN
goodboy©ã å
šèäœæš©ææã
@GoodBoyDigitalåé¡ã説æãããšããç§ãæã£ãŠããæ§æã®äžéšãèŠéããŸããã ç§ãæã£ãŠããã»ããã¢ããã¯ãPIXI.Graphicsãªããžã§ã¯ãã«åºã¥ããã¯ã¹ãã£ãæã€PIXI.Spriteã§ãã
åé¡ãšãã®çµæã®ã¬ã³ããªã³ã°ã説æããããã«JSFiddleãäœæããŸããã
ããã¯ãPIXI.SpriteãPIXI.Graphicsã«åºã¥ããŠãã¯ã¹ãã£ãååŸããå Žåã®ãŒãããã°ã©ãã£ãã¯åºåã瀺ããŠããŸãã
http://jsfiddle.net/hsv8Q/13/
PIXI.GraphicsãçŽæ¥äœ¿çšãããã®ã»ããã¢ããã¯æ£åžžã«æ©èœããŸãã
http://jsfiddle.net/hsv8Q/7/
ã¬ããã£ïŒ å¿é
ãããŸãã-ç§ã¯ãããåŒãèµ·ãããŠãããã®ãæ£ç¢ºã«ç¥ã£ãŠããŸã:)
埮調æŽããããç¥ããããŸãã ãïŒ
ãã@GoodBoyDigital ã網èã®ãµããŒãã«æè¬ããŸãïŒ ç§ãã¡ãã¯ã©ã€ã¢ã³ãã®ããã«ãããå¿ èŠãšããŠããã®ã§ããããçŽ æŽãããææã«æ¥ãŸã:)
網èã®æã§æ°ä»ããåé¡ã®1ã€ã¯ãã¬ã³ããªã³ã°ã¯åªããŠãããããããé åããããŠããããšã§ãã ãã£ã³ãã¹ã¯æ¡å€§çž®å°ãããŸããããããé åã¯æ¡å€§çž®å°ãããŸããã ãã®ãããç»é¢äžå€®ã®ãã¿ã³ãã¿ãããããå Žåã¯ãç»é¢å·Šäžååã®äžã®äžå€®ãã¿ããããŠå®éã«ã¿ããããå¿ èŠããããŸãã
ãã®ç»é¢ã§ãäžå€®ã®ãã¿ã³ãæŒãããå Žåã¯ããªã¬ã³ãžè²ã®åïŒåŸã§äŸãšããŠè¿œå ããŸããïŒãæŒããŠå®éã«æŒãå¿
èŠããããŸãã ããããšãªã¢ã¯ä»ã®ãšãªã¢ã«æ¯äŸããŸããã
autodetectRendereré¢æ°ã®ãresolutionããã©ã¡ãŒã¿ãŒã«ã€ããŠã ãwindow.devicePixelRatioãã䜿çšã§ããŸããïŒ
äžèšã®åé¡ã®è¿ éã§æ±ãåé¿çãèŠã€ããŸããã åé¡ã¯ãInteractionManagerã®onTouchStartãonTouchMoveãããã³onTouchEndé¢æ°ã«ããããã§ãã ãããã®é¢æ°ã®touchData.global.xãštouchData.global.yã®èšç®ãå€æŽããthis.resolutionã§é€ç®ããããšã§ä¿®æ£ã§ããŸãã
ããã§åé¡ã¯è§£æ±ºããããã§ããããã£ãšè¯ã解決çããããããããŸããã
ããã«ã¡ã¯@GillesVermeulen
ååã®ã³ãããã§ããããšãªã¢ã®ãã®ã埮調æŽããŸããã ææ°ããŒãžã§ã³ã®plsã§è©ŠããŠã¿ãŸãããïŒ ãïŒ
ã¡ãã£ãš@GoodBoyDigital ãè¿ éãªè¿ä¿¡ãšãµããŒãã«æè¬ããŸãããããªãã話ããŠããã³ãããããŸã Githubã«ãªãå¯èœæ§ã¯ãããŸããïŒ
@ GillesVermeulen-ã¿ããã¯ä»ã¯è¯ãã¯ãã§ãã ããŠã¹ã€ãã³ãã«ã®ã¿è§£å床ã®å€æŽãé©çšããŠããŸããã ãããä»ããªãã®ããã«ãã¹ãŠããŸããããã©ããç§ã«ç¥ãããŠãã ããã ããããšãïŒ
ååŸ@dcascais ïŒ generateTextureé¢æ°ã®è§£å床ãå®çŸ©ã§ããããã«ããä¿®æ£ã網èãã©ã³ãã«ããã·ã¥ããŸããã
ã ãããããŠããªãµã¯ãµã¯ãã網èã®è³ªæã®ããã«ããªãããããããããšãã§ãããã¹ãŠïŒ
var retinaTexture = myGraphicsObject.generateTexture(2)
var normalTexture = myGraphicsObject.generateTexture(1)
var smallTexture = myGraphicsObject.generateTexture(0.5)
ãããããªãã®ããã«ã©ã®ããã«ããŸããããç§ã«ç¥ãããŠãã ããã ããããšãïŒ
@GoodBoyDigitalããŒã¹ïŒ ããã¯ä»ã§ã¯éåžžã«ããŸãæ©èœããŸãã ããã«é¢ããæŽæ°ã«æè¬ããŸãã
äžè¬çãªè³ªåãšããŠã ãã®é«è§£å床ã®æŽæ°ã«åºã¥ããŠãããã©ãŒãã³ã¹ãã¡ã¢ãªãã¯ã©ãã·ã¥ã®åé¡ãªã©ãä»ã®åé¡ã«ééããããšã¯ãããŸããïŒ
ããããšãããããã
èããŠããããïŒ
ãã®ããã®éæ³ã®åŒŸäžžããã£ããããã®ã«ïŒ æ®å¿µãªãããåºæ¬çã«ãã¹ãŠã®ãµã€ãºã2åã«ãªãããã解å床ãé«ããªããšãããã©ãŒãã³ã¹ãšã¡ã¢ãªæ¶è²»éã«å®éã«åœ±é¿ããŸãã Retinaç»åã¯2åã®ã¡ã¢ãªãæ¶è²»ããwebGL / Canvasã¯2åã®ãã¯ã»ã«ã§ã·ãŒã³ãã¬ã³ããªã³ã°ããå¿ èŠããããŸãã äœã¡ã¢ãª/ CPUããã€ã¹ã§ã¯ãããã¯æ¬åœã®ãã©ãŒã«ãªãå¯èœæ§ããããããé«è§£å床ã§äœããè¡ããšãã¯æ³šæããããšãéåžžã«éèŠã§ãã
ãããã¯4åã«ãªããšæããŸãããïŒ ãŸããRetinaãã£ã¹ãã¬ã€ã䜿çšããŠãã人ããé«éã®ã³ã³ãã¥ãŒã¿ãŒã䜿çšã§ããããšãã»ãŒä¿èšŒãããŠããã®ã§ã¯ãªãã§ããããã
@iirelu確ãã«æ¬åœã§ãïŒ 4åïŒ
ã¯ããRetinaãã£ã¹ãã¬ã€ãæèŒããã³ã³ãã¥ãŒã¿ãŒã¯éåžžã«ãã€ãšã³ãã§ãããããåé¡ãçºçããããšã¯ãªããšæããŸãã
ã¡ã¢ãªã®åé¡ã¯ãRetinaç»é¢ãåããã¢ãã€ã«ããã€ã¹ã§æããã«ãªãå¯èœæ§ãé«ããªããŸãã
@GoodBoyDigital ãã¿ããæ©èœã®ã¢ããããŒãã«æè¬ããŸãã ããã¯ç§ã®äžæçãªä¿®æ£ãšåãã§ãããªãã¯ãããŠããããã§ãã
ããã©ãŒãã³ã¹ã«ã€ããŠïŒæè¿ãããIOS7ã®CocoonJSã§ãã¹ããè¡ã£ãŠããŸãã Phonegapãªã©ã§äœ¿çšãããæšæºã®iOSWebviewãšæ¯èŒãããšãããã©ãŒãã³ã¹ã¯ééããªãåªããŠããŸãããå³åœ¢ã®æç»ã¯éåžžã«è² æ ã倧ããããã§ã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
åŒæ°ã¯2çªç®ã®çœ²åãã6çªç®ã®åŒæ°ã«ãªããŸããïŒ 3çªç®ã®åŒæ°ã¯ãã§ã«DOMElementã§ãããããä»ã«ã©ãã«çœ®ãã¹ããå®å
šã«ã¯ããããŸãããã
pixiã®æ¬¡ã®ããŒãžã§ã³ã§ã¯ãæ°ããã¡ãœããã·ã°ããã£ã䜿çšãããŸããããã¯é倧ãªå€æŽã§ãã
@englercjè¿ éãªå¯Ÿå¿ã«æè¬ããŸãã ããããããããªãã·ã§ã³ã¯ãä»ã®æ¹æ³ã§åŒãç¶ãã¢ã¯ã»ã¹ã§ããŸããïŒ
optionsãªããžã§ã¯ãã«ã¯ã以åã®ãã¹ãŠã®ãªãã·ã§ã³ãšæ°ãããªãã·ã§ã³ãå«ãŸããŠããŸãã æ©èœã¯åé€ãããŠããŸããããªãã·ã§ã³ãå¥ã®æ¹æ³ã§æž¡ãã ãã§ãã
https://github.com/GoodBoyDigital/pixi.js/blob/dev/src/pixi/utils/Detector.js#L14 -L19
ããã䟿å©ïŒ ã©ããããããšãããããŸããã ïŒ+1ïŒ
RetinaãµããŒãã¯çŸåšdevãã©ã³ãã«ãããŸãã 誰ããããã«åé¡ãèŠã€ãããç§ã«ç¥ãããŠãã ããïŒ+1ïŒä»ã®ãšããéããŠããŸãã
Retina MacBookProã«åé¡ããããŸãã
{resolution:2}
ã䜿çšããŠããŸããã
ã¹ããŒãžå¹
ã¯å®éã®ç¶²èãã¯ã»ã«ãè¿ããŸãã ç§ã®å Žåãããã¯2540
ãã¯ã»ã«ã§ãã ãã¯ã¹ãã£ã¯2åã®ãµã€ãºã§ã¬ã³ããªã³ã°ãããå¹
ãå®éã®1ïŒ1網èãã¯ã»ã«ã§ã¯ãããŸããã ãããã£ãŠã300 x200ã®ç»åã¯600x 400ã®ç¶²èãã¯ã»ã«ãå æããŸãããå¹
ã¯300ãè¿ããŸãã
ããã¯äºæ³ãããåäœã§ããïŒ
@PierBoverã¯ãããªããžã§ã¯ãã®é«ã/å¹ ã¯å®éã«ã¯å€æŽãããŠããŸããã ç°ãªã解å床ã§ã¬ã³ããªã³ã°ãããã ãã§ãã
@englercjãããã
ããã¿ããªãç§ã¯ããã§äœãééã£ãããšãããŠããã®ã§ããã CanvasRendererã®è§£å床ãRetinaãã£ã¹ãã¬ã€çšã«2ã«ãããšããã£ã³ãã¹ã®ãµã€ãºã2åã«ãªãã @x2
ç»åã®ãµã€ãºã4åã«ãªããŸãã
<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]
@Adireddyããããšãã ããã¯æŠãã®ååã§ãã 解å床ãäžããã®ã§ã¯ãªãããã£ã³ãã¹ãæ¡å€§çž®å°ããçç±ã¯ãããŸããïŒ
ããã§ã®ç¶²èã®åãåé¡ã解å床ã®äœ¿çšæ³ïŒ2ãããã€ãã®PIXI.Textã¢ã³ã«ãŒã®äœçœ®ãééã£ãŠããŸãã CSSã§ãã£ã³ãã¹ãåã¹ã±ãŒãªã³ã°ããŠãããŸã圹ã«ç«ã¡ãŸããã 解å床ã1ã«èšå®ããããã¹ãã®ãã©ã³ããµã€ãºã2åã«ããŠãããååã«æ¡å€§çž®å°ããå¿ èŠããããŸããã
ããã§ããããã¹ãã¯ãŸã æ»ããã«èŠããŸããã
ããã«ã¡ã¯Elyx0ãããªãã¯ããã§å©çšå¯èœãªã¢ãã€ã«çšã®ç§ã®ããã¹ããã©ã°ã€ã³ãè©Šãããšãã§ããŸãïŒ https ïŒ
ããã¯ããªãã®åé¡ã解決ããŸããïŒ
ããã«ã¡ã¯@JiDW ãç§ã¯ã€ãã«ãããä¿®æ£ããŸããã ç§ã¯è£žã®PIXI.jsã䜿çšããŠããã®ã§ãCocoonããããŸããããã¥ãŒã»ãã£ã³ãã¹ãæ£ããã»ããã¢ãããããŠããŸããã§ããã THX
@GillesVermeulen
ãããžã§ã¯ãã§é«DPIããã€ã¹ããµããŒãããããšãæ€èšããŠããã®ã§ã次ã®ããšãèããŠããŸãã
ãã£ã³ãã¹ã¯æ¡å€§çž®å°ãããŸããããããé åã¯æ¡å€§çž®å°ãããŸããã
ããã¯PixiJSã§è§£æ±ºãããŸãããïŒ ïŒäŸãã°ããã以é/æè¿ã®ããŒãžã§ã³ïŒ
ãã@tobireif ãããã ãšæããŸãã é·ãéåé¡ã¯ãããŸããã§ããããããã¯Pixiv2ã®å Žåã§ãã æ°ããããŒãžã§ã³ã§ãåé¡ã¯ãªããšæããŸãã
@GillesVermeulenããã§ããïŒ ããããšãïŒ
ãã£ã³ãã¹ïŒpixi.jsãªãïŒã䜿çšããŠç§ã®ããã«åããCSSã¡ãœãã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;
}
ããã誰ããå©ããããšãã§ããå Žåã«åããŠã
ãã ïŒ
ååã®ãããžã§ã¯ãã§åé¡ãçºçããŸããïŒ http ïŒ
ãªããžã§ã¯ãã§é©åãªãã¯ã»ã«è§£å床ãååŸã§ããŸãã...ãããã¬ã³ãã©ãŒã«é¢ãããã®ãªã®ãããã¯ã¹ãã£ãçæããã°ã©ãã£ãã¯ã¹ã«é¢ãããã®ãªã®ãããããŸããããã©ã¡ãã®å Žåãwindow.devicePixelRatioãè¿œå ããŸãããã衚瀺ãããŸãã圱é¿åãæã€ããšã
ãã®ã¹ã¬ããã¯ãéããããåŸã«æè¿ã®ã¢ã¯ãã£ããã£ããªããããèªåçã«ããã¯ãããŠããŸãã é¢é£ãããã°ã«ã€ããŠã¯ãæ°ããåé¡ãéããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
ãã£ã³ãã¹ïŒpixi.jsãªãïŒã䜿çšããŠç§ã®ããã«åããCSSã¡ãœãã
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; }
ããã誰ããå©ããããšãã§ããå Žåã«åããŠã