glsl шейдеры для OGLES 2.0

Шейдерлаб (fixed function pipeline) и cg\glsl шейдеры для OpenGL ES 2.0 для мобилок

glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:03

привет.

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

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:04

нашел вот такой на офе

http://forum.unity3d.com/threads/39629- ... post398170
Синтаксис:
Используется glsl
Shader "Fast" {
        Properties {
                _MainTex ("Base (RGB)", 2D) = "white" {}
        }
       
        SubShader {
                Tags { "Queue" = "Geometry" }
               
                Pass {
                        GLSLPROGRAM
                       
                        #ifdef VERTEX
                       
                        varying vec2 TextureCoordinate;
                       
                        void main()
                        {
                                gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
                                TextureCoordinate = gl_MultiTexCoord0.xy;
                        }
                       
                        #endif
                       
                        #ifdef FRAGMENT
                                               
                        uniform sampler2D _MainTex;
                        varying vec2 TextureCoordinate;
                       
                        void main()
                        {
                                gl_FragColor = texture2D(_MainTex, TextureCoordinate);
                        }
                       
                        #endif
                       
                        ENDGLSL
                }
        }
}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:11

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

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:17

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

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:23

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

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 05:55

Мой первый GLSL шейдер для мощных мобилок :D.

Текустура+цвет (без освещения итд).

Синтаксис:
Используется glsl
Shader "OpenGL ES 2.0/FastColor" {
        Properties {
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _LC("LC", Color) = (1,0,0,0)
        }
       
        SubShader {
                Tags { "Queue" = "Geometry" }
               
                Pass {
                   
                        GLSLPROGRAM
                       
                        #ifdef VERTEX
                       
                        varying vec2 TextureCoordinate;
                       
                        void main()
                        {
                                gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
                                TextureCoordinate = gl_MultiTexCoord0.xy;
                        }
                       
                        #endif
                       
                        #ifdef FRAGMENT
                                               
                        uniform sampler2D _MainTex;
                        varying vec2 TextureCoordinate;
                        uniform vec4 _LC;
                       
                        void main()
                        {
                                 vec4 c;
                                 c.xyz = texture2D(_MainTex, TextureCoordinate).xyz * _LC.xyz;
                                 c.w = 1.0;
                                 gl_FragColor = c;
                        }
                       
                        #endif
                       
                        ENDGLSL
                }
        }
}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 08 дек 2010, 06:47

Specular :D.

Синтаксис:
Используется glsl
Shader "FastSpecular" {
        Properties {
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _LC("LC", Color) = (1,0,0,0)
                _LP("LP", Vector) = (1,1,1,1)
        }
       
        SubShader {
                Tags { "Queue" = "Geometry" }
               
                Pass {
                   
                        GLSLPROGRAM
                       
                        #ifdef VERTEX
                       
                        const float SpecularContribution = 0.3;
                        const float DiffuseContribution  = 1.0 - SpecularContribution;

                        uniform vec4 _LP;
                        varying vec2 TextureCoordinate;
                        varying float LightIntensity;

                        void main()
                        {
                                gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
                                TextureCoordinate = gl_MultiTexCoord0.xy;
                               
                                vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex);
                                vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal);
                                vec3 lightVec = normalize(_LP.xyz - ecPosition);
                               
                                vec3 reflectVec = reflect(-lightVec, tnorm);
                                vec3 viewVec    = normalize(-ecPosition);
                                float diffuse   = max(dot(lightVec, tnorm), 0.0);
                               
                                float spec      = 0.0;
                                if (diffuse > 0.0)
                                {
                                        spec = max(dot(reflectVec, viewVec), 0.0);
                                        spec = pow(spec, 16.0);
                                }
                               
                                LightIntensity = DiffuseContribution * diffuse + SpecularContribution * spec;
                        }
                       
                        #endif
                       
                        #ifdef FRAGMENT
                                               
                        uniform sampler2D _MainTex;
                        varying vec2 TextureCoordinate;
                        uniform vec4 _LC;
                        varying float LightIntensity;

                        void main()
                        {
                                 vec4 c;
                                 c.xyz = texture2D(_MainTex, TextureCoordinate).xyz * _LC.xyz;
                                 c *= LightIntensity;
                                 c.w = 1.0;
                                 gl_FragColor = c;
                        }
                       
                        #endif
                       
                        ENDGLSL
                }
        }
}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: glsl шейдеры для OGLES 2.0

Сообщение artk 28 окт 2011, 19:26

пыши еще!
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: glsl шейдеры для OGLES 2.0

Сообщение gnoblin 28 окт 2011, 20:36

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


Вернуться в Mobile shaders

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

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