Показать сообщение отдельно
Старый 13.05.2014, 07:29   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: [Android] PowerVR и GUI-текстура

Оптимизируй структуру Input примерно так:
Shader "Custom/Terrain" {
    
Properties {
        
_GrassTex ("Grass (RGB)"2D) = "white" {}
        
_MidTex ("Middle (RGB)"2D) = "white" {}
        
_RockTex ("Rock (RGB)"2D) = "white" {}
    }
    
SubShader {
        
Tags "RenderType"="Opaque" }
        
LOD 200
        
        CGPROGRAM
        
#pragma surface surf Lambert

        
sampler2D _GrassTex;
        
sampler2D _MidTex;
        
sampler2D _RockTex;

        
struct Input {
            
float2 uv_MidTex;
            
            
float3 worldPos;
        };
        
        
        
void surf (Input INinout SurfaceOutput o) {
            
float delta;
            
float hght = (IN.worldPos.y+1.5)/3.0;
            if(
hght>0.7){
                
delta = (clamp(hght,0.7,1.0)-0.7)/0.2;
                
o.Albedo = (tex2D(_RockTex,IN.uv_MidTex)*delta tex2D(_MidTex,IN.uv_MidTex)*(1.0-delta)).rgb;
            }else if(
hght<0.2){
                
delta clamp(hght,0.0,0.2)/0.2;
                
o.Albedo = (tex2D(_MidTex,IN.uv_MidTex)*delta tex2D(_GrassTex,IN.uv_MidTex)*(1.0-delta)).rgb;
            }else{
                
o.Albedo = (tex2D(_MidTex,IN.uv_MidTex)).rgb;
            }
            
o.Alpha 1.0;
        }
        
ENDCG
    

    
FallBack "Mobile/Diffuse"

По поводу проблем с текстурой GUI: попробуй перед отрисовкой очистить буфер глубины http://docs.unity3d.com/Documentatio.../GL.Clear.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием