Pixi.js: ์ œ์•ˆ: ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๊ฐœ์„ 

์— ๋งŒ๋“  2020๋…„ 04์›” 05์ผ  ยท  27์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pixijs/pixi.js

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” Pixi์˜ ํ…์ŠคํŠธ ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ฐ€์žฅ ์ข‹์€ ์ „๋‹ฌ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์„œ๋ช…๋œ ๊ฑฐ๋ฆฌ ํ•„๋“œ: ์ด ๊ธฐ์ˆ ์€ ํ…์ŠคํŠธ๋ฅผ ํ…์Šค์ฒ˜๋กœ ๋ Œ๋”๋งํ•˜๊ณ (Canvas 2D API ์‚ฌ์šฉ) ๊ฑฐ๋ฆฌ ๋ณ€ํ™˜์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๊ฑฐ๋ฆฌ ๋ณ€ํ™˜์€ ์ถœ๋ ฅ ํ…์Šค์ฒ˜์˜ ๊ฐ ํ”ฝ์…€ ๊ฐ’์„ ์ž…๋ ฅ ํ…์Šค์ฒ˜์— ์žˆ๋Š” ํ…์ŠคํŠธ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์œค๊ณฝ์„ ๊นŒ์ง€ ํ•ด๋‹น ํ”ฝ์…€์˜ ๊ฑฐ๋ฆฌ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. pixi-sdf-text๊ฐ€ ์˜ˆ์ž…๋‹ˆ๋‹ค: https://github.com/PixelsCommander/pixi-sdf-text

  • VTM: ๋ฒกํ„ฐ ํ…์Šค์ฒ˜ ๋งต์€ ํ…์Šค์ฒ˜์˜ ํ”ฝ์…€ ์ˆ˜์ค€์—์„œ ๊ณก์„  ๋ถˆ์—ฐ์†์„ฑ์„ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค.

  • ์ •ํ™•ํ•œ ๋ฒ ์ง€์–ด ๊ณก์„  ๋ Œ๋”๋ง: ๊ณก์„ ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํ…Œ์…€๋ ˆ์ด์…˜ํ•˜์—ฌ ๊ธ€๊ผด์„ "์žˆ๋Š” ๊ทธ๋Œ€๋กœ" ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๊ณก์„ ์€ ํŠน์ˆ˜ ํ”„๋ž˜๊ทธ๋จผํŠธ ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค(๊ณก์„  ์ƒ˜ํ”Œ๋ง์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ  ์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ GPU์—์„œ ์ •ํ™•ํ•˜๊ฒŒ ๋ Œ๋”๋ง๋จ): https://www.microsoft.com/en-us/research/wp-content/uploads /2005/01/p1000-loop.pdf. ์ด์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„ ์— ๋Œ€ํ•œ ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://codepen.io/sukantpal/pen/GRJawBg?editors=0010

@bigtimebuddy ์™€ ์ €๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋…ผ์˜

  • SDF์—๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ์ง€๋„์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์ฑ„๋„ SDF๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค(๋Ÿฐํƒ€์ž„์— ์ƒ์„ฑํ•˜๋ ค๋Š” ๊ฒฝ์šฐ).

  • VTM์€ ๊ธ€๊ผด๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

  • ์ •ํ™•ํ•œ ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ทธ๋ž˜ํ”ฝ์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธ€๊ผด์„ ๊ฒฝ๋กœ๋กœ ๋ Œ๋”๋งํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@eXponenta ์ œ๋ฐœ ๋„ˆ๋ฌด ์ ๋Œ€์ 

๋ชจ๋“  27 ๋Œ“๊ธ€

ํ•ต์‹ฌ์ด ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋ฌด๊ฑฐ์šด ํŒจํ‚ค์ง€์ด๊ณ  ๋ฐ˜๋“œ์‹œ ๋ฉ”์ธ ํŒจํ‚ค์ง€ ์™ธ๋ถ€์—์„œ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ•ต์‹ฌ ํŒ€์€ ๊ตฌํ˜„์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Pixi SDF๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค.

Plz, PIXI์—์„œ Phaser๋ฅผ ๋งŒ๋“ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ข€ ๋” ๋งฅ๋ฝ์„ ์ฃผ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” @SukantPal ์—๊ฒŒ ์„œ๋กœ ๋‹ค๋ฅธ ์ ˆ์ถฉ์•ˆ์ด ์žˆ๋Š” ๋Œ€์ฒด Text/BitmapText ์ ‘๊ทผ ๋ฐฉ์‹์„ ์—ฐ๊ตฌํ•˜๋„๋ก ์š”์ฒญ

