Unity Master
O forum está desativado! Continuamos no blog:
http://unitytutos.blogspot.com.br/
Ou no canal do Youtube:
www.youtube.com/user/XDtulio
Curta!
Últimos assuntos
» Problemas com Touch.
Ter Jul 14, 2015 4:19 pm por FernandoGarcia

» [Duvida] fazendo objeto sumir ao spawnar no mesmo lugar
Sab Ago 23, 2014 1:44 pm por John Von Stoker

» !AJUDA! TOUCH SCREEN
Sab Maio 10, 2014 4:26 pm por Capitão Cacete

» Duvida Coordenadas Mouse - terreno;
Seg Mar 10, 2014 3:25 pm por Paulosalum

» Formação de equipe amadora
Ter Dez 24, 2013 8:56 am por Fellipe

» Apresentação Rodrigo
Qui Set 19, 2013 3:29 pm por Capitão Cacete

» Erro BCE0051
Sab Jun 15, 2013 12:37 pm por anairama_24

» [Resolvido]alguem me ajuda ;D
Sab Mar 09, 2013 6:12 pm por darkgenel

» [Resolvido]Scripts touchscreen Android
Qua Mar 06, 2013 9:50 pm por Alisson Monteiro

Conectar-se

Esqueci minha senha

Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Palavras chave

Os membros mais ativos da semana

Parceiros

[Shader]Renderizar atraves de paredes e arvores.

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Shader]Renderizar atraves de paredes e arvores.

Mensagem por Capitão Cacete em Seg Jan 07, 2013 4:52 pm



Script que desenha o modelo e sobrepõe o mesmo sobre outros objetos.
Começando:
Vamos em: Create > Shader, nomei-o como quiser.
Insira esse codigo:
Código:

Shader "Outlined/Silhouetted Diffuse" {
   Properties {
      _Color ("Main Color", Color) = (.5,.5,.5,1)
      _OutlineColor ("Outline Color", Color) = (0,0,0,1)
      _Outline ("Outline width", Range (0.0, 0.03)) = .005
      _MainTex ("Base (RGB)", 2D) = "white" { }
   }
   
CGINCLUDE
#include "UnityCG.cginc"

struct appdata {
   float4 vertex : POSITION;
   float3 normal : NORMAL;
};

struct v2f {
   float4 pos : POSITION;
   float4 color : COLOR;
};

uniform float _Outline;
uniform float4 _OutlineColor;

v2f vert(appdata v) {
   // just make a copy of incoming vertex data but scaled according to normal direction
   v2f o;
   o.pos = mul(UNITY_MATRIX_MVP, v.vertex);

   float3 norm  = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
   float2 offset = TransformViewToProjection(norm.xy);

   o.pos.xy += offset * o.pos.z * _Outline;
   o.color = _OutlineColor;
   return o;
}
ENDCG

   SubShader {
      Tags { "Queue" = "Transparent" }

      // note that a vertex shader is specified here but its using the one above
      Pass {
         Name "OUTLINE"
         Tags { "LightMode" = "Always" }
         Cull Off
         ZWrite Off
         ZTest Always
         ColorMask RGB // alpha not used

         // you can choose what kind of blending mode you want for the outline
         Blend SrcAlpha OneMinusSrcAlpha // Normal
         //Blend One One // Additive
         //Blend One OneMinusDstColor // Soft Additive
         //Blend DstColor Zero // Multiplicative
         //Blend DstColor SrcColor // 2x Multiplicative

CGPROGRAM
#pragma vertex vert
#pragma fragment frag

half4 frag(v2f i) :COLOR {
   return i.color;
}
ENDCG
      }

      Pass {
         Name "BASE"
         ZWrite On
         ZTest LEqual
         Blend SrcAlpha OneMinusSrcAlpha
         Material {
            Diffuse [_Color]
            Ambient [_Color]
         }
         Lighting On
         SetTexture [_MainTex] {
            ConstantColor [_Color]
            Combine texture * constant
         }
         SetTexture [_MainTex] {
            Combine previous * primary DOUBLE
         }
      }
   }
   
   SubShader {
      Tags { "Queue" = "Transparent" }

      Pass {
         Name "OUTLINE"
         Tags { "LightMode" = "Always" }
         Cull Front
         ZWrite Off
         ZTest Always
         ColorMask RGB

         // you can choose what kind of blending mode you want for the outline
         Blend SrcAlpha OneMinusSrcAlpha // Normal
         //Blend One One // Additive
         //Blend One OneMinusDstColor // Soft Additive
         //Blend DstColor Zero // Multiplicative
         //Blend DstColor SrcColor // 2x Multiplicative

         CGPROGRAM
         #pragma vertex vert
         #pragma exclude_renderers gles xbox360 ps3
         ENDCG
         SetTexture [_MainTex] { combine primary }
      }

      Pass {
         Name "BASE"
         ZWrite On
         ZTest LEqual
         Blend SrcAlpha OneMinusSrcAlpha
         Material {
            Diffuse [_Color]
            Ambient [_Color]
         }
         Lighting On
         SetTexture [_MainTex] {
            ConstantColor [_Color]
            Combine texture * constant
         }
         SetTexture [_MainTex] {
            Combine previous * primary DOUBLE
         }
      }
   }
   
   Fallback "Diffuse"
}
O script não é meu, autor: AnomalousUnderdog.

____________________________________________________________________________________________________

Olá pessoas, Antes de postar. Pesquise no forum.

Meus tutoriais:
Spoiler:

Vídeo Tutorial: Criando um FPS#1:
Spoiler:

Tutorial: Debaixo d'gua:
Spoiler:

Tutorial: Animando Texturas:
Spoiler:
unitymaster.forumeiros.com/t41-tutorial-animando-texturas

Tutorial: Criando Hud e life:
Spoiler:

Todos os 58 Tutoriais.

avatar
Capitão Cacete
Admin
Admin

Mensagens : 95
Data de inscrição : 26/09/2011
Idade : 22

http://unitymaster.forumeiros.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum