Вода. Как сделать затемнение от глубины?

Для экспериментальных разработок и тем "я нашел чужой исходник, почему он не работает?"

Вода. Как сделать затемнение от глубины?

Сообщение DDDENISSS 03 авг 2013, 22:40

Как сделать шейдер для воды, который будет вычислять прозрачность в зависимости от глубины?
Как я понимаю получить текущую глубину не возможно? Как тогда это делается?
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Вода. Как сделать затемнение от глубины?

Сообщение waruiyume 03 авг 2013, 23:08

Нужно сравнить положение, рисуемого фрагмента с тем, что хранится в карте с глубиной сцены.
Посмотрите Water4.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Вода. Как сделать затемнение от глубины?

Сообщение DDDENISSS 05 авг 2013, 00:54

ЧТо я не так написал? Цвет просто белый. Water4 конечно видел, но он сложный и я не могу в нем разобраться.
Синтаксис:
Используется glsl
Shader "Custom/MyWater" {
Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Color ("Main Color", COLOR) = (1,1,1,1)
}
SubShader {
    Pass {
    Tags { "RenderType"="Transparent" "Queue"="AlphaTest" }
    ZWrite off
    Blend SrcAlpha OneMinusSrcAlpha

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"

sampler2D _MainTex;
fixed4 _Color;

float4 _MainTex_ST;
sampler2D _CameraDepthTexture;

struct v2f {
    float4 pos : SV_POSITION;
    float2 uv : TEXCOORD0;
    float4 screenPos : TEXCOORD1;
};

v2f vert (appdata_base v)
{
    v2f o;
    o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
    o.screenPos = ComputeScreenPos(o.pos);
    o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
    return o;
}

float4 frag (v2f i) : COLOR
{
        float depth = UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.screenPos)));
        depth = LinearEyeDepth(depth);
        return float4(depth.xxx, 1);

        //float4 texcol = tex2D (_MainTex, i.uv);
    //return texcol * _Color;
}
ENDCG

    }
}
Fallback "VertexLit"
}
 
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33


Вернуться в Шейдерная кузня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1