Дополнить шейдер флага [РЕШЕНО]

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

Re: Дополнить шейдер флага

Сообщение Ert Donuell 19 фев 2011, 20:02

Вероятно, проблема либо в Unity 3.2, либо в освещении..
Как же наладить эти тени :-?
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Дополнить шейдер флага

Сообщение gnoblin 19 фев 2011, 20:57

какие тени?

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

Re: Дополнить шейдер флага

Сообщение gnoblin 19 фев 2011, 20:58

Я думал шейдер не компилится.

Прочитал еще раз первый пост )).

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

Re: Дополнить шейдер флага

Сообщение Ert Donuell 19 фев 2011, 22:05

Done
Синтаксис:
Используется glsl
Shader "WavedFlag"
{
        Properties
        {
                _Color ("Main Color", Color) = (1,1,1,1)
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _WaveSpeed ("Wave Speed", float) = 50.0
                _Distortion ("Flag Distortion", Range(0.01,1)) = 0.05
        }
        SubShader
        {
                Tags { "RenderType"="Opaque" }
                LOD 200
                CULL Off

                CGPROGRAM
                #pragma surface surf Lambert vertex:vert addshadow

                sampler2D _MainTex;
                float4 _Color;
                struct Input
                {
                        float2 uv_MainTex;
                };

                float _WaveSpeed;
                float _Distortion;
                void vert (inout appdata_full v)
                {
                        float sinOff = v.vertex.x + v.vertex.y + v.vertex.z;
                        float t = _Time * _WaveSpeed;
                        if (t < 0.0) t *= -1.0;
                        float fx = v.texcoord.x;
                        float fy = v.texcoord.x * v.texcoord.y;
                        //v.vertex.x += sin(t * 1.45 + sinOff) * fx * 5 * _Distortion;
                        v.vertex.y = sin(t * 3.12 + sinOff) * fx * 5 * _Distortion - fy * 9 * _Distortion;
                        //v.vertex.z -= sin(t * 2.2 + sinOff) * fx * 2 * _Distortion;
                }
               
                void surf (Input IN, inout SurfaceOutput o)
                {
                        float4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
                        o.Albedo = c.rgb;
                        o.Alpha = c.a;
                }
                ENDCG
        }
        Fallback "VertexLit"
}


Правда, всё-равно ругается
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Neodrop 19 фев 2011, 22:32

А я бы демку сюда прикрепил... :-?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Ert Donuell 19 фев 2011, 22:40

Постараюсь не забыть скинуть завтра.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Battle Angel Alita 19 фев 2011, 22:57

>>[РЕШЕНО]
Не так быстро.
А теперь скажите, какое волшебное слово надо сказать, чтоб он ещё и для построения лайт-буффера использовал модифицированные вершины?
light_buffer.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение gnoblin 20 фев 2011, 00:40

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

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Battle Angel Alita 20 фев 2011, 00:54

Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Neodrop 20 фев 2011, 01:02

Классный артист. Я правда, так и не понял, как там можно что-то взять.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Battle Angel Alita 20 фев 2011, 01:18

Никак. Он выкладывал эту модельку в один из традиционных лоу-поли тредов на polycount(или CGtalk, непомню), там и взяла.
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Ert Donuell 20 фев 2011, 14:34

Пипец.. Всю ночь шейдеры снились 8()

HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://dc316.4shared.com/download/qJn4jHWk/Flag.unity3d&w=600&h=450&t=true&preview=1' height='"+(450+30)+"' width='600' frameborder='0' scrolling='no'></iframe>"); </script>

Battle Angel Alita писал(а):А теперь скажите, какое волшебное слово надо сказать, чтоб он ещё и для построения лайт-буффера использовал модифицированные вершины?


Что Вы имеете в виду? Я тот ещё валенок в шейдерах :)
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Battle Angel Alita 20 фев 2011, 17:40

а интересный эффект получается..
алсо, когда закомментировала CULL Off комп завис напроч
light_buffer2.jpg
У вас нет доступа для просмотра вложений в этом сообщении.
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Дополнить шейдер флага [РЕШЕНО]

Сообщение Ert Donuell 20 фев 2011, 18:05

Забавно)

В демке я использую этот шейдер (тут закомментирована пара строк для пущего реализма):
Синтаксис:
Используется glsl
Shader "WavedFlag"
{
        Properties
        {
                _Color ("Main Color", Color) = (1,1,1,1)
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _WaveSpeed ("Wave Speed", float) = 50.0
                _Distortion ("Flag Distortion", Range(0.01,1)) = 0.05
        }
        SubShader
        {
                Tags { "RenderType"="Opaque" }
                LOD 200
                CULL Off

                CGPROGRAM
                #pragma surface surf Lambert vertex:vert addshadow

                sampler2D _MainTex;
                float4 _Color;
                struct Input
                {
                        float2 uv_MainTex;
                };

                float _WaveSpeed;
                float _Distortion;
                void vert (inout appdata_full v)
                {
                        float sinOff = v.vertex.x + v.vertex.y + v.vertex.z;
                        float t = _Time * _WaveSpeed;
                        if (t < 0.0) t *= -1.0;
                        float fx = v.texcoord.x;
                        float fy = v.texcoord.x * v.texcoord.y;
                        //v.vertex.x += sin(t * 1.45 + sinOff) * fx * 5 * _Distortion;
                        v.vertex.y = sin(t * 3.12 + sinOff) * fx * 5 * _Distortion - fy * 9 * _Distortion;
                        //v.vertex.z -= sin(t * 2.2 + sinOff) * fx * 2 * _Distortion;
                }
               
                void surf (Input IN, inout SurfaceOutput o)
                {
                        float4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
                        o.Albedo = c.rgb;
                        o.Alpha = c.a;
                }
                ENDCG
        }
        Fallback "VertexLit"
}
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Пред.

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

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

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


cron