Тени в скрипте

Общие вопросы о Unity3D

Тени в скрипте

Сообщение dota 07 апр 2013, 07:43

Доброго времени суток всем! Вопрос - как в скрипте можно прописать тени от объектов, как, допустим, сам GameObject, чтобы контроллер (игрок) мог с ними контактировать как с объектами? Ну допустим как if (hit.GameObject...) только, чтобы объектом была тень. Не знаю, возможно ли такое вообще, но может быть посоветуете как это осуществить? Спасибо:)
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение waruiyume 07 апр 2013, 08:11

Можно попробовать выдавить силуэты, как в "Shadow volume", а затем, проверить попадание вершин игрока в объём. Или сделать рейкаст, в противоположном свету направлении, их каждой вершины сетки игрока.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Тени в скрипте

Сообщение dota 07 апр 2013, 08:17

А каким образом это делается, можно подробнее? Ну, не могли бы Вы один из двух вариантов объяснить, какой попроще:) И что потом вбивать в скрипт? Спасибо за подсказку:)
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение waruiyume 07 апр 2013, 08:31

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Тени в скрипте

Сообщение dota 07 апр 2013, 08:57

Ваш пост про вертексные тени имеете ввиду?
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение Kira 07 апр 2013, 11:34

А чего вы хотите? не проще ли пустить луч, или коллайдер по верх тени?
Kira
UNIт
 
Сообщения: 55
Зарегистрирован: 14 ноя 2012, 22:35

Re: Тени в скрипте

Сообщение dota 07 апр 2013, 17:27

Я хочу, чтобы игрок мог контактировать с тенями как статичными, так и динамичными, ну и как-то прописать в скрипте их
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение Angel 07 07 апр 2013, 17:59

Пока в формулировке будет "как-то" ничего не получится. Как вариант можно всю площадь (ну или только вокруг игрока) разбить на ячейки и из середины каждой ячейки раз в некоторый промежуток времени посылать лучи до источников света. Дойдет луч - значит центр ячейки не в тени от него, не дойдет - в тени. Ну и теперь игрок наступает на ячейки, и программка смотрит, а каково состояние этой ячейки: она как, в тени для какого-нибудь источника, или нет? Примерно так и сделано в вертексных тенях, потому они и не очень хорошие.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Тени в скрипте

Сообщение Kira 07 апр 2013, 19:10

dota писал(а):Я хочу, чтобы игрок мог контактировать с тенями как статичными, так и динамичными, ну и как-то прописать в скрипте их

В таком случае писать собственную реализацию теней.А лучше разработайте собственный двиг, где будет полнейшее взаимодействие теней. Shadow Engine. :D
Тень это просто визуализация, важно то что вы положите в основу ее физического воздействия.
Kira
UNIт
 
Сообщения: 55
Зарегистрирован: 14 ноя 2012, 22:35

Re: Тени в скрипте

Сообщение aler 07 апр 2013, 19:43

Можно попробовать как-нибудь вытаскивать значение atten из шейдинга. У меня даже идея есть как, правда pro зависимая. Рендерить доп. камеру с шейдер реплейсментом, где шейдер будет просто чб макса по значению Atten'а, а камера будет закреплена над персонажем и взяв пиксель из центра и его цвет можно будет узнать находится ли он на тени.
Аватара пользователя
aler
UNIверсал
 
Сообщения: 351
Зарегистрирован: 20 фев 2011, 17:41

Re: Тени в скрипте

Сообщение dota 07 апр 2013, 20:26

Пока в формулировке будет "как-то" ничего не получится.

Ну допустим - Есть тень от определенного объекта. Игрок, наступая на проекцию тени, перемещается на респаун. Я понял, что в основу тени нужно положить какой-то объект, а вот как это проще сделать например с динамической тенью? :-\
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение AM-Games 08 апр 2013, 00:19

dota писал(а):
Пока в формулировке будет "как-то" ничего не получится.

Ну допустим - Есть тень от определенного объекта. Игрок, наступая на проекцию тени, перемещается на респаун. Я понял, что в основу тени нужно положить какой-то объект, а вот как это проще сделать например с динамической тенью? :-\

Есть отличная идея для именно данной ситуации. Работать будет с любым типом света. Но реализуется не через столкновения, а по лучам. И второй недостаток в том, что скрипт будет постоянно загружать систему, хоть и слабо.
Такой вариант подойдет?
AM-Games
UNIт
 
Сообщения: 139
Зарегистрирован: 21 окт 2012, 11:30

Re: Тени в скрипте

Сообщение dota 08 апр 2013, 00:53

Есть отличная идея для именно данной ситуации. Работать будет с любым типом света. Но реализуется не через столкновения, а по лучам. И второй недостаток в том, что скрипт будет постоянно загружать систему, хоть и слабо.
Такой вариант подойдет?

Можно попробовать, только каким образом это реализовать?
dota
UNец
 
Сообщения: 17
Зарегистрирован: 07 апр 2013, 07:27

Re: Тени в скрипте

Сообщение artk 08 апр 2013, 03:41

Самый наилучший и быстрый способ - это "рейкастить" положение игрока на полу до каждого источника света. Если есть препятствие - значит это тень.
Аватара пользователя
artk
Старожил
 
Сообщения: 749
Зарегистрирован: 22 май 2011, 12:22

Re: Тени в скрипте

Сообщение aler 08 апр 2013, 04:05

artk писал(а):Самый наилучший и быстрый способ - это "рейкастить" положение игрока на полу до каждого источника света. Если есть препятствие - значит это тень.


Для этого нужны коллайдеры, а они не обязательно присутствуют в проекте
Аватара пользователя
aler
UNIверсал
 
Сообщения: 351
Зарегистрирован: 20 фев 2011, 17:41

След.

Вернуться в Общие вопросы

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

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