Страница 1 из 1

Лоуполи тени от хайполи объектов

СообщениеДобавлено: 22 окт 2010, 04:07
gnoblin
Синтаксис:
Используется glsl
Shader "Shadow" {
 Properties {
  _MainTex ("Base (RGB)", 2D) = "white" {}
 }
 SubShader {
 
    Tags { "Queue" = "Transparent" }
 
   // Grab the screen behind the object into _GrabTexture, using default values
        GrabPass { }

        // Render the object with the texture generated above.
        Pass {
            SetTexture [_GrabTexture] { combine texture }
        }

 }
 FallBack "Diffuse"
}


положил плоскость, повесил капсулу с тенью и источником света
одел на капсулу шейдер, тень вижу - объект не вижу.

Целиком вязл пример из справки про GrabPass (отличная для меня находка, кстати!).

Вопрос: Нормально так делать тени от лоуполи версии объекта или будет еще тормознее чем обычно? :)

Re: Лоуполи тени от хайполи объектов

СообщениеДобавлено: 05 ноя 2010, 02:36
gnoblin
Осилил еще одну версию тенеприемника ).
Работает примерно по такому принципу (по-моему я где-то тут уже постил эти скриншоты):
shader_example1.jpg
shader_example2.jpg


1. вроде работает, но не уверен на 100% что всегда хорошо
2. затенение объекта не рисуется на фоне скайбокса (наверное поправимо)
3. пока не работает с deferred rendering

Синтаксис:
Используется glsl
Shader "MatteShadowCustModel2" {
Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
       
        _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
}

SubShader {
        Tags {"IgnoreProjector"="True" "RenderType"="TransparentCutout"}
        LOD 200
       
CGPROGRAM
#pragma surface surf SimpleLambert alphatest:_Cutoff


float4 _Color;

struct Input {
        float2 uv_MainTex;
};

 half4 LightingSimpleLambert (SurfaceOutput s, half3 lightDir, half atten) {
         
          half4 c;
          c.rgb = s.Albedo;
          c.a = 0;
         
          return c;
      }

void surf (Input IN, inout SurfaceOutput o) {
       
        o.Albedo = _Color.rgb;
        o.Alpha = 0.25;
       
}
ENDCG
}

Fallback "Transparent/Cutout/VertexLit"
}

 


http://forum.unity3d.com/threads/64941- ... post422023

Re: Лоуполи тени от хайполи объектов

СообщениеДобавлено: 07 ноя 2010, 02:56
gnoblin
Вот еще было обсуждение на тему viewtopic.php?f=35&t=1698&p=14766#p14732

Re: Лоуполи тени от хайполи объектов

СообщениеДобавлено: 08 ноя 2010, 22:23
gnoblin
на оф. форуме в теме которую я создал запостили интересное решение:

http://forum.unity3d.com/threads/64941- ... post424076

Надо будет сравнить производительность :)