https://yulcat.com/2016/10/05/μœ λ‹ˆν‹°λ‘œ-ν”½μ…€-μ•„νŠΈ-ν‘œν˜„ν•˜κΈ°/


μ˜›λ‚ μ— λΈ”λ‘œκ·Έμ— 써봀던 λ˜₯글인데 사싀 이방법 μ‹€μ œλ‘œ 써본적은 μ—†λ‹€

κ΄€μ‹¬μžˆλŠ” μ‚¬λžŒ 있으면 ν•œλ²ˆ 써보고 ν›„κΈ° 남겨주라



μ΄ν•˜ 전에 썼던 λ³Έλ¬Έ

-----------------------------------------------------------------


μœ λ‹ˆν‹°μ—μ„œ ν”½μ…€ μ•„νŠΈλ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ 보톡 μŠ€ν”„λΌμ΄νŠΈμ˜ filter modeλ₯Ό point둜 μ„€μ •ν•˜λŠ” 방법을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이 방법은 ν”½μ…€μ˜ 경계λ₯Ό λšœλ ·ν•˜κ²Œ ν‘œν˜„ν•΄μ£Όμ§€λ§Œ, 해상도에 따라 μ™œκ³‘μ΄ λ°œμƒν•©λ‹ˆλ‹€.

λ”μ°ν•˜κ²Œ μ™œκ³‘λœ κ²Œμž„ 화면…

μ™œ 이런 ν˜„μƒμ΄ λ°œμƒν•˜λŠ”μ§€, filter modeλ³„λ‘œ 이미지λ₯Ό ν™•λŒ€ν•˜λŠ” 방법을 μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

Nearest-neighbor interpolation

Nearest-neighbor (μ΄ν•˜ NN) 방식은 κ°€μž₯ λ‹¨μˆœν•œ λ°©μ‹μœΌλ‘œ, 이름 κ·ΈλŒ€λ‘œ κ°€μž₯ κ°€κΉŒμš΄ μ£Όμ–΄μ§„ 점의 색상을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€. μœ λ‹ˆν‹°μ—μ„œ filter mode – point κ°€ 이 방법을 μ”λ‹ˆλ‹€.

검은 점이 μ£Όμ–΄μ§„ 점의 μœ„μΉ˜

λΉ„νŠΈλ§΅ μ΄λ―Έμ§€λŠ” κ· μΌν•œ 2차원 λ°°μ—΄λ‘œ 이루어져 있기 λ•Œλ¬Έμ—, κ°€μž₯ κ°€κΉŒμš΄ ν”½μ…€μ˜ 색상을 μ‚¬μš©ν•˜λ‹€ 보면 μœ„ κ·Έλ¦Όκ³Ό 같이 μ •μ‚¬κ°ν˜•λ“€μ˜ 배열이 κ·Έλ €μ§€κ²Œ λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ μš°λ¦¬κ°€ ν”½μ…€ μ•„νŠΈ ν•˜λ©΄ μƒκ°ν•˜λŠ” μ •μ‚¬κ°ν˜•λ“€λ‘œ 이루어진 화면을 ν‘œν˜„ν•  수 있죠.

Β 

ν•˜μ§€λ§Œ 항상 화면이 이미지 크기의 μ •μˆ˜λ°° 해상도일 μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. 이미지가 μ• λ§€ν•œ 배율둜 ν™•λŒ€λœ 경우, μœ„ κ·Έλ¦Όκ³Ό 같이 λΉ„μœ¨μ΄ κΉ¨μ Έμ„œ 그림이 μ™œκ³‘λ˜λŠ” ν˜„μƒμ„ ν”Όν•  수 μ—†μ–΄μš”.

Bilinear interpolation

Bilinear (μ΄ν•˜ BL) 방식은 NN λͺ»μ§€μ•Šκ²Œ λ‹¨μˆœν•˜λ©΄μ„œλ„ λΆ€λ“œλŸ¬μš΄ 결과물을 λ‚΄κΈ° λ•Œλ¬Έμ— 많이 μ“°μ΄λŠ” λ°©μ‹μž…λ‹ˆλ‹€. μœ λ‹ˆν‹°3Dμ—μ„œλ„ κΈ°λ³Έ 필터링 λͺ¨λ“œλŠ” BL둜 μ§€μ •λ˜μ–΄ 있죠.

κ°„λ‹¨ν•œ λΉ„λ‘€μ‹μœΌλ‘œ 색 μ„žκΈ°

λΉ„λ‘€μ‹μœΌλ‘œ 색을 μ„žμ–΄μ„œ ν‘œν˜„ν•˜κΈ° λ•Œλ¬Έμ—, NN 방식에 λΉ„ν•΄ λΉ„μœ¨μ΄ κΉ¨μ§€κ±°λ‚˜ ν•˜λŠ” λ¬Έμ œλŠ” λœν•˜μ§€λ§Œ, 색상과 μƒ‰μƒμ˜ 경계가 νλ €μ§€λŠ” λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν”½μ…€ μ•„νŠΈμ—μ„œλŠ” κΈ°ν”Όν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€.

ν”½μ…€μ΄μ—ˆλ˜κ°€β€¦?κ°œμ„ μ•ˆ : Bilinear downscaling

κ·Έλ ‡λ‹€λ©΄, NN λ°©μ‹μœΌλ‘œ λͺ©ν‘œ 해상도보닀 크게 μ—…μŠ€μΌ€μΌν•˜κ³ , BL λ°©μ‹μœΌλ‘œ λͺ©ν‘œ 해상도에 맞좰 λ‹€μš΄μŠ€μΌ€μΌν•˜λ©΄ μ–΄λ–¨κΉŒμš”? λͺ…ν™•ν•˜κ²Œ ν•œ ν”½μ…€ μ˜μ—­μ— μ†ν•˜λŠ” 곳은 κ· μΌν•œ 색상을 κ°€μ§€κ³ , ν”½μ…€κ³Ό ν”½μ…€μ˜ 경계가 λΆˆλΆ„λͺ…ν•œ 곳만 색상을 μ„žμ–΄μ„œ ν‘œν˜„ν•  수 μžˆμ§€ μ•Šμ„κΉŒμš”?

λ¨Όμ €, ν¬ν† μƒ΅μœΌλ‘œ ν•΄λ‹Ή 방법을 μ‹œν—˜ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

NN 250%. ν”½μ…€ μ™œκ³‘μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.BL 250%. ν™”λ©΄ 전체가 λΏŒμ˜‡κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.NN 300% ν›„ BL 83.33%.

λͺ©ν‘œλ‘œ ν–ˆλ˜ κ²ƒμ²˜λŸΌ μ™œκ³‘μ€ μ–΅μ œν•˜λ©΄μ„œ λΏŒμ—° 화면은 λœν•©λ‹ˆλ‹€.

μ’ŒμΈ‘μ€ Bilinear, μš°μΈ‘μ€ NN으둜 λͺ©ν‘œ μ΄μƒμœΌλ‘œ ν™•λŒ€ν•œ ν›„ BL둜 μΆ•μ†Œν•œ μ΄λ―Έμ§€μž…λ‹ˆλ‹€. λ”μš± μ„ λͺ…ν•˜κ²Œ 사각 픽셀이 λ³΄μ΄λ©΄μ„œλ„, λΉ„μœ¨μ€ ν•΄μΉ˜μ§€ μ•ŠλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μœ λ‹ˆν‹°μ— μ μš©ν•˜κΈ°

μœ λ‹ˆν‹°μ˜ Render Texture κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄, μœ„ 방식을 μ½”λ“œ ν•œμ€„ μ§œμ§€ μ•Šκ³  μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¨Όμ €, Create – Render Texture 둜 λ Œλ” ν…μŠ€μ²˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

그리고 λ Œλ” ν…μŠ€μ²˜μ˜ μ‚¬μ΄μ¦ˆλ₯Ό ν™”λ©΄μ˜Β κ°€μƒ ν•΄μƒλ„μ˜ μ •μˆ˜λ°°λ‘œ μ„€μ •ν•©λ‹ˆλ‹€.

μ œκ°€ κ°€μ§„ μ΄λ―Έμ§€μ˜ 크기가 256 x 223이고, 좜λ ₯ μ‚¬μ΄μ¦ˆλŠ” 650 x 557 둜 μ •ν–ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ Œλ” ν…μŠ€μ²˜ μ‚¬μ΄μ¦ˆλŠ” 이미지 크기의 3배인 768 x 669 둜 μ •ν•΄, 좜λ ₯ μ‚¬μ΄μ¦ˆλ³΄λ‹€ 크도둝 μ •ν–ˆμŠ΅λ‹ˆλ‹€.

그리고 Camera 의 Target Texture λ₯Ό 방금 λ§Œλ“  λ Œλ” ν…μŠ€μ²˜λ‘œ μ •ν–ˆμŠ΅λ‹ˆλ‹€. 이제 이 μΉ΄λ©”λΌλŠ” 화면이 μ•„λ‹Œ λ Œλ” ν…μŠ€μ²˜μ— λ Œλ” κ²°κ³Όλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

No Cameras rendering λ©”μ‹œμ§€κ°€ 신경쓰인닀면, Culling Mask κ°€ nothing으둜 μ„€μ •λœ 더미 카메라 ν•˜λ‚˜λ₯Ό 생성해 λ‘‘λ‹ˆλ‹€.

그리고 UI – Raw Image ν•˜λ‚˜λ₯Ό μƒμ„±ν•΄μ„œ λ Œλ” ν…μŠ€μ²˜λ₯Ό 좜λ ₯ν•˜λ„λ‘ ν•΄ μ€λ‹ˆλ‹€. 이제 κ²Œμž„ 화면은 Render Texture λ₯Ό κ²½μœ ν•΄ UI Canvas μ—μ„œ κ·Έλ €μ§€κ²Œ λ©λ‹ˆλ‹€.

μœ„ 방식을 μ‚¬μš©ν•΄ 좜λ ₯ν•œ ν™”λ©΄μž…λ‹ˆλ‹€. λŒ€κ°μ„  픽셀을 μœ μ‹¬νžˆ λ³΄μ„Έμš”.
point λ°©μ‹μœΌλ‘œ 화면에 λ°”λ‘œ 좜λ ₯ν•œ 경우. λŒ€κ°μ„  픽셀이 μ‚λš€λΉΌλš€ν•©λ‹ˆλ‹€.

사싀 λ Œλ” ν…μŠ€μ²˜ κΈ°λŠ₯은 이거 찾아보닀가 처음 μ¨λ΄€λŠ”λ°, λ‹€μ–‘ν•œ 상황에 μ‘μš©ν•  수 μžˆμ„κ²ƒ κ°™λ„€μš”.

Β