Показать сообщение отдельно
Старый 11.05.2013, 18:41   #1602
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Неожиданно
Это(SimpleWater+Alpha)

Shader "FX/Water (simple)" {
Properties {
    
_horizonColor ("Horizon color"COLOR)  = ( .172 .463 .435 0)
    
_WaveScale ("Wave scale"Range (0.02,0.15)) = .07
    _ColorControl 
("Reflective color (RGB) fresnel (A) "2D) = "" { }
    
_ColorControlCube ("Reflective color cube (RGB) fresnel (A) "Cube) = "" TexGen CubeReflect }
    
_BumpMap ("Waves Normalmap "2D) = "" { }
    
WaveSpeed ("Wave speed (map1 x,y; map2 x,y)"Vector) = (19,9,-16,-7)
    
_MainTex ("Fallback texture"2D) = "" { }
}

CGINCLUDE
// -----------------------------------------------------------
// This section is included in all program sections below

#include "UnityCG.cginc"

uniform float4 _horizonColor;

uniform float4 WaveSpeed;
uniform float _WaveScale;
uniform float4 _WaveOffset;

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

struct v2f {
    
float4 pos SV_POSITION;
    
float2 bumpuv[2] : TEXCOORD0;
    
float3 viewDir TEXCOORD2;
};

v2f vert(appdata v)
{
    
v2f o;
    
float4 s;

    
o.pos mul (UNITY_MATRIX_MVPv.vertex);

    
// scroll bump waves
    
float4 temp;
    
temp.xyzw v.vertex.xzxz _WaveScale unity_Scale._WaveOffset;
    
o.bumpuv[0] = temp.xy float2(.4.45);
    
o.bumpuv[1] = temp.wz;

    
// object space view direction
    
o.viewDir.xzy normalizeObjSpaceViewDir(v.vertex) );

    return 
o;
}

ENDCG
    
// -----------------------------------------------------------
// Fragment program

Subshader {
    
Tags "Queue"="Transparent" "RenderType"="Transparent" }
    
Blend SrcAlpha OneMinusSrcAlpha
    ColorMask RGB 
    Pass 
{
//Blend SrcAlpha OneMinusSrcAlpha
//ColorMask RGB 
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest 
//#pragma surface surf Lambert alpha

sampler2D _BumpMap;
sampler2D _ColorControl;

half4 fragv2f i ) : COLOR
{
    
half3 bump1 UnpackNormal(tex2D_BumpMapi.bumpuv[0] )).rgb;
    
half3 bump2 UnpackNormal(tex2D_BumpMapi.bumpuv[1] )).rgb;
    
half3 bump = (bump1 bump2) * 0.5;
    
    
half fresnel doti.viewDirbump );
    
half4 water tex2D_ColorControlfloat2(fresnel,fresnel) );
    
    
half4 col;
    
col.rgb lerpwater.rgb_horizonColor.rgbwater.)*_horizonColor.a;
    
col._horizonColor.a;
    return 
col;
}
ENDCG
    
}
}

// -----------------------------------------------------------
//  Old cards

// three texture, cubemaps
Subshader {
    
Tags "RenderType"="Opaque" }
    
Pass {
        
Color (0.5,0.5,0.5,0.5)
        
SetTexture [_MainTex] {
            
Matrix [_WaveMatrix]
            
combine texture primary
        
}
        
SetTexture [_MainTex] {
            
Matrix [_WaveMatrix2]
            
combine texture primary previous
        
}
        
SetTexture [_ColorControlCube] {
            
combine texture +- previousprimary
            Matrix 
[_Reflection]
        }
    }
}

// dual texture, cubemaps
Subshader {
    
Tags "RenderType"="Opaque" }
    
Pass {
        
Color (0.5,0.5,0.5,0.5)
        
SetTexture [_MainTex] {
            
Matrix [_WaveMatrix]
            
combine texture
        
}
        
SetTexture [_ColorControlCube] {
            
combine texture +- previousprimary
            Matrix 
[_Reflection]
        }
    }
}

// single texture
Subshader {
    
Tags "RenderType"="Opaque" }
    
Pass {
        
Color (0.5,0.5,0.5,0)
        
SetTexture [_MainTex] {
            
Matrix [_WaveMatrix]
            
combine textureprimary
        
}
    }
}



+ Это(Outline):
Shader "Outlined/Silhouetted Diffuse" {
    
Properties {
        
_Color ("Main Color"Color) = (.5,.5,.5,1)
        
_OutlineColor ("Outline Color"Color) = (0,0,0,1)
        
_Outline ("Outline width"Range (0.00.03)) = .005
        _MainTex 
("Base (RGB)"2D) = "white" { }
    }
   
CGINCLUDE
#include "UnityCG.cginc"

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

struct v2f {
    
float4 pos POSITION;
    
float4 color COLOR;
};

uniform float _Outline;
uniform float4 _OutlineColor;

v2f vert(appdata v) {
    
// just make a copy of incoming vertex data but scaled according to normal direction
    
v2f o;
    
o.pos mul(UNITY_MATRIX_MVPv.vertex);

    
float3 norm   mul ((float3x3)UNITY_MATRIX_IT_MVv.normal);
    
float2 offset TransformViewToProjection(norm.xy);

    
o.pos.xy += offset o.pos._Outline;
    
o.color _OutlineColor;
    return 
o;
}
ENDCG

    SubShader 
{
        
Tags "Queue" "Transparent" }

        
// note that a vertex shader is specified here but its using the one above
        
Pass {
            
Name "OUTLINE"
            
Tags "LightMode" "Always" }
            
Cull Off
            ZWrite Off
            ZTest  LEqual
            ColorMask RGB 
// alpha not used

            // you can choose what kind of blending mode you want for the outline
            
Blend SrcAlpha OneMinusSrcAlpha // Normal
            //Blend One One // Additive
            //Blend One OneMinusDstColor // Soft Additive
            //Blend DstColor Zero // Multiplicative
            //Blend DstColor SrcColor // 2x Multiplicative

CGPROGRAM
#pragma vertex vert
#pragma fragment frag

half4 frag(v2f i) :COLOR {
    return 
i.color;
}
ENDCG
        
}

        
Pass {
            
Name "BASE"
            
ZWrite On
            ZTest LEqual
            Blend SrcAlpha OneMinusSrcAlpha
            Material 
{
                
Diffuse [_Color]
                
Ambient [_Color]
            }
            
Lighting On
            SetTexture 
[_MainTex] {
                
ConstantColor [_Color]
                
Combine texture constant
            
}
            
SetTexture [_MainTex] {
                
Combine previous primary DOUBLE
            
}
        }
    }
   
    
SubShader {
        
Tags "Queue" "Transparent" }

        
Pass {
            
Name "OUTLINE"
            
Tags "LightMode" "Always" }
            
Cull Front
            ZWrite Off
            ZTest Always
            ColorMask RGB

            
// you can choose what kind of blending mode you want for the outline
            
Blend SrcAlpha OneMinusSrcAlpha // Normal
            //Blend One One // Additive
            //Blend One OneMinusDstColor // Soft Additive
            //Blend DstColor Zero // Multiplicative
            //Blend DstColor SrcColor // 2x Multiplicative

            
CGPROGRAM
            
#pragma vertex vert
            #pragma exclude_renderers gles xbox360 ps3
            
ENDCG
            SetTexture 
[_MainTex] { combine primary }
        }

        
Pass {
            
Name "BASE"
            
ZWrite On
            ZTest LEqual
            Blend SrcAlpha OneMinusSrcAlpha
            Material 
{
                
Diffuse [_Color]
                
Ambient [_Color]
            }
            
Lighting On
            SetTexture 
[_MainTex] {
                
ConstantColor [_Color]
                
Combine texture constant
            
}
            
SetTexture [_MainTex] {
                
Combine previous primary DOUBLE
            
}
        }
    }
   
    
Fallback "Diffuse"


=

Знающие, подскажите где исправить, желательно без последствий.=)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием