Pixi.js: λ Œλ”λŸ¬μ˜ 해상도 λ³€κ²½

에 λ§Œλ“  2017λ…„ 03μ›” 06일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: pixijs/pixi.js

λ Œλ”λŸ¬μ˜ 해상도λ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ? renderer.resolution = window.devicePixelRatioλ₯Ό μ‹œλ„ν–ˆμ§€λ§Œ 화면이 ν°μƒ‰μœΌλ‘œ κΉœλ°•μž…λ‹ˆλ‹€.

πŸ€” Question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ„€, κ·Έλ ‡μŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— κ·Έ κΈ°λŠ₯을 λ§Œλ“€ κ²ƒμ΄μ§€λ§Œ μ§€κΈˆμ€ μž‘λ™ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

renderer.resolution = 2;
renderer.rootRenderTarget.resolution = 2;
renderer.resize(w-1, h);
renderer.resize(w, h);

λͺ¨λ“  ν•„ν„° 해상도λ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ‹­μ‹œμ˜€.

λͺ¨λ“  16 λŒ“κΈ€

λ‚΄κ°€ 생각 ν•΄λ‚Έ κ°€μž₯ 쒋은 μž„μ‹œ ν•΄κ²° 방법은 λ Œλ”λŸ¬λ₯Ό νŒŒκ΄΄ν•˜κ³  μž¬μƒμ„±ν•˜μ—¬ autoDetectRenderer에 μƒˆ 해상도λ₯Ό μ „λ‹¬ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이것은 μž‘λ™ν•˜μ§€λ§Œ μ•„λ§ˆλ„ 그것을 μˆ˜ν–‰ν•˜λŠ” κ°€μž₯ 효율적인 방법은 μ•„λ‹™λ‹ˆλ‹€. λ˜ν•œ λ Œλ”λŸ¬λ₯Ό 반볡적으둜 νŒŒκ΄΄ν•˜κ³  λ‹€μ‹œ λ§Œλ“œλŠ” 데 μ—¬μ „νžˆ λ¬Έμ œκ°€μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. # 2233

μΆ”κ°€ μ²˜λ¦¬λŸ‰κ³Ό λ°λ“œ λ¦¬μ†ŒμŠ€λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” renderer.setResolutionκ³Ό 같은 κ°„λ‹¨ν•œ ν•¨μˆ˜ 호좜이 μžˆμ–΄μ•Όν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @jaspervaz! 이것에 λŒ€ν•œ μ‚¬μš© 사둀가 κΆκΈˆν•˜μ‹­λ‹ˆκΉŒ?
건배!

λ„€, κ·Έλ ‡μŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— κ·Έ κΈ°λŠ₯을 λ§Œλ“€ κ²ƒμ΄μ§€λ§Œ μ§€κΈˆμ€ μž‘λ™ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

renderer.resolution = 2;
renderer.rootRenderTarget.resolution = 2;
renderer.resize(w-1, h);
renderer.resize(w, h);

λͺ¨λ“  ν•„ν„° 해상도λ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ‹­μ‹œμ˜€.

그리고 μƒν˜Έ μž‘μš© ν”ŒλŸ¬κ·ΈμΈ 해상도도 μ—…λ°μ΄νŠΈν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ‹­μ‹œμ˜€.

λΏ‘ 빡뀨

μ •ν™•νžˆ, ν™•λŒ€ / μΆ•μ†Œκ°€ λ³€κ²½λ©λ‹ˆλ‹€. 그게 μ œκ°€ μ›ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. :)
μ§€κΈˆμ€ "renderer.screen"이 논리적 μ’Œν‘œμ—μ„œ ν™”λ©΄μ˜ μ‚¬κ°ν˜•μ΄κ³  "renderer.view"κ°€ μΊ”λ²„μŠ€μ΄λ―€λ‘œ λ„ˆλΉ„μ™€ 높이에 해상도λ₯Ό κ³±ν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

두 λ Œλ”λŸ¬μ—μ„œ μž‘λ™ν•˜λ„λ‘ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 ν™•μΈν•˜μ‹­μ‹œμ˜€.

if (renderer.rootRenderTarget) { renderer.rootRenderTarget.resolution = newResoultion; }

-
λ˜ν•œ λ‹€μŒ 쀄 없이도 λ™μΌν•˜κ²Œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν™•λŒ€ / μΆ•μ†Œν•˜λ©΄ 해상도 와 μ°½ 크기가 λͺ¨λ‘ λ³€κ²½λ˜κΈ° λ•Œλ¬Έμ— μƒκ°ν•˜μ§€λ§Œ λ‹€λ₯Έ μ‚¬μš© μ‚¬λ‘€μ—μ„œ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

renderer.resize(w-1, h);

