텍스쳐 표시가 이상할 때

업데이트: 2021/11/24

반투명 부분이 거무스름해진다

NativeCompornent, SDK for Native

원인

곱해진 알파 이미지곱해지지 않은 파일로서 읽을 때 발생합니다.
원인은 합성 시와 이미지 작성 시에 이중으로 알파값을 곱하기 위해 색이 어두워지기 때문입니다.

뺨 등 반투명 부분이 정상적으로 그려지고 있는 경우는 다른 문제가 됩니다.

대책

CubismRenderer::IsPremultipliedAlpha에서 True를 설정하거나 이미지를 곱해진 알파를 사용하지 않는 형태로 변환합니다.

반투명 부분이 발광한다

NativeCompornent, SDK for Native

원인

거무스름해는 경우와 원인은 동일하지만 설정이 반대로 일어나는 현상입니다.
곱해진 알파 이미지가 아닌 이미지를 곱해진 알파의 파일로 취급하면 발생합니다.
이미지가 어두워진 것으로서 밝게 합성하기 위해 빛난 것처럼 합성됩니다.

대책

CubismRenderer::IsPremultipliedAlpha에서 False를 설정하거나 이미지를 곱해진 알파로 변환합니다.

눈에 띄게 들쭉날쭉하다, 경계가 울퉁불퉁하다

NativeCompornent, SDK for Native, Unity

원인

밉맵을 사용하지 않고 그릴 때 전환이 예리하게 발생하기 때문에,
안티 에일리어스가 적용되지 않은 느낌, 울퉁불퉁한 느낌, 들쭉날쭉한 느낌 등의 인상을 받습니다.

대책(Unity)

텍스쳐의 inspector상에서 Generate Mip Maps에 체크를 해 밉맵을 생성하도록 합니다.

대책(Native)

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glGenerateMipmap(GL_TEXTURE_2D);

OpenGL에서는 텍스쳐를 사용하는 방법을 GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR을 선택합니다.
또한 glGenerateMipmap에서 밉맵을 생성합니다.

희미한 경계선이 생긴다

Unity

원인과 대책

텍스쳐의 inspecter에서 Alpha Is Transparency가 해제되면 발생합니다.
체크를 한 후 오른쪽 하단의 Apply를 누릅니다.

해상도가 낮다(일부)

NativeCompornent, SDK for Native, Unity

원인

이미지의 보간 방법이 가장 가까운 한 점만으로 보간하는 방법(Point (no filter)이나 GL_NEAREST)이면 발생합니다.

대책(Unity)

텍스쳐의 inspecter에서 Filter Mode를 Bilinear 또는 Trilinear로 변경합니다.

대책(Native)

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

들쭉날쭉해질 때와 마찬가지로 밉맵 사용 설정을 Liner로 설정합니다.

일부 휴대 단말기에서 UV가 왜곡됨

Cubism SDK for Native, Cubism SDK for Web

원인

OpenGL의 FragmentShader에서 사용하고 있는 값의 부동 소수점의 정밀도가 낮은 경우 실행하는 단말기에 따라서는 메쉬의 UV가 의도하지 않은 좌표가 되는 경우가 있습니다.

대책

FragmentShader에 정의되어 있는 precision mediump float를 precision highp float로 변경합니다.  

이 기사에 관한 의견 및 요청사항을 보내 주시기 바랍니다.