Некорректная отрисовка (прозрачность)

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

Некорректная отрисовка (прозрачность)

Сообщение DGHaZe 13 июл 2016, 19:04

Добрый день объясните пожалуйста, что не так написал. В данный момент учусь программировать по старой книжке по шейдерам (Unity Cook Book) и написал все как, там указано но при запуске не правильно отображается ниже скрин.
Скрытый текст:
Изображение


В области где прозрачность не отображается небо и какае-то тень от меша внизу, хоть тень я в меше отключил. И как сделать шейдер двухсторонним ?
Код:
Скрытый текст:
Shader "Legacy Shaders/Transparent/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}

SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 200
ZWrite Off

CGPROGRAM
#pragma surface surf Lambert alpha:fade

sampler2D _MainTex;
fixed4 _Color;

struct Input {
float2 uv_MainTex;
};

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

Fallback "Legacy Shaders/Transparent/VertexLit"
}
Изображение
Аватара пользователя
DGHaZe
UNец
 
Сообщения: 36
Зарегистрирован: 18 сен 2015, 20:12
  • Сайт

Re: Не корректная от рисовка (прозрачность)

Сообщение Paul Siberdt 13 июл 2016, 19:20

У вас не тень, на плашке рисуется, а примешивается цвет, который указали в материале.
И как сделать шейдер двухсторонним?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5233
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Некорректная отрисовка (прозрачность)

Сообщение DGHaZe 13 июл 2016, 20:18

ну а как мне его убрать ? что бы не смешивало
Изображение
Аватара пользователя
DGHaZe
UNец
 
Сообщения: 36
Зарегистрирован: 18 сен 2015, 20:12
  • Сайт

Re: Некорректная отрисовка (прозрачность)

Сообщение Paul Siberdt 13 июл 2016, 23:30

Исключите из шейдера этот цвет. :) Вы ж по книжке учитесь, там должно быть все написано.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5233
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Некорректная отрисовка (прозрачность)

Сообщение DGHaZe 14 июл 2016, 17:14

А можете вы объяснить? Пожалусьа :D Просто я не знаю сколько мне до этого в книге и если там такое.
Изображение
Аватара пользователя
DGHaZe
UNец
 
Сообщения: 36
Зарегистрирован: 18 сен 2015, 20:12
  • Сайт

Re: Некорректная отрисовка (прозрачность)

Сообщение alt3d 14 июл 2016, 17:27

1. Не вижу ошибки в коде шейдера. Мне кажется ты скопировал не свой код, а дефолтный шейдер с прозрачностью.
2. Скопировал твой код, у меня все хорошо отображается вроде. )

Скрытый текст:
Изображение
alt3d
Старожил
 
Сообщения: 672
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Некорректная отрисовка (прозрачность)

Сообщение DGHaZe 14 июл 2016, 18:21

код сейчас выглядит так ион стал работать нормально после первого поста вот код:
Скрытый текст:
Shader "Atmosphere system/RainShader" {
Properties {
_RainColor ("Rain color", Color) = (1,1,1,1) //параметр цвета дождя
_Tex1 ("Rain textura1", 2D) = "white" {} //первая текстура
_Tex2 ("Rain textura2", 2D) = "white" {} // вторая текстура
_RainOp("Rain opasite", Range(0.1,1)) = 0.5 // степень прозрачности дождя
_ScrollX("Speed texture X", Range(0,30)) = 10
_ScrollY("Speed texture Y", Range(0,30)) = 10
}

SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 200
ZWrite Off
Cull Off

CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard alpha:fade

// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0

sampler2D _Tex1;
sampler2D _Tex2;
fixed4 _RainColor;
float _RainOp;
float _ScrollX;
float _ScrollY;

struct Input {
float2 uv_Tex1;
float2 uv_Tex2;
};


void surf (Input IN, inout SurfaceOutputStandard o) {
fixed2 scrollUV1 = IN.uv_Tex1;
fixed2 scrollUV2 = IN.uv_Tex2;

//движение
fixed Xscrolled = _ScrollX * _Time.x;
fixed Yscrolled = _ScrollY * _Time.x;

scrollUV1 += fixed2(Xscrolled,Yscrolled);
scrollUV2 += fixed2(Xscrolled,Yscrolled);

// Albedo comes from a texture tinted by color
fixed4 c = ((tex2D (_Tex1, scrollUV1) + tex2D (_Tex2, scrollUV2)) * _RainColor) * _RainOp;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}


Но я по примеру написал еще почти такойже но без анимации и там все равно эта проблема есть, вот код второго шейдера:
Скрытый текст:
Shader "Atmosphere system/RainShaderFX" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader {
Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
LOD 200
ZWrite Off
Cull Off

CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard alpha:fade

// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0

sampler2D _MainTex;
fixed4 _Color;

struct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutputStandard o) {
// Albedo comes from a texture tinted by color
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
Изображение
Аватара пользователя
DGHaZe
UNец
 
Сообщения: 36
Зарегистрирован: 18 сен 2015, 20:12
  • Сайт

Re: Некорректная отрисовка (прозрачность)

Сообщение alt3d 15 июл 2016, 10:51

Даже не знаю.
Твои шейдеры корректно работают у меня :)
При любом режиме рендеринга, настройка качества и т.п.
Косяков с прозрачностью нет, текстура скроллится, рисуется с обоих сторон полигона и т.д.
alt3d
Старожил
 
Сообщения: 672
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ


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

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

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