Шейдер сечения.

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

Шейдер сечения.

Сообщение ru6n 24 фев 2011, 22:04

Не работает. Помогите. //нубнубом :-??
жду VISIO
Аватара пользователя
ru6n
UNец
 
Сообщения: 11
Зарегистрирован: 10 янв 2011, 15:31
Откуда: Уфа
  • ICQ

Re: Шейдер сечения.

Сообщение gnoblin 24 фев 2011, 23:34

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

Re: Шейдер сечения.

Сообщение ru6n 26 фев 2011, 12:50

Спасибо Всем! Всё работает, просто у меня "руки кривые". :ymparty:
жду VISIO
Аватара пользователя
ru6n
UNец
 
Сообщения: 11
Зарегистрирован: 10 янв 2011, 15:31
Откуда: Уфа
  • ICQ

Re: Шейдер сечения.

Сообщение gnoblin 26 фев 2011, 20:59

есть еще такой шейдер в справке

SL-SurfaceShaderExamples-8.jpg


Синтаксис:
Используется glsl
Shader "Example/Slices" {
    Properties {
      _MainTex ("Texture", 2D) = "white" {}
      _BumpMap ("Bumpmap", 2D) = "bump" {}
    }
    SubShader {
      Tags { "RenderType" = "Opaque" }
      Cull Off
      CGPROGRAM
      #pragma surface surf Lambert
      struct Input {
          float2 uv_MainTex;
          float2 uv_BumpMap;
          float3 worldPos;
      };
      sampler2D _MainTex;
      sampler2D _BumpMap;
      void surf (Input IN, inout SurfaceOutput o) {
          clip (frac((IN.worldPos.y+IN.worldPos.z*0.1) * 5) - 0.5);
          o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
          o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
      }
      ENDCG
    }
    Fallback "Diffuse"
  }
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдер сечения.

Сообщение gnoblin 14 мар 2011, 04:07

cap, можно заменить обычным cg шейдером т.к. у меня он тут всё-равно особо не реагирует на освещение:
Синтаксис:
Используется glsl
Shader "VertexLit Clipped Caps" {

Properties {
        _CapColor ("Cap Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
        _ClipTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
        Tags {"IgnoreProjector"="True" "RenderType"="TransparentCutout"}
        LOD 200
        Cull Front
CGPROGRAM
#pragma surface surf Lambert alphatest:_Cutoff vertex:vert

#include "UnityCG.cginc"
sampler2D _MainTex;
sampler2D _ClipTex;
float4 _CapColor;

struct Input {
        float2 uv_MainTex;
        float2 clipCoords;
        float4 faceN;
};

uniform float4x4 _ClipTextureMatrix;

void vert (inout appdata_full v, out Input o)
{
        float4 c = mul( _ClipTextureMatrix, mul( _Object2World, v.vertex ) );
       
        o.clipCoords = c;
       
        float4 zdir = float4(1, 0, 0, 0);
        o.faceN = mul( _ClipTextureMatrix, zdir );
        //o.faceN = normalize(o.faceN);
        //o.faceN =  normalize(mul ((float3x3)_Object2World, o.faceN));
}

void surf (Input IN, inout SurfaceOutput o)
{
        //half4 c0 = tex2D(_MainTex, IN.uv_MainTex);
        half4 c = tex2D(_ClipTex, IN.clipCoords);
        o.Albedo = _CapColor;
        o.Normal = IN.faceN.xyz;
        o.Alpha = c.a;
}
ENDCG
                               
                }
       
        Fallback "VertexLit"
}
 
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдер сечения.

Сообщение gnoblin 14 мар 2011, 04:09

Surface версия vertexlitclip:
Синтаксис:
Используется glsl
Shader "VertexLit Clipped" {

Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
        _ClipTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
        Tags {"IgnoreProjector"="True" "RenderType"="TransparentCutout"}
        LOD 200
        //Cull Off
CGPROGRAM
#pragma surface surf Lambert alphatest:_Cutoff vertex:vert

#include "UnityCG.cginc"
sampler2D _MainTex;
sampler2D _ClipTex;
float4 _Color;

struct Input {
        float2 uv_MainTex;
        float2 clipCoords;
};

uniform float4x4 _ClipTextureMatrix;

void vert (inout appdata_full v, out Input o)
{
        float4 c = mul( _ClipTextureMatrix, mul( _Object2World, v.vertex ) );
       
        o.clipCoords = c;
}

void surf (Input IN, inout SurfaceOutput o)
{
        half4 c0 = tex2D(_MainTex, IN.uv_MainTex);
        half4 c = tex2D(_ClipTex, IN.clipCoords);
        o.Albedo = c0.rgb;
        o.Alpha = c.a;
}
ENDCG
                               
                }
       
        Fallback "VertexLit"
}


То же самое только с бампом:
Синтаксис:
Используется glsl
Shader "VertexLit Clipped BumpSpec" {

Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Base (RGB) Gloss(A)", 2D) = "white" {}
        _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
        _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
        _Shininess ("Shininess", Range (0.03, 1)) = 0.078125
        _ClipTex ("Base (RGB)", 2D) = "white" {}
        _BumpMap ("Normalmap", 2D) = "bump" {}
}
SubShader {
        Tags {"IgnoreProjector"="True" "RenderType"="TransparentCutout"}
        LOD 200
        //Cull Off
CGPROGRAM
#pragma surface surf BlinnPhong alphatest:_Cutoff vertex:vert

#include "UnityCG.cginc"
sampler2D _MainTex;
sampler2D _ClipTex;
sampler2D _BumpMap;
float4 _Color;
float _Shininess;

struct Input {
        float2 uv_MainTex;
        float2 uv_BumpMap;
        float2 clipCoords;
};

uniform float4x4 _ClipTextureMatrix;

void vert (inout appdata_full v, out Input o)
{
        float4 c = mul( _ClipTextureMatrix, mul( _Object2World, v.vertex ) );
       
        o.clipCoords = c;
}

void surf (Input IN, inout SurfaceOutput o)
{
        half4 c0 = tex2D(_MainTex, IN.uv_MainTex);
        half4 c = tex2D(_ClipTex, IN.clipCoords);
        o.Albedo = c0.rgb * _Color.rgb;
        o.Gloss = c0.a;
        o.Alpha = c.a;
        o.Specular = _Shininess;
        o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
}
ENDCG
                               
                }
       
        Fallback "VertexLit"
}


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

Re: Шейдер сечения.

Сообщение gnoblin 14 мар 2011, 04:13

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

Re: Шейдер сечения.

Сообщение gnoblin 14 мар 2011, 04:15

Демки вот

1. Без бампа и криво-теней.
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://gnoblin.ru/shaders/clip-n-cap/WebPlayer.unity3d&w=800&h=600&t=false&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>

2. С бампом и криво-тенями.
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://gnoblin.ru/shaders/clip-n-cap-bump/WebPlayer.unity3d&w=800&h=600&t=false&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Шейдер сечения.

Сообщение seaman 14 мар 2011, 10:57

Исправь ссылку во втором примере на прямую...
http://gnoblin.ru/shaders/clip-n-cap-bu ... er.unity3d
Там стоит:
http://gnoblin.ru/shaders/clip-n-cap-bu ... layer.html
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Шейдер сечения.

Сообщение gnoblin 14 мар 2011, 12:52

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


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

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

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