Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731

Стандартный шейдер, отключить reflections

20.03.2019, 11:36. Показов 4815. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый подскажите пожалуйста где или как можно посмотреть все ключи базового шейдера используемого юнити по умолчанию? который standart.

Необходимо отключить у всех материалов reflections но не знаю текстового ключа по которому можно обратиться к этой переменной через EnableKeyword() или DisableKeyword()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2019, 11:36
Ответы с готовыми решениями:

Как добавить свойство '_Stencil' в стандартный шейдер?
использую Particle System на UI. ясное дело оно там не работает нормально. для этого использую assets Coffee ...

Отключить стандартный лайтбокс на вордпресс
Здравствуйте, описываю проблему: установил плагин fancybox for wordpress, все отлично, но мне надо отключить стандартный лайтбокс...

Отключить стандартный звук при нажатии Enter в компоненте TEdit
Всем трямс, есть обработка при нажатии на enter в поле Edit, так вот как избавиться от "стандартного звука" из звуковой схемы...

5
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
20.03.2019, 16:09
Лучший ответ Сообщение было отмечено koker007 как решение

Решение

Цитата Сообщение от koker007 Посмотреть сообщение
где или как можно посмотреть все ключи базового шейдера
https://unity3d.com/get-unity/download/archive

1
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
27.04.2019, 10:39  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
https://unity3d.com/get-unity/download/archive
Скачал этот архив, пересмотрел все шейдеры у которых имеется standard в названии (их не так уж и много), но не смог найти ключ по которому бы можно было бы отключить вот эту галочку программно.

все что мне нужно, это через код снять эту галочку у всех материалов у которых она по умолчанию стоит. думаю меня интересует файл Standard.shader но там этого не увидел. чтобы не качать вот его начало.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    Properties
    {
        _Color("Color", Color) = (1,1,1,1)
        _MainTex("Albedo", 2D) = "white" {}
 
        _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
 
        _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
        _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
        [Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0
 
        [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
        _MetallicGlossMap("Metallic", 2D) = "white" {}
 
        [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
        [ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
 
        _BumpScale("Scale", Float) = 1.0
        _BumpMap("Normal Map", 2D) = "bump" {}
 
        _Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
        _ParallaxMap ("Height Map", 2D) = "black" {}
 
        _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
        _OcclusionMap("Occlusion", 2D) = "white" {}
 
        _EmissionColor("Color", Color) = (0,0,0)
        _EmissionMap("Emission", 2D) = "white" {}
 
        _DetailMask("Detail Mask", 2D) = "white" {}
 
        _DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
        _DetailNormalMapScale("Scale", Float) = 1.0
        _DetailNormalMap("Normal Map", 2D) = "bump" {}
 
        [Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0
 
 
        // Blending state
        [HideInInspector] _Mode ("__mode", Float) = 0.0
        [HideInInspector] _SrcBlend ("__src", Float) = 1.0
        [HideInInspector] _DstBlend ("__dst", Float) = 0.0
        [HideInInspector] _ZWrite ("__zw", Float) = 1.0
    }
единственное что более менее похоже на то что я ищю это _GlossyReflections но только она типа Float
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
27.04.2019, 11:40
Цитата Сообщение от koker007 Посмотреть сообщение
единственное что более менее похоже на то что я ищю это _GlossyReflections но только она типа Float
Это оно и есть.
Для отключения - присвойте значение 0.
1
 Аватар для koker007
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
03.05.2019, 11:53  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
Это оно и есть.
По какой-то причине это не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    void SetMaterialSetings() {
        //Ищем меш рендеры
        MeshRenderer[] meshRenderers = gameObject.GetComponentsInChildren<MeshRenderer>();
 
        for (int num_mesh = 0; num_mesh < meshRenderers.Length; num_mesh++)
        {
 
            Material[] materialsNew = meshRenderers[num_mesh].materials;
 
            for (int num_mat = 0; num_mat < materialsNew.Length; num_mat++)
            {
                //if (materialsNew[num_mat].IsKeywordEnabled("_GlossyReflections")) {
                    Debug.Log("_GlossyReflections");
                    materialsNew[num_mat].SetFloat("_GlossyReflections", 0f);
                //}
            }
 
            meshRenderers[num_mesh].materials = materialsNew;
        }
    }
Эта функция находится в старте, материалы вытаскиваются, но этот ключ почему-то не работает, как будто его нет в том материале. Данный скрипт на многих объектах, на том котором проверяю он есть и выполняется но эта опция неизменна.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
03.05.2019, 12:24
Лучший ответ Сообщение было отмечено koker007 как решение

Решение

Цитата Сообщение от koker007 Посмотреть сообщение
По какой-то причине это не работает
У меня ваш скрипт работает.
Только я его малость переписал (но ваш вариант у меня тоже работает):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Collections;
using UnityEngine;
 
public class Test : MonoBehaviour
{
    void Start()
    {
        SetMaterialSetings();
    }
 
    void SetMaterialSetings()
    {
        foreach (var rend in GetComponentsInChildren<MeshRenderer>())
        foreach (var mat in rend.sharedMaterials)
                mat.SetFloat("_GlossyReflections", 0f);
    }
}


Кстати нужно везде использовать sharedMaterials вместо materials. Обращение к materials создает новый материал (если материал использовался несколькими объектами). И это снижает производительность.
Обращение к sharedMaterials - не создает новый материал.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2019, 12:24
Помогаю со студенческими работами здесь

[Flash] Reflections
Наверняка создал не в том разделе, но я не знаю, в каком. Если посчитаете нужным - перенесите по адресу После долгих поиском нашёл...

Как отключить брандмауэр или отключить фаервол
Я отключаю защитника Windows server 2012 . Отключаю фаервол. Расшариваю папки. В свойствах сети делаю обнарение в сети активным ну всё как...

[Cocos2d-x] Шейдер
Пример шейдера для Cocos2d-x 2.2.6, может пригодится кому. Шейдер создаётся и загружается в кэш под идентификатором &quot;air_flows&quot;....

Шейдер брызг
Всем привет! Люди, которые разбираются в GLSL, помогите с созданием шейдера брызг, например от прыжка в воду. Я не могу понять, как в...

Искажающий шейдер
Всем доброго времени суток! Столкнулся со следующей проблемой: По всей поверхности рисуется текстура воды (4-я в картинке снизу),...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru