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

Шейдеры и все-все-все.

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

Сообщение gnoblin 22 окт 2010, 04:07

Синтаксис:
Используется 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 (отличная для меня находка, кстати!).

Вопрос: Нормально так делать тени от лоуполи версии объекта или будет еще тормознее чем обычно? :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

Сообщение gnoblin 05 ноя 2010, 02:36

Осилил еще одну версию тенеприемника ).
Работает примерно по такому принципу (по-моему я где-то тут уже постил эти скриншоты):
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
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

Сообщение gnoblin 07 ноя 2010, 02:56

Вот еще было обсуждение на тему viewtopic.php?f=35&t=1698&p=14766#p14732
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

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

Сообщение gnoblin 08 ноя 2010, 22:23

на оф. форуме в теме которую я создал запостили интересное решение:

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

Надо будет сравнить производительность :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт


Вернуться в Shader Lab

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

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