filterMode
filterMode 속성은 텍스처의 필터링 방법을 설정하는 데 사용된다.
필터링은 텍셀과 픽셀 사이의 보간 방법을 결정하여 텍스처가 확대 또는 축소될 때 품질을 조정한다.
FilterMode.Point
: 텍스처를 확대 또는 축소할 때 픽셀의 크기를 변경하지 않고 근접한 텍셀의 색상을 그대로 사용하여
텍스처가 픽셀화되도록 한다. 주로 픽셀 아트 스타일의 게임에서 사용된다.
FilterMode.Bilinear
: 텍스처를 확대 또는 축소할 때 인접한 텍셀의 색상을 선형 보간하여 부드러운 확대 및 축소 효과를 만든다.
대부분의 2D 게임에서 사용된다.
FilterMode.Trilinear
: Bilinear 필터링과 함께 MipMap을 사용하여 텍스처의 세부 레벨에서도 부드러운 텍스처를 보장한다.
주로 3D 게임에서 사용된다. Trilinear 필터링은 텍스처의 세부 레벨에 대한 보간을 수행하기 때문에
계산 비용이 더 높아지며, 특히 큰 텍스처와 많은 MipMap 레벨이 있는 경우에 성능 저하가 더욱 두드러진다.
따라서 성능을 최적화하고자 할 때는 필요에 따라 Trilinear 필터링을 사용할 지 여부를 고려해야 한다.
wrapMode
wrapMode 속성은 텍스처의 경계를 처리하는 방법을 설정하는 데 사용된다.
텍스처 좌표가 텍스처 영역을 벗어날 때 어떻게 처리할지 결정한다.
Repeat Mode
: Repeat 모드는 텍스처를 반복적으로 반복해서 사용하는 모드이다.
이 모드에서는 텍스처의 좌표가 범위를 벗어나면 반복되어 다시 시작점부터 텍스처를 나타낸다.
텍스처가 반복되어 나타나며, 텍스처를 타일 형태로 채우고 싶을 때 주로 사용된다.
Clamp Mode
: Clamp 모드는 텍스처의 좌표를 범위 내에 제한하여 사용하는 모드이다.
이 모드에서는 텍스처의 좌표가 범위를 벗어나면 가장자리의 텍스처 값을 사용한다.
텍스처의 가장자리 값을 반복하지 않고 고정시켜야 할 때 주로 사용된다.
Mirror Mode
: Mirror 모드는 텍스처를 반사하여 반복적으로 사용하는 모드이다.
이 모드에서는 텍스처의 좌표가 범위를 벗어나면 반전된 방향으로 텍스처를 반복해서 나타낸다.
텍스처가 반사되어 반복되는 효과를 주고 싶을 때 주로 사용된다.
anisoLevel
anisoLevel 속성은 Anisotropic Filtering 수준을 설정하는 데 사용된다.
Anisotropic Filtering은 텍스처의 경사에 따라 텍스처를 보다 선명하게 표시하는 기술이다.
텍스처가 기울어진 각도로 보일 때 세부 사항이 더욱 정확하게 표현된다.
값이 높을수록 텍스처 선명도가 향상되지만
성능에 영향(값을 높게 설정하면 GPU의 부하가 증가할 수 있음)을 미친다.
mipMapBias
Mip Map 레벨에 대한 편향 값을 나타내는 속성이다.
Mip Map은 텍스처의 다양한 해상도 버전을 저장하고 사용하여
멀리 떨어진 물체의 텍스처를 효율적으로 렌더링하는,
즉, 성능을 최적화하는 기술인데, mipMapBias 값을 조절하여 텍스처의 세부 수준과 퀄리티를 조절할 수 있다.
mipMapBias 값의 범위는 Unity에서 사용되는 float 타입의 값인 -3부터 3까지이다.
이 범위 안에서 mipMapBias 값을 조정하여 텍스처의 미핑 레벨을 조절할 수 있다.
음수 값은 미핑 레벨을 낮추어 텍스처의 디테일을 낮추고,
양수 값은 미핑 레벨을 높여 텍스처의 디테일을 높일 수 있다.
mipMapBias 값이 0에 가까울수록 텍스처의 기본 미핑 레벨이 적용되며,
음수 값일수록 미핑 레벨이 낮아지고 양수 값일수록 미핑 레벨이 높아진다.
// 텍스처 가져오기
Texture2D texture = Resources.Load<Texture2D>("TextureName");
// 텍스처의 미핑 레벨을 낮추기 위해 mipMapBias 값을 조정
float mipMapBias = -1f; // 값이 음수인 경우 미핑 레벨이 낮아집니다.
// 텍스처의 필터링 모드 설정
texture.filterMode = FilterMode.Trilinear; // Trilinear 필터링 모드 사용
// 텍스처의 mipMapBias 값을 조정하여 디테일과 품질 조절
texture.mipMapBias = mipMapBias;
// 텍스처를 사용하는 머티리얼에 할당
renderer.material.mainTexture = texture;