์—ฌ๊ธฐ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ œ3์ž ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ ์ ˆํ•  ์ˆ˜ ์žˆ๊ณ , ์ผ๋ถ€๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ์ง€๋งŒ ๋ฒˆ๋“ค๋กœ ์ œ๊ณต๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ถ€๋Š” ํ˜„์žฌ API๋ฅผ ๋Œ€์ฒด/์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์œ ์ตํ•œ ํ…์ŠคํŠธ ๋ Œ๋”๋ง ์ ‘๊ทผ ๋ฐฉ์‹์ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜์ง€๋งŒ BitmapText์— ๋Œ€ํ•œ ์ ˆ์ถฉ์•ˆ์ด ๋” ์ ์€ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ํ…์ŠคํŠธ ํ‘œ์‹œ ๊ฐœ์ฒด๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ช‡ ๊ฐ€์ง€ ๊ธฐ์ค€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์šฐ์ˆ˜ํ•œ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ - ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๋ฐ ํ…์ŠคํŠธ ๋ณ€๊ฒฝ ๋น„์šฉ์ด ์ €๋ ดํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ - RAM ์‚ฌ์šฉ๋Ÿ‰์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์€ ์ข…์†์„ฑ - ์ข…์†์„ฑ ํ’‹ํ”„๋ฆฐํŠธ ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ž‘์Šต๋‹ˆ๋‹ค.
  • ๋›ฐ์–ด๋‚œ ์ถฉ์‹ค๋„ - ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์—ฐํ•œ ์Šคํƒ€์ผ๋ง - ํš, ๊ทธ๋ฆผ์ž, ๊ทธ๋ผ๋””์–ธํŠธ ์ง€์›
  • ํฐ ๊ธ€๋ฆฌํ”„ ์–ธ์–ด ์ง€์› - ์˜ˆ, ์ค‘๊ตญ์–ด, ์ผ๋ณธ์–ด, ํ•œ๊ตญ์–ด
  • ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜ - Context2D์™€ ํ•จ๊ป˜ ์ž‘๋™

| | ์„ฑ๋Šฅ | ๋ฉ”๋ชจ๋ฆฌ | ์ข…์†์„ฑ | ์ถฉ์‹ค๋„ | ์Šคํƒ€์ผ๋ง | ํ•œ์ค‘์ผ | ์ปจํ…์ŠคํŠธ 2d |
|--|--|--|--|--|--|--|--|
|ํ…์ŠคํŠธ| ๐Ÿ‘Ž | ๐Ÿ‘Ž | ๐Ÿ‘ | ๐Ÿ‘ | ๐Ÿ‘ | ๐Ÿ‘ | ๐Ÿ‘ | ๐Ÿ‘ |
|๋น„ํŠธ๋งตํ…์ŠคํŠธ| ๐Ÿ‘ | ๐Ÿ‘Ž | ๐Ÿ‘ | ๐Ÿ‘Ž | ๐Ÿ‘Ž | ๐Ÿ‘Ž | ๐Ÿ‘ |

ํ™•์ธ.
fragment interpolation ๋ฐ ๋ชจ๋“  ๋น„๋„ค์ดํ‹ฐ๋ธŒ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ถ”๊ฐ€ ์…ฐ์ด๋”์™€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ผ๊ด„ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฐฉ์ง€๋ฉ๋‹ˆ๋‹ค.
  2. ๋ณ€๊ฒฝ ์‹œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(p.3).
  3. ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • TTF๋ฅผ ์™„์ „ํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•ด์•ผ ํ•˜๋Š” ์–ธ์–ด์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๊ธ€๋ฆฌํ”„์— ๋Œ€ํ•ด ๊ธ€๋ฆฌํ”„ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๊ณ  ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. SWF์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
    ์‹œ์Šคํ…œ ๊ธ€๊ผด์„ ๋ชจ์–‘์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ์–ธ์–ด๋ณ„ ๊ทœ์น™์€ ltr/rtl, ํžŒ๋””์–ด/์•„๋ž ๋ฌธ์ž ์—ฐ๊ฒฐ ๊ทœ์น™ ๋“ฑ ๋ Œ๋” ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ํŒ€์—์„œ lib ํŒ€์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” 10% ๋ธŒ๋ผ์šฐ์ €๋ฅผ lib๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Unity๋Š” ์•„์ง ์ œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  5. ์ง€์› ์Šคํƒ€์ผ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” ๋ฌด๊ฑฐ์šด ์…ฐ์ด๋”. ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ Œ๋”๋งํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ Œ๋”๋ง ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    ๋ฌผ๋ก  ํ…์Šค์ฒ˜๋กœ ์บ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@eXponenta

  • ํ…์ŠคํŠธ๋Š” ์ผ๊ด„ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ž˜ํ”ฝ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ํ…์ŠคํŠธ ๊ตฌํ˜„์€ ๊ฐ ๊ธ€๋ฆฌํ”„๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค(ํ•œ ๋ฌธ์ž๊ฐ€ ์—ฌ๋Ÿฌ PIXI.Text์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ). ๊ธ€๋ฆฌํ”„๋‹น ํ•˜๋‚˜์˜ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ๊ธ€๊ผด ํฌ๊ธฐ๋กœ ์บ์‹œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • ๊ธฐํ•˜ํ•™์€ ๋ง๋งˆ๋‹ค ๋‹ค์‹œ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ์˜ ๋ฌธ์ž๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ธ€๋ฆฌํ”„ ๊ธฐํ•˜ํ•™ ํ…Œ์ด๋ธ”์—์„œ ๋‹ค์‹œ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€ํ˜•์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์œ ๋‹ˆํผ ํ•˜๋‚˜๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ๊ธ€๊ผด ๊ตฌ๋ฌธ ๋ถ„์„์„ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํ•˜ํ•™์œผ๋กœ์˜ ๋ณ€ํ™˜์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธ€๋ฆฌํ”„ ์—ฐ๊ฒฐ ๊ทœ์น™์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

  • ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ๋Œ€ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ - ๋ฌธ์ž๋ฅผ ๋ฐ˜๋Œ€๋กœ ํ•˜๋ ค๋ฉด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋Ÿฌ ์ด๋ฏธ์ง€๋ฅผ ์›ํ•˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ scale.x=-1 ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ์Šคํƒ€์ผ์€ ์…ฐ์ด๋”์— ๋” ๋งŽ์€ ์ธ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๊ธ€๋ฆฌํ”„๋ฅผ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ํ…์Šค์ฒ˜์— ์บ์‹ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค _์ ์€_ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • API์—์„œ ๊ฐ€์ ธ์˜จ ๊ธ€๊ผด ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์บ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

U ๋งค์šฐ ์ˆœ์ง„ํ•œ:

  1. ๊ธ€๋ฆฌํ”„์—๋Š” ๋ฒ ์ง€์–ด ์•ต์ปค, ๊ทธ๋ฆผ์ž ๊ฐ’, ๊ทธ๋ž˜๋””์–ธํŠธ ์•ต์ปค ...์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์†์„ฑ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ๊ท ์ผํ•˜๊ฒŒ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€ ์ผ๊ด„ ์ฒ˜๋ฆฌ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ, ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ, ๊ทธ๊ฒƒ๋“ค์˜ ํ˜ผํ•ฉ์€ ๋งค์šฐ ๋ณต์žกํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
    PDF ๋ Œ๋”๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์—ด๋ฆฐ ๋ฌธ์ œ:
    https://github.com/asciidoctor/asciidoctor-pdf/issues/175
  3. ํžŒ๋””์–ด ๋ฌธ์ œ(๋ฐ ์œ ์‚ฌํ•œ ์–ธ์–ด)
    https://docs.microsoft.com/en-us/typography/opentype/spec/gsub

isMobile ๋˜๋Š” resource-loader ์™€ ๋™์ผํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ ์™ธ๋ถ€ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ฝ”์–ด๋Š” ๊นจ๋—ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์™ธ๋ถ€ ์ข…์†์„ฑ.

@eXponenta

  • ํ˜ผํ•ฉ ๋ ˆ์ด์•„์›ƒ(ltr ๋ฐ rtl ๊ฒฐํ•ฉ)์€ ๊ณ ์„ฑ๋Šฅ๋ณด๋‹ค ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ํ˜„์žฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ๋ฐ”๋‚˜๊ฐ€๋ฆฌ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋””์–ธํŠธ ์Šคํ†ฑ๊ณผ ๊ฐ™์€ ํŠน์ˆ˜ ๊ธฐ๋Šฅ๋„ ํด๋ฐฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ํ…์Šค์ฒ˜๊ฐ€ ์—†์œผ๋ฉด ๋ฐฐ์น˜๊ฐ€ ๋” ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CanvasGraphicsRenderer ์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ. ์œ  ์Šน๋ฆฌ. ํ•ด. ๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ ์™ธ๋ถ€์—์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„๋ณด๊ณ  ๊ทธ๋•Œ ์šฐ๋ฆฌ๊ฐ€ํ•ด์•ผ ํ•  ์ผ์„ ๊ฒฐ์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํฐ ์˜์กด์„ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

@eXponenta ์ œ๋ฐœ ๋„ˆ๋ฌด ์ ๋Œ€์ 

@eXponenta ์ง€๊ธˆ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ

