Toon рамочка к builtin шейдерам.

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

Toon рамочка к builtin шейдерам.

Сообщение gnoblin 21 май 2009, 00:40

Здрасте.

1)РАсскажите насколько трудоемко добавить к шейдеру, который идет в стандарной поставке, туновую рамочку (черная маркерная обводка, типа. Как в toon материалах).

Т.е. интересен сам алгоритм редактирования шейдера... Или тут уникальный подход к каждому из кучи разных типов builtin шейдеров?

2)вроде можно организовать такую рамочку всем объектам в сцене постэффектом edge detect. Насколько это ресурсоемкое решение?
Т.е. что предпочтительнее, переписать пару шейдеров или юзать постэффект 8-x .

p.s. Есть какие-то уроки по shaderlab кроме мануала? 8-|

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

Re: Toon рамочка к builtin шейдерам.

Сообщение Const_47 21 май 2009, 02:00

По поводу двух вопросов нечего сказать, так как пока я практично не сталкиваюсь с конкретной задачей, я не знаю пути решения, перебираю варианты, и останавливаюсь на более подходящем.

По поводу уроков скажу так. Сам по себе оnly shaderlab не очень много может, по сути это работа с фиксированным конвеером + комбинации с builtin шейдерами. И вот такие комбинации могут получится ОЧЕНЬ "тяжелыми". Куда более гибкий подход предоставляет СG. Все что нужно знать о shaderlab есть в мануале + примеры с офф вики.
А по поводу шейдеров сюда
http://developer.nvidia.com/page/home.html
http://developer.amd.com/GPU/Pages/default.aspx
Const_47
Герой Форума
 
Сообщения: 271
Зарегистрирован: 23 мар 2009, 19:24
Откуда: Украина. Львов\Новояворовск

Re: Toon рамочка к builtin шейдерам.

Сообщение Const_47 21 май 2009, 06:45

Вот примитивный и дешевый вариант, который будет работать с стандартным набором builtin шейдеров.(кроме наверно прозрачных). Идея такая, в первом проходе рисую unity шейдер. Во втором маштабирую геометрию и рисую полики "на изнанку". Размер рамочки как и цвет в настройках материала.
Код: Выделить всё
Shader "New Test" {
   Properties {
      _Color ("Main Color", Color) = (1,1,1,1)  //Незабываем "интерфейс" для builtin shader
      _MainTex ("Base (RGB)", 2D) = "white" {}//Незабываем "интерфейс" для builtin shader
      
      _Border ("BorderSize", Range (0.0, 0.1)) = 0.01
       _BorderColor("BorderColor", Color) = (1,0,0,1)
   }
   SubShader {
      UsePass "Self-Illumin/VertexLit/BASE"//Cюда вписываем builtin shader
      
      Pass {
            Cull Front
         CGPROGRAM
         
       uniform float   _Border;
       uniform float4 _BorderColor;
         
       #pragma vertex vert
       #pragma fragment frag
      
       struct appdata {
   float4 vertex : POSITION;
    float3 normal : NORMAL;
    };

      struct v2f {
   float4 pos : POSITION;
    };
   
   v2f vert(appdata v)
   {
   v2f o;
   float3 PosObject = v.vertex.xyz + (v.normal *_Border);
   o.pos = mul(glstate.matrix.mvp,float4(PosObject,1));
   return o;
   }
   
   float4 frag (v2f i) : COLOR
    {
   return  float4(_BorderColor);   
   }
         ENDCG
        }

   }
   FallBack "Diffuse", 1
}

Const_47
Герой Форума
 
Сообщения: 271
Зарегистрирован: 23 мар 2009, 19:24
Откуда: Украина. Львов\Новояворовск


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

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

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