2017-05-10 11 views
0

나는 광구를 생성하고 구면 내에 등변이있는 쉐이더를 추가 한 다음 이미지를 추가했습니다.이 문제는 이미지에 점선이 어떻게 나타나는지 보여줍니다. ?) you can see the dotted lines점선은 광구의 이미지에서 나타나고 있습니다

there is distortion of the image

제가 사용 셰이더의 소스 코드는

Shader "Unlit/rect"{ 
Properties { 

    _MainTex (" Base (RGB)", 2D) = "gray" {} 
} 

SubShader{ 
    Pass { 
     Tags {"RenderType"="Opaque" } 
    cull front 
     CGPROGRAM 
      #pragma vertex vert 
      #pragma fragment frag 
      #pragma fragmentoption ARB_precision_hint_fastest 
      #pragma glsl 
      #pragma target 3.0 

      #include "UnityCG.cginc" 

      struct appdata { 
       float4 vertex : POSITION; 
       float3 normal : NORMAL; 
      }; 

      struct v2f 
      { 
       float4 pos : SV_POSITION; 
       float3 normal : TEXCOORD0; 
      }; 

      v2f vert (appdata v) 
      { 
       v2f o; 
       o.pos = mul(UNITY_MATRIX_MVP, v.vertex); 
       o.normal = v.normal; 
       return o; 
      } 

      sampler2D _MainTex; 

      #define PI 3.141592653589793 

      inline float2 RadialCoords(float3 a_coords) 
      { 
       float3 a_coords_n = normalize(a_coords); 
       float lon = atan2(a_coords_n.z, a_coords_n.x); 
       float lat = acos(a_coords_n.y); 
       float2 sphereCoords = float2(lon, lat) * (1.0/PI); 
       return float2(sphereCoords.x * 0.5 + 0.5, 1 - sphereCoords.y); 
      } 

      float4 frag(v2f IN) : COLOR 
      { 
       float2 equiUV = RadialCoords(IN.normal); 
       return tex2D(_MainTex, equiUV); 
      } 
     ENDCG 
    } 
} 
FallBack "VertexLit" 

}

답변

0

는 캘리포니아 n 원인은 여러 가지가 있습니다. 내 머리 위로 떨어져 두 사람은 다음과 같습니다

이미지는 유니티의 가져 오기 설정에 의해 분해되어
  1. 다음 Inspector의 선택을 취소 Generate Mip-Maps에, 당신의 Project 탭에서 이미지를 선택 가서이 경우 및에서 확인 가져 오기 결단 Inspector의 하단이 실제 이미지 해상도보다 높은 값으로 설정됩니다 (예 : 이미지가 1480x1480 인 경우 가져 오기 설정을 2048x2048로 설정).

  2. 이미지를 매핑하는 구형 메쉬에 UV 문제가 있습니다. 다른 프로그램의 기본 영역에는 다른 UV 맵이 있습니다. Unity의 기본 구는 Blender 나 Maya의 구와 다릅니다. 3D 모델링 소프트웨어에서이 이미지를 테스트 해 보았습니다.이 이미지는 그 영역을 내보내는 것보다 Unity에서 이미지에 사용하는 것보다 낫습니다.

+0

yea! 고맙습니다!! –