์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์บ”๋ฒ„์Šค 2D(ํ˜„์žฌ์™€ ๋™์ผ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ธ€๋ฆฌํ”„๋ฅผ ๋ณ„๋„๋กœ ๋ Œ๋”๋งํ•˜๊ณ  ์•„ํ‹€๋ผ์Šค์— ์บ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„ํ‹€๋ผ์Šค๋Š” ๋ชจ๋“  PIXI.Text ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ์ „์—ญ์ ์œผ๋กœ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ธ€๋ฆฌํ”„ + ๊ธ€๊ผด ํฌ๊ธฐ + ๊ธ€๊ผด ์Šคํƒ€์ผ ์กฐํ•ฉ์€ ๋ณ„๋„๋กœ ์บ์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ํ•ต์‹ฌ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

์—ฌ๋Ÿฌ๋ถ„, ํ…Œ์ด๋ธ”์—์„œ ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋“ฃ๊ฒŒ ๋˜์–ด ์ •๋ง ๊ธฐ์ฉ๋‹ˆ๋‹ค. @eXponenta , ์ผ์œผํ‚ค๋ฉฐ ๊ฑด์„ค์ ์œผ๋กœ ์œ ์ง€ํ•ฉ์‹œ๋‹ค. ๋‹น์‹ ์€ ๋ถ„๋ช…ํžˆ ์ƒˆ๋กœ์šด ์ œ์•ˆ๋œ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ข‹์€ ํ†ต์ฐฐ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ œ๊ธฐ๋œ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๊ณ  ์นœ๊ทผํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ์‹œ๋‹ค. :)

๋ฌธ์ž๋กœ ์—ฌ๊ธฐ ๋‚ด 2์„ผํŠธ(ํŽœ์Šค?)..

๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋น„ํŠธ๋งต ํ…์ŠคํŠธ์˜ ์†๋„์™€ ์„ฑ๋Šฅ์„ ์–ป๋Š” ๊ฒƒ์ด์ง€๋งŒ ์‹ค์ œ๋กœ ๋ฏธ๋ฆฌ ๋น„ํŠธ๋งต ๊ธ€๊ผด์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›ํ•œ๋‹ค๋ฉด ๋™์  ๋น„ํŠธ๋งต ํ…์Šค์ฒ˜ ๊ตฌ์ถ•!

๋™์  ๋น„ํŠธ๋งต ๊ธ€๊ผด

ํ”„๋กœ

  • ๋น„ํŠธ๋งต ๊ธ€๊ผด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค! ๊ทธ ์žฅ๋ฒฝ์„ ์—†์• ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ํ…์ŠคํŠธ ํฌ๊ธฐ ํ…์Šค์ฒ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์บ”๋ฒ„์Šค์™€ ํ•จ๊ป˜ ์ž‘๋™
  • ๊ฐ ๊ธ€๋ฆฌํ”„์˜ ์„ฑ๋Šฅ์„ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ‹์ง„ ํšจ๊ณผ๋ฅผ ๋งŽ์ด!
  • API๋Š” ์•ฝ๊ฐ„๋งŒ ์กฐ์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
const textStyle = new TextStyle({
    font:'comic sans',
    fill:'bright green'
});


const bitmapFont = new BitmapFont(textStyle);

๋‹จ์ 

  • ๋น„ํŠธ๋งต ํ˜„์žฌ ๋น„ํŠธ๋งต ๊ธ€๊ผด์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๋‹จ์ :P
  • ํ…์Šค์ฒ˜ ์•„ํ‹€๋ผ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๊นŒ?

    • ์ด๊ฒƒ์€ ์ž ์‹œ ํ›„ ์•ˆ์ •ํ™”๋˜๊ณ  ์„ธ์…˜ ๊ฐ„์— ์บ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

    • ํ˜„์žฌ ํ…์ŠคํŠธ๋Š” ํ”„๋ ˆ์ž„์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํ…์Šค์ฒ˜๋ฅผ ์—…๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ž‘์—…์„ ๋œ ์ˆ˜ํ–‰ํ• ๊นŒ์š”?

์•„์ด๋””์–ด

  • localstorage์—์„œ ์ƒ์„ฑ๋œ ํ…์Šค์ฒ˜๋ฅผ ์บ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค์Œ ๋ฐฉ๋ฌธ์„ ์œ„ํ•ด?
  • ์‚ฌ์šฉ๋œ ๋ฌธ์ž๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ํ…์Šค์ฒ˜๊ฐ€ ํ•„์š”ํ•œ ๋งŒํผ ์ปค์ง‘๋‹ˆ๋‹ค. ์ง„ํ–‰ํ•˜๋ฉด์„œ ์—…๋ฐ์ดํŠธ
  • ์ถ”๊ฐ€๋กœ ๋ฉ‹์ง„ ํšจ๊ณผ(์œค๊ณฝ, ๊ทธ๋ฆผ์ž ๋“ฑ)๋ฅผ ์œ„ํ•ด ์ด ํ…์Šค์ฒ˜์— ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ๊ธ€๋ฆฌํ”„๋ฅผ ์Šคํ”„๋ผ์ดํŠธ๋กœ ๋งŒ๋“ค์ง€ ์•Š์Œ์œผ๋กœ์จ ๋น„ํŠธ๋งต ๊ธ€๊ผด์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ž์œ„๋Œ€
