forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

WISHMASTER35 16.01.2013 03:40

Ответ: Вопросы от новичка
 
А в шейдере в методе вычисления света можно определить от какого типа источника вычисляем свет? Нужно изменить вычисление от Direction Light.

pax 16.01.2013 09:21

Ответ: Вопросы от новичка
 
Судя по инклудам можно попробовать
PHP код:

#if defined (DIRECTIONAL) 
...
#endif 

или

PHP код:

#if defined (USING_DIRECTIONAL_LIGHT) 
...
#endif 


Morganolla 16.01.2013 15:17

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 249520)
Можно включать или выключать скрипты например, а так да, я тоже использую когда надо. Свитч быстро работает.

Кстати а как выключать скрипты? Так:
Код:

public class example : MonoBehaviour {
    void Example() {
        GetComponent<PlayerScript>().enabled = false;
    }
}


pax 16.01.2013 15:29

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 249638)
Кстати а как выключать скрипты? Так:

Да, при этом отключаются OnGUI, Update, FixedUpdate, LateUpdate

Morganolla 16.01.2013 16:02

Ответ: Вопросы от новичка
 
А если отключить выполнение скрипта из него самого, то это будет типа:
enabled = false;
или
this.enabled = false;

???

pax 16.01.2013 16:07

Ответ: Вопросы от новичка
 
Да, так и есть, оба варианта одинаковые. this не обязательно.

WISHMASTER35 16.01.2013 17:05

Ответ: Вопросы от новичка
 
Не знаете использование в шейдере half или float влияет на скорость?

pax 16.01.2013 17:31

Ответ: Вопросы от новичка
 
Влияет, но рекомендация другая - если используешь везде half - используй half, вреда больше будет из-за конвертации из типа в тип вроде бы.

WISHMASTER35 16.01.2013 17:42

Ответ: Вопросы от новичка
 
Для текстурных координат half наверно лучше не использовать. Хотя сомневаюсь что не хватит точности даже при текстурах размером 4096.
А вот для цвета half должно хватить. По-моему там и байта хватило бы.
В я так понял CG неявная конвертация. Можно и не подозревая такого наворотить с этими типами)
Умножение float4 на float я так понимаю тоже хуже чем float4 на float4?

pax 16.01.2013 17:53

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 249657)
Умножение float4 на float я так понимаю тоже хуже чем float4 на float4?

Тут если надо умножить компоненты вектора на число, то все норм. Или покомпонентно перемножить два вектора наверное тоже норм.

WISHMASTER35 16.01.2013 23:58

Ответ: Вопросы от новичка
 
Написал свой Lighting.inc со вспомогательными функциями для шейдеров.
Как в нем прописать неявное свойство как _Time?
Написал uniform float3 _SunDir но что-то не работает(

seaman 17.01.2013 00:17

Ответ: Вопросы от новичка
 
Цитата:

неявное свойство
Т.е. свое значение, передаваемое в шейдер?
А Вы его в шейдер то передаете? _Time за Вас передает Юнити, а Ваш _SunDir Вам придется передавать вручную - Material.SetVector.

WISHMASTER35 17.01.2013 01:18

Ответ: Вопросы от новичка
 
Я предполагал передавать так Shader.SetGlobalVector.
Когда-то тут спрашивал как нарисовать квадрат в EditorGUI.
Вот как
Код:

        public static void FillRect(Rect rect, Color color) {
                Color oldColor = GUI.color;
                GUI.color = color;
                GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture);
                GUI.color = oldColor;
        }

Спасибо рефрактору. Может еще и найду как список рисуется в иерархии окне сцены и асетов.
Вообще странный способ нарисовать квадрат. Могли бы и спецальную функцию для это сделать.
Зато есть функция EditorGUIUtility.DrawColorSwatch которая используется только при рисовании поля для цвета.

pax 17.01.2013 01:26

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 249721)
Написал свой Lighting.inc со вспомогательными функциями для шейдеров.
Как в нем прописать неявное свойство как _Time?
Написал uniform float3 _SunDir но что-то не работает(

В инклудах время объявлено так же
PHP код:

uniform float4 _Time


WISHMASTER35 17.01.2013 01:41

Ответ: Вопросы от новичка
 
pax, да я тоже там подсмотрел.


Часовой пояс GMT +4, время: 20:48.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot