Подправить шейдер стекла. Срочно под оплату.

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

Подправить шейдер стекла. Срочно под оплату.

Сообщение qmaks 05 янв 2012, 10:35

Здравствуйте, есть вот такой вот шейдер

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

SubShader {
        Tags {"Queue" = "Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        Pass {ColorMask 0}
       
CGPROGRAM
#pragma surface surf Lambert alpha
sampler2D _MainTex;
float4 _Color;

struct Input {
        float2 uv_MainTex;
        float4 color : COLOR;
};

void surf (Input IN, inout SurfaceOutput o) {
        float4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color*IN.color;
        o.Albedo = c.rgb;//*color;
        o.Alpha = c.a;
}
ENDCG

}

Fallback "Transparent/VertexLit"
}


Необходимо сделать так, чтобы он рисовал внутренние грани обьектов тоже. Как это сделать? Пробовал писать Cull Off, в разных местах, непомагает.
Если с этим шейдером это сделать нельзя, цель нужен прозрачный материал который отображает внутрение грани.
Последний раз редактировалось qmaks 05 янв 2012, 14:55, всего редактировалось 1 раз.
qmaks
UNIт
 
Сообщения: 57
Зарегистрирован: 03 окт 2010, 23:07

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение gnoblin 05 янв 2012, 13:05

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

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение qmaks 05 янв 2012, 13:27

Я думаю это не важно, выглядит как прозрачный материал обычный. Transparent->Diffuse также выглядит.
qmaks
UNIт
 
Сообщения: 57
Зарегистрирован: 03 окт 2010, 23:07

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение Battle Angel Alita 05 янв 2012, 13:54

>Пробовал писать Cull Off, в разных местах, непомагает.
Либо в два пасса - первый Cull Front, второй Cull Back
Либо в один пасс с Cull Off и ZWrite Off
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение qmaks 05 янв 2012, 13:56

А можно поподробнее? Конкретно как изменить мой шейдер нужно? У меня в этом опыта маловато просто.
qmaks
UNIт
 
Сообщения: 57
Зарегистрирован: 03 окт 2010, 23:07

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение Battle Angel Alita 05 янв 2012, 14:16

Синтаксис:
Используется glsl
Shader "SimpleGlass"
{
        Properties
        {
                _Color ("Main Color", Color) = (1,1,1,1)
                _MainTex ("Base (RGB) Transparency (A)", 2D) = "white" {}
        }
        SubShader
        {
                Tags { "Queue" = "Transparent" "RenderType" = "Transparent" }
               
                Blend SrcAlpha OneMinusSrcAlpha
                Lighting On
               
                Pass
                {
                        Cull Front
                        Material
                        {
                                Diffuse [_Color]
                        }
                        SetTexture [_MainTex]
                        {
                                Combine texture * primary DOUBLE, texture * primary
                        }
                }

                Pass
                {
                        Cull Back
                        Material
                        {
                                Diffuse [_Color]
                        }
                        SetTexture [_MainTex]
                        {
                                Combine texture * primary double, texture * primary
                        }
                }
    }
}
 
Мозг рака
Изображение
Аватара пользователя
Battle Angel Alita
UNIверсал
 
Сообщения: 476
Зарегистрирован: 25 ноя 2009, 14:52

Re: Подправить шейдер стекла. Срочно под оплату.

Сообщение qmaks 05 янв 2012, 14:45

А как к такому шейдеру добавить эту систему с двумя проходами?

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

SubShader {
        Tags {"Queue" = "Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
        Pass {ColorMask 0}
       
CGPROGRAM
#pragma surface surf Lambert alpha
sampler2D _MainTex;
float4 _Color;

struct Input {
        float2 uv_MainTex;
        float4 color : COLOR;
};

void surf (Input IN, inout SurfaceOutput o) {
        float4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color*IN.color;
        o.Albedo = c.rgb;//*color;
        o.Alpha = c.a;
}
ENDCG

}

Fallback "Transparent/VertexLit"
}
 
qmaks
UNIт
 
Сообщения: 57
Зарегистрирован: 03 окт 2010, 23:07


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

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

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