SDF๋Š” ์œ„์˜ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ํ™•์žฅ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ํ…์Šค์ฒ˜๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ• ๊นŒ์š”? ์Šˆํผ ์  ํ‚ค๊ฐ€ ๋ ๊นŒ์š”? ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ํฌ๊ฒŒ ๋Š˜๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ด์ƒ์ ์œผ๋กœ๋Š” ์ˆจ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค. SDF ํ•„๋“œ๋ฅผ ์™ธ๋ถ€์—์„œ ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๊ฒฝ์šฐ ์ง‘์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

const textStyle = new TextStyle({
    font:'comic sans',
    fill:'bright green',
    sdf:true, <----- how sweet would this be, maybe rename to more user friendly like 'cleanEdges'
});

const sdfFont = new BitmapFont(textStyle);

์ •ํ™•ํ•œ ๋ฒ ์ง€์–ด ๊ณก์„  ๋ Œ๋”๋ง

์ด๊ฒƒ์€ ํ™•์‹คํžˆ ํฅ๋ฏธ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ณผ๊ฑฐ์— ์ด๊ฒƒ์„ ์กฐ์‚ฌํ–ˆ๊ณ  ๋ Œ๋”๋ง ๋ฃจํ”„์— ๋„์ž…๋œ ์…ฐ์ด๋” ์Šค์œ„์น˜์™€ ํ•„์š”ํ•œ ์ถ”๊ฐ€ ํ…Œ์…€๋ ˆ์ด์…˜์ด ํฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ด๋ผ๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. @SukantPal , ๋‹น์‹ ์€ ์ง€๊ธˆ ์ €๋ณด๋‹ค ์ด ์•„์ด๋””์–ด์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ œ ๊ฑฑ์ •์— ๋Œ€ํ•ด ์˜๊ฒฌ์„ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ์˜ ์ƒ๊ฐ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ๊ฐ€์น˜๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ์š”?

ํ…์ŠคํŠธ์˜ ์‹ ๋‚˜๋Š” ์‹œ๊ฐ„ :D

SDF๋Š” ์œ„์˜ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ํ™•์žฅ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ ํ…์Šค์ฒ˜๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ• ๊นŒ์š”? ์Šˆํผ ์  ํ‚ค๊ฐ€ ๋ ๊นŒ์š”? ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ํฌ๊ฒŒ ๋Š˜๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

SDF ์ƒ์„ฑ์€ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ณ  ํŒจํ‚น ์‹œ๊ฐ„์ด ์žˆ์ง€๋งŒ(์•„ํ‹€๋ผ์Šค์—์„œ ๋‹ค๋ฅธ ๊ธ€๊ผด์„ ํŒจํ‚นํ•  ๋•Œ) ํด๋ผ์ด์–ธํŠธ์—์„œ ์บ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ๋ชจ๋“  ๋ณ€ํ˜•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ).
์บ”๋ฒ„์Šค (ํ—คํ—ค) ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/mapbox/tiny-sdf
๊ทธ๋Ÿฌ๋‚˜ SDF ์ปดํŒŒ์ผ์ด ์™„์ „ํžˆ ์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ๋•Œ ๊ธ€๋ฆฌํ”„ ๋ณ€๊ฒฝ).
์œ ์šฉํ•ด ๋ณด์ด์ง€๋งŒ MSDF์˜ ๊ฒฝ์šฐ ์ฑ„๋„๋‹น 3๋ฒˆ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ค ์™€์šฐ, ๊ทธ๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค! ์…ฐ์ด๋”๋„ ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฅด์ต์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

@GoodBoyDigital tiny-sdf ํŒจํ‚ค์ง€๋Š” ๋‹จ์ผ ์ฑ„๋„ ๊ฑฐ๋ฆฌ ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž‘์€ ๊ธ€๊ผด ํฌ๊ธฐ๋กœ ํ…์ŠคํŠธ๋ฅผ ์บ์‹œํ•˜๋ฉด ๋‚ ์นด๋กœ์šด ๋ชจ์„œ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ Œ๋”๋ง๋˜๋Š” ๋™์ผํ•œ ๊ธ€๊ผด ํฌ๊ธฐ๋กœ ์บ์‹ฑํ•˜์—ฌ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ผ ์ฑ„๋„ SDF ์ƒ์„ฑ๋„ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์ฑ„๋„ SDF๋Š” ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. Chumskly๊ฐ€ ๋ชจ์„œ๋ฆฌ๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์€ rtl ๋ฐ Ltr ๋ ˆ์ด์•„์›ƒ ํ˜ผํ•ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค( @eXponenta ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€์ ํ•œ ๋Œ€๋กœ). ํ•˜์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ๋‘ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ์บ์‹œ ํฌ๊ธฐ(๋ชจ๋“  ํ”ฝ์…€์ด ์•„๋‹Œ ์ •์ ์„ ์บ์‹ฑํ•จ), "์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ" ์„ค์ •์ด ๊บผ์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ(ํ…์ŠคํŠธ๋Š” ํ•ญ์ƒ ์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ตฌํ˜„์€ ์บ”๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 2D).

๋ฐ๋ชจ์™€ ๊ด€๋ จํ•˜์—ฌ ์ œ 2์ฐจ ๋ฒ ์ง€์–ด ๊ณก์„  ๋ฐ๋ชจ๋ฅผ ๋ณด์…จ์Šต๋‹ˆ๊นŒ? https://codepen.io/sukantpal/pen/GRJawBg?editors=0010

โ€”โ€”
๋‚˜์™€ @bigtimebuddy ๊ฐ€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์œผ๋กœ ๋…ผ์˜ํ•œ ๋˜ ๋‹ค๋ฅธ ์‚ฌํ•ญ์€ ์บ”๋ฒ„์Šค 2D๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ๊ธ€๋ฆฌํ”„๋ฅผ ํ…์Šค์ฒ˜์— ์บ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธ€๋ฆฌํ”„๋Š” ์ฟผ๋“œ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บ์‹œ ์•„ํ‹€๋ผ์Šค๋Š” ํ…์ŠคํŠธ ๊ฐ„์— ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์€ ํฐ ํ…์ŠคํŠธ๊ฐ€ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ์บ์‹œ๋˜๊ณ  ๋”ฐ๋ผ์„œ ๋งŽ์€ ํ…์ŠคํŠธ๊ฐ€ ๋ Œ๋”๋ง๋˜์ง€๋งŒ ๊ทธ ์ผ๋ถ€(PDF์˜ ํ˜„์žฌ ํŽ˜์ด์ง€์™€ ๊ฐ™์€)๋งŒ ํ‘œ์‹œ๋  ๋•Œ ํฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ฉ‹์ง„,

์˜ˆ, ํ˜„์žฌ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” rtl ๋˜๋Š” ltr์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ง€์ • ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๊ธฐ์ˆ ์ด ๋‚˜์ค‘์— ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ฒฐ์ •. ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์™€ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ์— ์ค‘์ ์„ ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ ์ง€์–ด ๋ฐ๋ชจ๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์ „์ฒด ๋ฌธ์žฅ์„ ๋ Œ๋”๋งํ•  ๋•Œ ์ˆจ๊ฒจ์งˆ ์ˆ˜ ์žˆ๋Š” ์ง„์ •ํ•œ ๋ณต์žก์„ฑ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ๋™์  ๋น„ํŠธ๋งต ๊ธ€๊ผด์— ๋Œ€ํ•ด ์“ด ๋‚ด์šฉ์€ ๊ธ€๋ฆฌํ”„ ์บ์‹ฑ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•œ ๋‚ด์šฉ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ ค๊ฐˆ ๋•Œ ํ™•์‹คํžˆ ์œ ์šฉํ•œ ๋ฃจํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!

์š”์•ฝํ•˜์ž๋ฉด:

๋ฒ ์ง€์–ด ๊ณก์„  ์†”๋ฃจ์…˜: ์ด๊ฒƒ์€ ์ข‹์€ ๊ฒฝ๋กœ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์–ด๋–ป๊ฒŒ ๋งž๋Š”์ง€ ํŒŒ์•…ํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ R&D๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๊ธ€๊ผด์˜ ๋™์  ๋น„ํŠธ๋งต ๊ธ€๊ผด: ์ด๊ฒƒ์€ API๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ™•์‹คํžˆ ํƒ์ƒ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” :D

๋‹จ์ผ ์ฑ„๋„ SDF ์ข‹์€ ๋‹ค์ค‘ ์ฑ„๋„ SDF๊ฐ€ ๋˜์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ ๋ฐ๋ชจ๋Š” ๊ฝค ์ข‹์•„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค! ํ…์ŠคํŠธ๊ฐ€ ์ž˜ ํ™•์žฅ๋˜๊ณ  ๊ธ€๊ผด๋‹น ํ•˜๋‚˜์˜ ํ…์Šค์ฒ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด ๊ฒฝ๋กœ๋„ ์กฐ์‚ฌํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!

@GoodBoyDigital ๋‚˜๋Š” ๋ฐ๋ชจ์— ๊ฝค ์ข‹์€ ํ…์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ฐพ์œผ๋ ค๋ฉด ๋ˆˆ์— ๋„๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Screen Shot 2020-04-06 at 1 34 29 PM

Screen Shot 2020-04-06 at 1 34 35 PM

์ƒ๋‹จ์˜ ํ…์ŠคํŠธ๋Š” ๋‚ ์นด๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ์ž๋ฆฌ๊ฐ€ ํ”๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ ๊ธ€๊ผด+(๊ธ€๊ผด ํฌ๊ธฐ์˜ ~12-15px ์ฐจ์ด) ์กฐํ•ฉ์€ ๋ณ„๋„๋กœ ์บ์‹œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”๋“ค๋ฆผ์ด ์ค‘์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ธ€๊ผด ํฌ๊ธฐ์—์„œ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด SDF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜๋„ ์ €์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค ๐Ÿ’ฏtbh!

๋ชจ๋‘ ์•ˆ๋…•.

์ €๋Š” Pixi์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์•„๋Š” ์ดˆ์‹ฌ์ž์ด์ง€๋งŒ, Pixi๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” GDevelop์˜ ์‚ฌ์šฉ์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  GDevelop์˜ PixiJS ๋ฐ ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๊ตฌํ˜„์„ ์œ„ํ•ด ์ž ์‹œ ๋™์•ˆ ์ด์— ๋Œ€ํ•ด ํŒŒ๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ๊ฐ€ ๋งŽ์€ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒŒ์ž„์— ์‹ค์ œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. (๋‚ด๊ฐ€ GDevelop์— ๊ฒŒ์‹œํ•œ ๋ฌธ์ œ์—์„œ ๋‚ด ์—ฐ๊ตฌ/์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/4ian/GDevelop/issues/1449 )

๋‚ด๊ฐ€ ์ฐพ์€ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋Š” ํ…์ŠคํŠธ์˜ ํฌ๊ธฐ ์กฐ์ • ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๊ณ  ํ…์ŠคํŠธ ํฌ๊ธฐ๋ฅผ ํ•ญ์ƒ 100%๋กœ ์œ ์ง€ํ•˜๊ณ  ๋Œ€์‹  ํ…์ŠคํŠธ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธ€๊ผด์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ํฌ๊ธฐ์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Pixi๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋˜๋Š” ์ฝ”๋“œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. https://codepen.io/Tazy/pen/wJVExB
์ด ์Šค๋ ˆ๋“œ์—์„œ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค: https://www.html5gamedevs.com/topic/29576-scalable-text-for-pixijs/

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ GDevelop์šฉ Pixi Text ํ™•์žฅ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ˜„์ƒ๊ธˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐฉ๋ฒ•์— ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์ง€๋งŒ sdf/msdf/etc์˜ ๋ชจ๋“  ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Silver-Streak ํ…์ŠคํŠธ ํ‘œ์‹œ ๊ฐœ์ฒด์— ์ ์šฉ๋œ ์ถ•์ฒ™์œผ๋กœ ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค๋ฉด ์„ฑ๋Šฅ ๋ฉด์—์„œ ์–ด๋–ป๊ฒŒ ๋” ๋‚˜์„๊นŒ์š”? SDF ํ•ญ๋ชฉ์€ ๋” ํฐ ๊ธ€๊ผด ํฌ๊ธฐ๋กœ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

@Silver-Streak ๋ฌผ๋ก , ๋‹น์‹ ์˜ ์ œ์•ˆ์€ _ํ’ˆ์งˆ_์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@Silver-Streak ๋ฌผ๋ก , ๋‹น์‹ ์˜ ์ œ์•ˆ์€ _ํ’ˆ์งˆ_์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์˜คํ•ดํ•˜์ง€ ์•Š๋Š” ํ•œ, ๊ธ€๊ผด ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ „์ฒด ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ Œ๋”๋Ÿฌ์—์„œ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„๊นŒ์š”? ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ €๋Š” Pixi์˜ ํฌ๊ธฐ ์กฐ์ •์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๊ด€ํ•ด์„œ๋Š” ๋งค์šฐ ํ‰๋ฒ”ํ•œ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ๊ธ€๊ผด์„ ๊ธฐ๋ณธ ํ•ด์ƒ๋„๋กœ ์œ ์ง€ํ•˜์ง€๋งŒ ํ…์ŠคํŠธ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋น ๋ฅผ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ด ์ดํ•ด๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์˜ณ์ง€ ์•Š๋‹ค๋ฉด, ์ฃผ์˜๋ฅผ ์‚ฐ๋งŒํ•˜๊ฒŒ ํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ์‚ฌ๊ณผํ•˜์‹ญ์‹œ์˜ค.

@Silver-Streak Scaling์€ ๋ณ€ํ™˜์œผ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ณ€ํ™˜ ํ–‰๋ ฌ์ด ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ํ–‰๋ ฌ์˜ ๋ฐฐ์œจ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ…์ŠคํŠธ๋Š” Canvas 2D API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์บ”๋ฒ„์Šค์— ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ™”๋ฉด์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์œจ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์บ”๋ฒ„์Šค์˜ ํ…์ŠคํŠธ๊ฐ€ ๋งคํ•‘๋˜๋Š” ํ™”๋ฉด ์ขŒํ‘œ๋งŒ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

์•„, ๋ง์ด ๋˜๋Š”๊ตฐ์š”. ๋ถˆํ–‰ํžˆ๋„ ์ œ ๋ฌธ์ œ๋Š” ๊ธ€๊ผด์˜ ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์ด ํฌ๊ธฐ๊ฐ€ ์กฐ์ •๋œ ํ›„ ํ๋ฆฟํ•ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋” ๋งŽ์ง€๋งŒ ์„ฑ๋Šฅ๋„ ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ ํ’ˆ์งˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋ ค๋Š” ๋งˆ์Œ๋„ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์™€ ํ•จ๊ป˜ ์ด์•ผ๊ธฐํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@Silver-Streak ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ’ˆ์งˆ ์šฐ์„  ํ…์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ WebGL์—์„œ๋„ ์–ด๋ ต์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ž์ฒด์ ์œผ๋กœ ๋ฉ”์‰ฌ๋ฅผ ๋งŒ๋“ค์–ด ํ…์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ธ€๊ผด ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ์ •์  ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ  ํ…Œ์…€๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •์ ์€ ๋ฉ”์‰ฌ๋ฅผ ํ†ตํ•ด ๋ Œ๋”๋ง๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋†’์€ ์ถ•์ฒ™์—์„œ๋Š” ์•ฝ๊ฐ„์˜ "๊ฐ€์žฅ์ž๋ฆฌ"๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ถ๊ทน์ ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ์‚ผ๊ฐํ˜•์œผ๋กœ ๋ Œ๋”๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋” ๋†’์€ ํ’ˆ์งˆ์„ ์œ„ํ•ด ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด์•ผ๊ธฐํ•œ "์ •ํ™•ํ•œ ๋ฒ ์ง€์–ด ๊ณก์„ " ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์…ฐ์ด๋”๋Š” ๊ณก์„ ์„ ์‚ผ๊ฐํ˜•์ด ์•„๋‹Œ ๊ณก์„ ์œผ๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ๋„์›€์ด ํ•„์š”ํ•˜์‹œ๋ฉด ์ œ๊ฐ€ ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. :)

@SukantPal ์ €๋Š”

๊ทธ๋Ÿฌ๋‚˜ ๊ฒŒ์‹œ๋ฌผ์˜ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด Bountysource์—์„œ๋„ ์ด์— ๋Œ€ํ•œ ํ˜„์ƒ๊ธˆ์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋” ์ด์ƒ ํ—ค๋“œ์ŠคํŽ˜์ด์Šค๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Pixi์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ๊นŠ์€ ๋Œ€ํ™”๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๊ณ  ๋‚ด ์ œ์•ˆ์ด ์ƒ๊ฐ๋งŒํผ ์ •ํ™•ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@Silver-Streak ์ฝ”๋กœ๋‚˜ ์‹œ์ฆŒ์— ์ž˜ํ• ๊ฒŒ ์—†์œผ๋‹ˆ ํ•œ๋ฒˆ ๋ด์•ผ๊ฒ ๋‹ค

์ด๊ฒƒ์ด ๋‹ซํžŒ ์Šค๋ ˆ๋“œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ ํ…์ŠคํŠธ ๋ Œ๋”๋ง์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Pixi v5์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” msdf ๊ตฌํ˜„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ์Šต๋‹ˆ๋‹ค. https://github.com/cjsjy123/pixi-msdf-text-v5 ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์–ธ๊ธ‰ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋Š” ํ™•์‹คํžˆ ๋‹ค์‹œ ์—ด๋ฆฌ๊ณ  ์œ ์ง€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ๊ฐ€์žฅ ์ž์ฃผ ์ฐพ๋Š” ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œํ•œ ์ผ์ข…์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ž์ฃผ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