Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
k0vpack
72 / 70 / 32
Регистрация: 13.02.2018
Сообщений: 1,112
Завершенные тесты: 1
1

Прозрачный двухсторонний шейдер

28.08.2018, 18:17. Просмотров 1129. Ответов 4
Метки нет (Все метки)

Доброго времени суток, мне нужно на куб наложить шейдер Transaprent Diffuse (Legacy Shader) что бы делать куб менее прозрачным, и в то же время наложить шейдер с Cull off (то есть видимости из середины объекта), как такое можно сделать? Искал код Transparent Diffuse шейдера но не нашел

Работает не так как надо (найденый шейдер)
Кликните здесь для просмотра всего текста
Код
Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}
 
SubShader
{
    Ztest NotEqual
    Tags {"Queue"="Geometry+1" "IgnoreProjector"="True" "RenderType"="Transparent"}
    LOD 200
 
    CGPROGRAM
    #pragma surface surf Lambert alpha
   
    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
    }


Добавлено через 1 час и 37 минут
А нет, нашел, может кому вдруг пригодится
Кликните здесь для просмотра всего текста
Код
Shader "Custom/DoubleVision" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _MainTex ("Diffuse (RGB) Alpha (A)", 2D) = "white" {}
    }

    SubShader {
 		Cull off
        Blend SrcAlpha OneMinusSrcAlpha
 
        Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent"}
 
        LOD 200
        Pass {
            CGPROGRAM
 
                #pragma vertex vert
 
                #pragma fragment frag
 
                #pragma multi_compile_builtin
 
                #pragma fragmentoption ARB_precision_hint_fastest

                #include "UnityCG.cginc"
                struct v2f
                {
                    float4  pos : SV_POSITION;
                    float2  uv : TEXCOORD0;
                };
                v2f vert (appdata_base v)
                {
                    v2f o;
                    o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
                    o.uv = v.texcoord.xy;
                    return o;
                }

                sampler2D _MainTex;
                float4 _Color;
                fixed4 frag(v2f i) : COLOR
                {
                    fixed4 result = tex2D(_MainTex, i.uv) * _Color;
                    return result;
                }
            ENDCG
        }
    }
    FallBack "Transparent/Cutout/VertexLit"
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2018, 18:17
Ответы с готовыми решениями:

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

Нужен шейдер для ландшафта
Нужен шейдер для ландшафта, принимающий на входе карту высот (черно-белое изображение, вроде...

Шейдер показывающий рёбра/грани модели
Привет. Подскажите, как показывать рёбра/грани модели.

Простой шейдер на основе цвета с альфа каналом
Привет. Подскажите, как сделать шейдер на основе цвета с альфа каналом, без текстуры. Не...

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

4
k0vpack
72 / 70 / 32
Регистрация: 13.02.2018
Сообщений: 1,112
Завершенные тесты: 1
29.08.2018, 18:00  [ТС] 2
Не тот шейдер нашел, проблема в том что через этот шейдер не видно других объектов
https://youtu.be/hCFElFJyGwM
0
Storm23
Эксперт .NETАвтор FAQ
7153 / 4235 / 1552
Регистрация: 11.01.2015
Сообщений: 5,488
Записей в блоге: 32
29.08.2018, 19:43 3
Лучший ответ Сообщение было отмечено k0vpack как решение

Решение

Цитата Сообщение от k0vpack Посмотреть сообщение
Прозрачный двухсторонний шейдер
Код
Shader "Custom/TransparentDoubleSided" 
{
	Properties{
	_Color("Main Color", Color) = (1,1,1,1)
	_MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
	}

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

	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"
}
Прозрачный двухсторонний шейдер
1
k0vpack
72 / 70 / 32
Регистрация: 13.02.2018
Сообщений: 1,112
Завершенные тесты: 1
29.08.2018, 20:29  [ТС] 4
Storm23, тут такая проблемка, как будто поставили вторую камеру наперед, которая видит только одни объекты-приграды
0
Миниатюры
Прозрачный двухсторонний шейдер  
k0vpack
72 / 70 / 32
Регистрация: 13.02.2018
Сообщений: 1,112
Завершенные тесты: 1
30.08.2018, 08:49  [ТС] 5
Storm23, а нет, спасибо, проблема была такая, этот куб (зеленой-голубой) был дочерним объектом другого прозрачного куба, и вообще случайно я решил попробовать забрать выключить Mesh-renderer у прозрачного объекта, и вдруг все стало как нужно, должно ли так быть?
0
30.08.2018, 08:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2018, 08:49

Можно ли передать в шейдер градиент, как параметр?
Здравствуйте, можно ли передать в самописный шейдер градиент как параметр? Я нигде не нашел...

Шейдер, объект которого своим перекрытием отключает видимость нижнего объекта
Привет. Есть GameObject - куб черного полупрозрачного цвета. Есть сфера в его центре, но выше,...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru