์ œ๋ชฉ ๊ธ€์ž์ˆ˜์ œํ•œ์ด ์งง๋„ค


Stippling, ํ˜น์€ Dither Transparency

์Šคํ‹ฐํ”Œ๋ง, ํ˜น์€ ๋””๋” ํŠธ๋žœ์ŠคํŒจ๋Ÿฐ์‹œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด๋ฅธ๋ฐ” ๊ฐ€์งœ ํˆฌ๋ช…๋„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•จ


๊ทธ๋ž˜์„œ ๊ทธ๊ฒŒ ๋Œ€์ฒด ๋ญ๋ƒ? ํ•˜๋ฉด



์‚ฌ์ง„ ์ถœ์ฒ˜ :ย https://ocias.com/blog/unity-stipple-transparency-shader/


์–ด๋””์„ ๊ฐ€ ํ•œ๋ฒˆ์ฏค ๋ดค์„๋ฒ•ํ•œ ๊ทธ๋Ÿฐ๊ฒƒ

์ด๊ฑฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์ž๊ธฐ ๋งˆ์Œ๋Œ€๋กœ ์–ด๋А์ •๋„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๋„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•œ๋‹ค




์ฝ”๋“œ ์ถœ์ฒ˜ :ย https://gist.github.com/clydeshaffer/e538c19175afa4419bfbbb9bbe1b7fd3

์…ฐ์ด๋” ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค


์šฐ์„  ์œ ๋‹ˆํ‹ฐ ์—์…‹ ํด๋”์—์„œ Create > Shader > Standad Surface Shader ํ•ญ๋ชฉ์„ ๋ˆŒ๋Ÿฌ ์…ฐ์ด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“  ํ›„

์ด๋ฆ„์„ ์›ํ•˜๋Š”๋Œ€๋กœ ์ ๋‹นํžˆ ์ง“๋Š”๋‹ค

์ถœ์ฒ˜์˜ ์ฝ”๋“œ์™€ ๋˜‘๊ฐ™์ดย BayerDissolve๋กœ ์ง€์–ด๋„ ๋˜๊ณ  ๋ญ ๋ณธ์ธ ๋ง˜๋Œ€๋กœ

๊ทธ๋ฆฌ๊ณ  Create > Material ํ•ญ๋ชฉ์„ ๋ˆŒ๋Ÿฌ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ์•„๊นŒ ์ž‘์„ฑํ•œ ์…ฐ์ด๋”๋ฅผ ํ• ๋‹นํ•ด์ค€๋‹ค


ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—์…‹ ํด๋”์—์„œ ํ•ด๋‹น ์…ฐ์ด๋”๋ฅผ ๋จธํ‹ฐ๋ฆฌ์–ผ์— ์ง์ ‘ ๋“œ๋ž˜๊ทธ์•ค ๋“œ๋กญ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ณ ,

์›ํ•˜๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์„ ํƒํ•œ ํ›„ ์ธ์ŠคํŽ™ํ„ฐ์˜ Shader ๋“œ๋กญ๋ฐ•์Šค๋ฅผ ํ†ตํ•ด ์ฐพ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค(์•„๋งˆ๋„ ๊ธฐ๋ณธ๊ฐ’์€ Standard)



โ†‘๋ณด์ผ์ง€๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ์ด ์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ๋ฐ›์•„์„œ ํ”„๋กœ์ ํŠธ์— ๋„ฃ์–ด์ฃผ์ž

๋””์‹œ์—์„œ ์‚ฌ์ง„ ๋‹ค์šด๋ฐ›์œผ๋ฉด ์›๋ณธ์œผ๋กœ ๋ฐ›์•„์ง€๋Š”์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ,ย  ํ˜น์‹œ ์˜ ๊ป„๋„๋Ÿฝ๋‹ค ํ•˜๋ฉด ์ฝ”๋“œ ์ถœ์ฒ˜์—์„œ ๋ฐ›์•„๋„ ๋œ๋‹ค


๊ทธ๋ฆฌ๊ณ  ๋ฐฉ๊ธˆ ๋ฐ›์€ ์ž‘์€ ์ด๋ฏธ์ง€์˜ ์ธ์ŠคํŽ™ํ„ฐ๋ฅผ ๋„์›Œ์„œ

Generate Mip Maps ํ•ญ๋ชฉ ์ฒดํฌ ํ•ด์ œํ•˜๊ธฐ

Filter Mode ํ•ญ๋ชฉ์„ Point (no filter) ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

์ด๊ฑฐ ๋‘๊ฐ€์ง€๋ฅผ ๊ผญ ํ•ด์ฃผ์ž

๋ฐ‰๋งต์€ ๋ฉ€๋ฆฌ ์žˆ์„๋•Œ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ณด์ด๋Š”๊ฑฐ ๋งŒ๋“œ๋Š”๊ฑฐ๊ณ , ํ•„ํ„ฐ๋ชจ๋“œ๋Š” ํ”ฝ์…€์„ ์„ ๋ช…ํ•˜๊ฒŒ(Point) ํ• ๊ฑฐ๋ƒ ํ•˜๋Š”๊ฑฐ๋‹ค


์„ค์ • ๋‹ค ํ–ˆ์œผ๋ฉด ์ด ์ž‘์€ ํ…์Šค์ณ๋ฅผ ๋ฐฉ๊ธˆ ๋งŒ๋“ค์–ด์—ˆ๋˜ ๋จธํ‹ฐ๋ฆฌ์–ผ์˜ Filter ๋ถ€๋ถ„์˜ ํ…์Šค์ณ์— ํ• ๋‹นํ•ด์ฃผ์ž

์ด๋†ˆ์€ ์‰ฝ๊ฒŒ๋งํ•ด์„œ "์˜ค๋ธŒ์ ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํด๋ฆฌํ•‘(์ž๋ฅด๊ธฐ) ํ•  ์ง€" ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค

๊ทธ๋ฆฌ๊ณ  ์œ„์— Albedo ๋ถ€๋ถ„์˜ ํ…์Šค์ณ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ๋น„์›Œ๋‘๋ฉด ๊ทธ ์œ„์— ์žˆ๋Š” Color์— ์˜ํ•ด์„œ ๋‹จ์ƒ‰ ๋จธํ‹ฐ๋ฆฌ์–ผ์ด ๋˜๊ณ 

๋ญ”๊ฐ€๋ฅผ ํ• ๋‹นํ•˜๋ฉด ๊ทธ ํ…์Šค์ณ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋‹ˆ๊นŒ ์ทจํ–ฅ๊ป ์„ธํŒ…ํ•ด๋‘์ž


๋‹ค ํ–ˆ์œผ๋ฉด ํ•œ๋ฒˆ Color ํ•ญ๋ชฉ์—์„œ ์•ŒํŒŒ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋ณด์ž



์™„์„ฑ!


์ถ”๊ฐ€๋กœ, ์ด ๊ฐ’์„ ๋Ÿฐํƒ€์ž„ ๋„์ค‘์— C#์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ฒ˜์Œ์— ๋งํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•จ



์˜ˆ์‹œ๋กœ, ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์™€ ์นด๋ฉ”๋ผ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ์„œ ์•ŒํŒŒ๊ฐ’์„ ์ˆ˜์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค

์•ŒํŒŒ๊ฐ’์€ 0์—์„œ 1๊นŒ์ง€, 0์ผ๋•Œ ์™„์ „ ํˆฌ๋ช…, 1์ผ๋•Œ ์™„์ „ ๋ถˆํˆฌ๋ช…์œผ๋กœ ์ž…๋ง›๋”ฐ๋ผ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค (ex. 0.3 = ํˆฌ๋ช…๋„ 30%)

์ฃผ์š” ๊ณจ์ž๋Š” ์ปฌ๋Ÿฌํƒ€์ž… ๋ณ€์ˆ˜์— ๋จธํ‹ฐ๋ฆฌ์–ผ์˜ ์ปฌ๋Ÿฌ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์•ŒํŒŒ์ฑ„๋„์„ ์ˆ˜์ •ํ•œ ํ›„ ๋‹ค์‹œ ๋จธํ‹ฐ๋ฆฌ์–ผ์— ํ• ๋‹นํ•ด์ฃผ๊ธฐ

์ฒ ์ž๊ฐ€ colour์ธ ์ด์œ ๋Š” ์˜๊ตญ์‹ ์ฒ ์ž์ธ๋ฐ ํƒ€์ž…๋ช… ์ปฌ๋Ÿฌํ•˜๊ณ  ๊ตฌ๋ถ„ํ•˜๊ธฐ ์‰ฌ์šฐ๋ ค๊ณ  ์ผ๋ถ€๋Ÿฌ ์ด๋ ‡๊ฒŒ ์“ด๋‹ค


์ด๋†ˆ์„ ์˜ค๋ธŒ์ ํŠธ์— ๋„ฃ๊ณ  ์‹คํ–‰์‹œํ‚ค๋ฉด



์ง 


๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ์ด๋†ˆ ํ”ฝ์…€์ด ํด๋ฆฌํ•‘๋˜๋Š” ์ˆœ์„œ(๋ชจ์–‘)๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด

์•„๊นŒ ๋ฐ›์€ ์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ •ํ•ด์„œ ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค



์˜ˆ์‹œ๋กœ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ํžˆ์˜ค์Šค ํ…์Šค์ณ๋ฅผ ์“ฐ๋ฉด


์š”๋ ‡๊ฒŒ ๋ฒŒ์ง‘ํ•์ž๋กœ ๋งŒ๋“ค์ˆ˜๋„ ์žˆ๋‹ค

๋ฐ›์•„์„œ ์Šคํฌ์ด๋“œ ์ฐ์–ด๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ ํ”ฝ์…€๋งˆ๋‹ค rgb๊ฐ’์ด ๊ณ ์ž‘ 4๋ฐ–์— ์ฐจ์ด๋‚˜์ง€ ์•Š๋Š”๋ฐ,

์œ ๋‹ˆํ‹ฐ C#์—์„œ๋Š” ๊ฐ’์„ 0~1๋กœ ์ฃผ๊ธฐ๋•Œ๋ฌธ์— 0~255์ธ rgb๊ฐ’์„ ๋ฏผ๊ฐํ•˜๊ฒŒ ์บ์น˜ํ•˜์ง€ ๋ชปํ•œ๋‹ค(๋‡Œํ”ผ์…œ)

๊ทธ๋Ÿฌ๋‹ˆ ๋งŒ์•ฝ ํŽธ์ง‘ํ•  ์ƒ๊ฐ์ด๋ผ๋ฉด ์ ๋‹นํžˆ ์œ ๋…ํ•ด๋‘๊ณ  ํŽธ์ง‘ํ•˜๋„๋ก ํ•˜์ž


์ฐธ๊ณ ๋กœ ํ•˜์–€์ƒ‰์— ๊ฐ€๊นŒ์šด ํ”ฝ์…€์ด ๋จผ์ € ํด๋ฆฌํ•‘๋œ๋‹ค