그래, λ‚œ λ™μ˜.

@ivanpopelyshev ν™”λ©΄ 크기λ₯Ό μ‘°μ •ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
방법을 μ‚¬μš©ν•˜λ©΄ μΊ”λ²„μŠ€κ°€ νλ €μ§‘λ‹ˆλ‹€.
λ‚΄ 방법 해상도λ₯Ό μ‚¬μš©ν•˜λ©΄ 20보닀 클 수 μ—†μŠ΅λ‹ˆλ‹€.

https://jsfiddle.net/starCoding/p49u34hd/8/

@starInEcust μ™œ 20 개 μ΄μƒμ˜ 해상도가 ν•„μš”ν•œκ°€μš”? ν•΄μƒλ„λŠ” 크기 쑰정이 μ•„λ‹ˆλΌ λΈŒλΌμš°μ € ν™•λŒ€ / μΆ•μ†Œμž…λ‹ˆλ‹€. μŠ€μΌ€μΌμ€ λ¬΄λŒ€ λ³€ν™˜μ˜ μΌλΆ€μž…λ‹ˆλ‹€.

@ivanpopelyshev λ Œλ”λŸ¬λ₯Ό ν™•λŒ€ν•˜κ³  ν…μŠ€νŠΈμ™€ svg 그림이 μ™œκ³‘λ˜μ§€ μ•Šλ„λ‘ μœ μ§€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

@starInEcust μ €λŠ” 배율과 κΈ€κΌ΄ 크기λ₯Ό μˆ˜λ™μœΌλ‘œ μ‘°μ •ν•˜μ—¬ μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ μ†”λ£¨μ…˜λ„ μžˆμŠ΅λ‹ˆλ‹€. SDF 글꼴을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. https://github.com/PixelsCommander/pixi-sdf-text

@ivanpopelyshev SVGλŠ” μ–΄λ–»μŠ΅λ‹ˆκΉŒ? 멋진 μ• λ‹ˆλ©”μ΄μ…˜μœΌλ‘œ ν…μŠ€νŠΈ νŽΈμ§‘κΈ°λ₯Ό λ§Œλ“€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 인쇄 λ―Έλ¦¬λ³΄κΈ°μ—μ„œ ν™•λŒ€ 및 μΆ•μ†Œκ°€ κ°€λŠ₯ν•˜μ§€λ§Œ μ‘°νŒμ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
그리고 해상도 ν™•λŒ€ μ‚¬μš©μ— λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

그것은 pixi의 맀우 νŠΉμ΄ν•œ μ‚¬μš© μ‚¬λ‘€μž…λ‹ˆλ‹€. "stage.scale"을 톡해 ν™•λŒ€ / μΆ•μ†Œλ₯Ό λ³€κ²½ν•˜κ³  전체 λ Œλ”λŸ¬μ˜ 해상도가 μ•„λ‹Œ SVG 및 ν…μŠ€νŠΈμ˜ 해상도 만 μ‘°μ •ν•΄μ•Όν•©λ‹ˆλ‹€. κ·€ν•˜μ˜ 경우 λ Œλ”λŸ¬μ˜ ν™”λ©΄ 크기가 κ³ μ •λ˜μ–΄ 있고 해상도λ₯Ό λ³€κ²½ν•˜λ©΄ μΊ”λ²„μŠ€ 크기가 λ„ˆλ¬΄ 컀지면 16k x 16k ν”½μ…€ ν¬κΈ°κ°€λ©λ‹ˆλ‹€!

λ‚˜λŠ” pixiμ—μ„œ SVGλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— 해상도λ₯Ό μ‘°μ •ν•˜λŠ” 방법을 λͺ¨λ¦…λ‹ˆλ‹€. :)

λŒ€λ‹¨νžˆ κ°μ‚¬ν•©λ‹ˆλ‹€!이 μ§ˆλ¬Έμ— λŒ€ν•΄ λ…Όμ˜ν•˜κΈ° μœ„ν•΄ 문제λ₯Ό μ—΄μ–΄μ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€ :(

λ‹΅λ³€ 된 것 κ°™μœΌλ―€λ‘œμ΄ 문제λ₯Ό μ’…λ£Œν•˜λ €κ³ ν•©λ‹ˆλ‹€. λ‹€λ₯Έ 질문이 있으면 μ–Έμ œλ“ μ§€ λ‹€λ₯Έ 문제λ₯Ό μ—΄μ–΄λ³΄μ„Έμš”!

이 μŠ€λ ˆλ“œλŠ” λ‹«νžŒ ν›„ 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ μž κ²ΌμŠ΅λ‹ˆλ‹€. κ΄€λ ¨ 버그에 λŒ€ν•œ μƒˆ 문제λ₯Όμ—¬μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