2017-05-10 4 views
0

私は光球を作成し、球の内部に等角矩形のシェーダを追加してから、画像を追加しました。(問題点は画像上に点線で示されています?)you can see the dotted lines点線が光球の画像に現れています

there is distortion of the image

iが使用シェーダのソースコードである

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

それはCAいくつかの理由で原因がある。私の頭の上から2は、以下のとおりです。

  1. 画像がユニティのインポート設定により分解される。この場合にはInspectorチェックを外しGenerate Mip-Mapsで、あなたのProjectタブで画像を選択して行くとの確認輸入解像度を作りますInspectorの下部が実際の画像解像度よりも高い値に設定されています(例:画像が1480x1480、次にインポート設定が2048x2048に設定されています)。

  2. 画像をマッピングしている球面にはUVの問題があります。つまり、異なるプログラムのデフォルトの球は異なるUVマップを持っています。 Unityのデフォルトの球は、BlenderやMayaの球とは異なります。あなたの3Dモデリングソフトウェアでこの画像をテストしたところ、それがその球をエクスポートしてUnityにイメージ用に使用するよりも機能しました。

+0

yea!ありがとうございました!! –

関連する問題