Увеличить эффект шейдера

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

Увеличить эффект шейдера

Сообщение denri11 18 авг 2012, 23:52

Доброго дня. Есть стандартный шейдер "Mobile/Transparent/Light_v2" c параметром смешивания Blend DstColor one. Как можно изменить шейдер, что бы он давал больший результат яркости(интенсивности), как если бы в Mesh Renderer Material Size выставлять 2, 3, 4...
Синтаксис:
Используется glsl
Shader "Mobile/Transparent/Light_v2" {
Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}

Category {
        Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        ZWrite Off
        Alphatest Greater 0
        Blend DstColor one
        SubShader {
                Material {
                        Diffuse [_Color]
                        Ambient [_Color]
                }
                Pass {
                        ColorMaterial AmbientAndDiffuse
                        Fog { Mode Off }
                        Lighting Off
                        SeparateSpecular On
                SetTexture [_MainTex] {
            Combine texture * primary, texture * primary
        }
        SetTexture [_MainTex] {
            constantColor [_Color]
            Combine previous * constant DOUBLE, previous * constant
        }  
                }
        }
}
}
denri11
UNец
 
Сообщения: 32
Зарегистрирован: 31 июл 2012, 20:40

Re: Увеличить эффект шейдера

Сообщение denri11 19 авг 2012, 16:02

Пока только пришла идея добавить такой же блок Pass
Синтаксис:
Используется glsl
Shader "Pro/ProShader" {
Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}

Category {
        Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        ZWrite Off
        Alphatest Greater 0
        Blend DstColor one
        SubShader {
                Material {
                        Diffuse [_Color]
                        Ambient [_Color]
                }
                Pass {
                        ColorMaterial AmbientAndDiffuse
                        Fog { Mode Off }
                        Lighting Off
                        SeparateSpecular Off
                SetTexture [_MainTex] {
            Combine texture * primary, texture * primary
        }
        SetTexture [_MainTex] {
            constantColor [_Color]
            Combine previous * constant DOUBLE, previous * constant
        }
                }
               
                Pass {
                        ColorMaterial AmbientAndDiffuse
                        Fog { Mode Off }
                        Lighting Off
                        SeparateSpecular Off
                SetTexture [_MainTex] {
            Combine texture * primary, texture * primary
        }
        SetTexture [_MainTex] {
            constantColor [_Color]
            Combine previous * constant DOUBLE, previous * constant
        }
                }
               
        }
}
}


правильно ли это? можно ли в одном проходе добиться такого же эффекта?
denri11
UNец
 
Сообщения: 32
Зарегистрирован: 31 июл 2012, 20:40

Re: Увеличить эффект шейдера

Сообщение magoga 19 авг 2012, 16:19

лишний пасс там нафик не нужен,
просто надо в texture * primary
добавить соответствующий множитель "DOUBLE, QUAD"

Синтаксис:
Используется glsl
Shader "Mobile/Transparent/Light_v2" {
Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}

Category {
        Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        ZWrite Off
        Alphatest Greater 0
        Blend DstColor one
        SubShader {
                Material {
                        Diffuse [_Color]
                        Ambient [_Color]
                }
                Pass {
                        ColorMaterial AmbientAndDiffuse
                        Fog { Mode Off }
                        Lighting Off
                        SeparateSpecular On
                SetTexture [_MainTex] {
            Combine texture * primary DOUBLE, texture * primary
            //Combine texture * primary QUAD, texture * primary
        }
        SetTexture [_MainTex] {
            constantColor [_Color]
            Combine previous * constant DOUBLE, previous * constant
        }  
                }
        }
}
}
 
Аватара пользователя
magoga
UNIт
 
Сообщения: 98
Зарегистрирован: 22 мар 2010, 21:08

Re: Увеличить эффект шейдера

Сообщение denri11 19 авг 2012, 16:46

magoga, не работает, т.е. нет разницы, нету того эффекта как с двумя пассами. Хочу сказать как работает шейдер: используется черно-белая картинка, в черном месте она становиться прозрачной, а в белом - текстура на заднем плане окрашивается в выбранный цвет, эффект освещения.
denri11
UNец
 
Сообщения: 32
Зарегистрирован: 31 июл 2012, 20:40


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

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

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