_MainTex_TexelSize;

 

말그대로 화면의 텍셀사이즈를 얻어온다.

xy 외엔 1, 1로 들어오는 듯 하다.

 

즉 화면 가로 해상도가 1024 라고 한다면

_MainTex_TexelSize.x 는 1/1024 인 것이다.

 

uniform half4 _MainTex_TexelSize;

이라고 pass에 선언만 해주고 쓰면 된다.

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. 2016.10.12 17:40  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. eboole 2019.07.19 19:20  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 너무 옛날 글이지만 검색해서 들어와서 궁금해서 여쭤보고 싶은데요.
    _MainTex_TexelSize.y 값이 마이너스값이 들어올 수가 있나요?

    유니티 문서에서 https://docs.unity3d.com/Manual/SL-PlatformDifferences.html 이 링크를 들어가 보면
    #if UNITY_UV_STARTS_AT_TOP
    if (_MainTex_TexelSize.y < 0)
    uv.y = 1-uv.y;
    #endif

    와 같은 설명을 하고 있어서요

    • 캬오 대마왕J 2019.07.22 17:23 신고  댓글주소  수정/삭제

      이건 그거예요. OpenGL 이랑 DirectX 랑 UV가 다른데 OpenGL은 왼쪽 아래부터 시작하고 DirectX 는 왼쪽 위부터 시작해서 이게 꼬이면 잘못해서 y 값이 마이너스값이 들어올 수 있거든요.
      그러니까 그럴때는 y를 뒤집어 줘서 정상화 시켜준다는 말입니다.