Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/55: Рейтинг темы: голосов - 55, средняя оценка - 4.64
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
1

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток, мне нужно на куб наложить шейдер 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2018, 18:17
Ответы с готовыми решениями:

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

Почему прозрачный png в Visual Studio не прозрачный?
Можно ли с этим что-нибудь поделать?

Прозрачный блок, внутри его не прозрачный
Скажите пожалуйста, можно ли сделать <div opacity 0.5 цвет белый> <div opacity 1 цвет...

Двухсторонний ползунок
Люди, помогите, перерыл весь инет не знаю где найти элемент управления для VB 2005. Мне нужен...

4
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
29.08.2018, 18:00  [ТС] 2
Не тот шейдер нашел, проблема в том что через этот шейдер не видно других объектов
https://youtu.be/hCFElFJyGwM
0
Эксперт .NETАвтор FAQ
10410 / 5140 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
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
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
29.08.2018, 20:29  [ТС] 4
Storm23, тут такая проблемка, как будто поставили вторую камеру наперед, которая видит только одни объекты-приграды
Миниатюры
Прозрачный двухсторонний шейдер  
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
30.08.2018, 08:49  [ТС] 5
Storm23, а нет, спасибо, проблема была такая, этот куб (зеленой-голубой) был дочерним объектом другого прозрачного куба, и вообще случайно я решил попробовать забрать выключить Mesh-renderer у прозрачного объекта, и вдруг все стало как нужно, должно ли так быть?
0
30.08.2018, 08:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2018, 08:49
Помогаю со студенческими работами здесь

Двухсторонний геймерский коврик Alumic
Геймеры часто сталкиваются с проблемой выбора коврика для мыши: с одной стороны он должен...

Двухсторонний обмен сообщениями через соккет
есть клиент и сервер. организовать одностороннюю отправку сообщений получается. А как...

Кулер на материнскую плату на двухсторонний скотч
Доброго времени суток, гурру компьютерного железа! Подскажите такую вещь, очень сильно греется...

Организовать двухсторонний список, в котором хранится текст
помогите понять почему программа не работает, и как сделать чтобы она заработала #include...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru