Пятница, 26 Апреля 2024, 18:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » динамические лучи бога. ([РЕШЕНО])
динамические лучи бога.
DantorSДата: Пятница, 14 Февраля 2014, 20:56 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Взял картинку из презентации движка snowdrop.

1.
Как создать дырки при попадании пули
(Я про разрушения объектов знаю только как это сделать при помощи Rayfire. Тут наверное надо как-то скриптом. Но как?)
2.
Как осуществить динамические лучи бога. Т.е. чтоб они просачивались в эти дырки?
(Но наверное если дырки настоящими а не илюзией то и 2 второй вопрос не будет иметь значения, но я так не хочу. Тоесть я хочу сказать может как-то при попаднии пули накладывается альфа текстура?)


Сообщение отредактировал DantorS - Воскресенье, 16 Февраля 2014, 23:24
VirtualcreatureДата: Пятница, 14 Февраля 2014, 21:19 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Можно сделать нечто подобное при помощи альфа маски и спрайтов, но на изображении есть еще и странная глючная тень от объекта, находящегося за доской.
DantorSДата: Пятница, 14 Февраля 2014, 23:14 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Цитата Virtualcreature ()
Можно сделать нечто подобное при помощи альфа маски и спрайтов, но на изображении есть еще и странная глючная тень от объекта, находящегося за доской.

И как?
Если сделать через альфа маску то свет не будет проходить (т.е. лучи бога), т.к. это все равно останется одним объектом.
Со спрайтов наверное то же самое(я плохо в них разбираюсь).


Сообщение отредактировал DantorS - Пятница, 14 Февраля 2014, 23:20
castielblackДата: Пятница, 14 Февраля 2014, 23:52 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Можно попробовать за счёт этой маски лучи распространять. Тобиш с учётом источника света.

Добавлено (14.02.2014, 23:52)
---------------------------------------------
Чуть погуглил, выяснил, что нечто похожее это Volumetric Lighting, но увы, это постэффект. sad


Знания : C#, Lua, C++, Unity, Dreemchest, DirectX 11
Выпущенные проекты : BuildAndRun, Match 3 Cubes
DantorSДата: Суббота, 15 Февраля 2014, 00:54 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Цитата castielblack ()
Можно попробовать за счёт этой маски лучи распространять. Тобиш с учётом источника света.

Но как? Изначально есть меш, который не пропускает свет. При попадании пули накладывается альфа текстура. Но это всего лишь текстура и на распространение света она никак не влияет.
Цитата castielblack ()
Чуть погуглил, выяснил, что нечто похожее это Volumetric Lighting, но увы, это постэффект.

Volumetric lighting это не совсем постэфект, это просто лампочка которая светит не так как все остальные, а то что изображено на скриншоте выше global illumination (глобальное освещение). Разница лишь в том, что Volumetric Lighting - это уже заданная на уровне лампочка, а global illumination - динамическая лампочка.

Добавлено (15.02.2014, 00:52)
---------------------------------------------
P.S.: точнее не глобальное освещение, а его иллюзия. Есть много алгоритмов (если интересно) получения такой иллюзии. Чаще всего это Fake global illumination.

Добавлено (15.02.2014, 00:54)
---------------------------------------------
Так для справки Faking Global illumination используется в cry engine 3.

Добавлено (15.02.2014, 00:54)
---------------------------------------------
Но мой вопрос остается открытым.

Сообщение отредактировал DantorS - Суббота, 15 Февраля 2014, 00:53
VirtualcreatureДата: Суббота, 15 Февраля 2014, 01:49 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
DantorS, Пуля попадает в объект ->- на альфа-текстуру наносится декаль (на выходе получается дырка) На месте соприкосновения пули и объекта создается плоское изображение, или цепочка изображений, одним концом в дырке, другим - от солнца.

Вот тебе видео из игры Call of Duty 2, где применялся схожий эффект
Единственное отличие от COD2 и snowdrop версии- направление луча от солнца.

Хотя, я могу ошибаться на счёт того, как это сделано на Snowdrop-е, ибо там очень специфические партикли, реагирующие на свет и тень, но мы также можем заметить, что дым отреагировал на тень объекта, находящегося за доской (какое-то сооружение из металлических прутьев) А еще в игре нету теней от полупрозрачных объектов (например, стекла или дыма) на основе чего можно сказать с 70% уверенностью, что эти лучики не являются следствием глобального освещения, не смотря на то, что в игре тени есть даже на воздухе. (только от зданий, кстати говоря - от более мелких объектов тени самые обычные. - это значит, что тени на воздухе - следствие воздействия на что-то вроде старого знакомого всем тумана, если не ошибаюсь - схожим образом была выполнена вода в HL2 - отдельный туман, распространяющийся от глаз зрителя глубже в воду.)


Сообщение отредактировал Virtualcreature - Суббота, 15 Февраля 2014, 02:22
AdomДата: Суббота, 15 Февраля 2014, 10:20 | Сообщение # 7
Печенька!
Сейчас нет на сайте
DantorS, В стандартном ассете есть такой Image Effect как Sun Shufts (Вроде так) и он делает такие лучи.
Nasa13Дата: Суббота, 15 Февраля 2014, 12:51 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте


типа такого нужно?

Я правда не сделал систему стрельбы ,честно, мне лень и я пока не знаю, как сделать так, чтобы в точке контакта Raycast создавался imposter skinmesh ,и удалялся когда их определенное кол....

Думаю, после видео ясно,Как я это сделал=) я оставил много подсказок! Но тут есть много минусов*( я даже не знаю,как пример скинуть то=)


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Суббота, 15 Февраля 2014, 12:54
DantorSДата: Суббота, 15 Февраля 2014, 18:53 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Цитата Nasa13 ()
типа такого нужно?

Я правда не сделал систему стрельбы ,честно, мне лень и я пока не знаю, как сделать так, чтобы в точке контакта Raycast создавался imposter skinmesh ,и удалялся когда их определенное кол....

Думаю, после видео ясно,Как я это сделал=) я оставил много подсказок! Но тут есть много минусов*( я даже не знаю,как пример скинуть то=)

Ты моллодец, но как я вижу вместе дыркой создается volumetric light. Но как сделать, если в игре испльзуятся смена дня и ночи, т.е. солнце будет изменяь свое положение, т.е. volumetric light будет развернут в сторону солнца? Скриптом? Так чтобы если солнце находится на востоке volumetric light стоял на 90 градусов, а если на западе то -90 градусов. Так?
Nasa13Дата: Суббота, 15 Февраля 2014, 19:34 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Совсем необязательно использовать "волиум объекты", можно обойтись и патиклом! НО! В любом случае, это плохо!

Я позволю себе дать пару советов...

Такой эффект обычно не делается в РПГ играх, где ,как раз таки и есть смена дня и ночи....Обычное такое делается в ФПС (онлайн и сингл), где не надо долгое время хранить в памяти такие вещи, И нагружать процессор... Стоит помнить, что даже если делать патиклами эффект света, то получается на 1 патикл 1 Draw Call , а если мы сделаем 50 выстрелов? А убирать пули уже некрасиво, т.е. получается мы должны будем загрузить 50 патиклов, и 100 скинмешов!(почему сто?)...

1- пуля, 2 -края пули,т.е. как видно у меня на видео, там как бы плоская панель, но нет, просто Depth mask так работает, чтобы сделать края, и эффект выпуклости, надо
1) либо усовершенствовать скрипт шейдера
2)либо просто добавить еще один скинмеш, обволакивающий меш с маской...

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

Но если честно, я думаю это убьет фпс если таких объектов в игре(которые можно прострелить таким образом), будет штук так 33 , и на каждой по 50 выстрелов,даже если делать ок. куллинг, все-равно жестко получится...Плюс еще ,даже если не использовать патикл, эффект волиум это
1) меш тело
2) шейдер

Что такое шейдр? это страшная вещь=) ну каждый жрет по-своему, но жрут они хорошо,добротно. Особенно учитывая, что модель шейдеров не 1.1.

Можно сделать разворот LookAtThing - очень хорошо даже пойдет, это как в ТД башеньки смотрят на объект, такой же принцип...Но е-мое ,еще раз повторюсь, не стоит нагружать проект подобной фигней, действительно, шуму меньше чем пыли...Я пока не знаю как целиком дать пример, он у меня в проекте, в котором основной проект... Если надо будет, я могу по частям=) ну там шейдер подонать,хотя, он , в принципе ,играет ключевую роль


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Суббота, 15 Февраля 2014, 19:34
DantorSДата: Суббота, 15 Февраля 2014, 20:27 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Nasa13. Спасибо что разъяснил. Но как можно сделать этот свет динамичским, тоесть как бы делать декалью так чтоб через неё мог проникать свет. Может как-то на эту декаль поставить коллизию, кторая будет пропускать свет.
Nasa13Дата: Суббота, 15 Февраля 2014, 20:55 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Погоди! Пока ты не запутался, я тебе попробую разъяснить, что такое декаль, а что такое меш тело!

Смотри, декаль - по сути, это 2д спрайт, который накладывается НА поверхность меш 3д тела!

Что такое меш? Это и есть 3д тело! Если я не ошибаюсь,какой бы ты декаль не делал, она не сможет сделать прозначным сам меш, т.е. тебе нужно сделать 3д тело, которое будет собой закрывать две стенки(одна передняя, лицо, на которую мы смотрим, а другая сторона ,это задняя, и надо учитывать, что между ними еще полое расстояние!). И вот, само меш тело имеет такой шейдер, что делает прозрачным все, что попадет в область меша( и сам меш тоже)...

Декаль, она , по сути, может уничтожить первую стенку, задняя сама по себе прозрачная( прозрачна она потому, что серфейс имеет одну видимую сторону)...Если объяснять еще проще, поставь quad в юнити ,и ты увидишь ,что видишь только одну сторону,это сделано для того, чтобы не нагружать лишним рендером игру...

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

Придется делать скрипт, рейкаст, который учитывает еще и заднюю стенку, и еще на ней ставит такую же параллельную отметину...НО!!! Приглядись к своей картинки,которую сбросил ты, там еще эффект такой ,что в дырке можно увидеть боковые стеночки, т.е. как -будто щит не полый внутри...Это делается обычно для видео-трейлера, но не для игры...

т.е. , вывод - невозможно сделать декалями, потому как они сами по себе представляют одностороннюю текстуру с билборд...

Поэтому данную систему можно сделать, на мой взгляд, только при помощи меш тел! Не стоит забывать, что меш тело это 3д объект, и неважно,Какого он размера, он имеет свои полигоны, и свой отдельный рендер,Который значительно превышает декали...

ясно объяснил?

Вопрос поставлен не корректно ,декалями нет...хоть что ты на них делай, а коллизии , это короче вопрос неправильный...Если тебе уж прям ТАК надо, тогда придется писать рейкаст ,который с двух сторон оставляет декали( т.е. нужно сделать луч. который не будет останавливаться на первом слое, а идет до бесконечности, но высчитывать первые две поверхности, короче, гемор) и наложить на него шейдр( честно, не знаю, можно ли на декали нормальные шейдеры накладывать), и еще огромный геморой,сделать боковые стенки у дырки...так что...я не знаю что посоветовать, я могу сделать боковые стенки, просто еще один скинмеш, который имеет не "траспер"(не прозрачный) шейдер, и он обволакивает наш меш, на котором стоит "маска глубины"...

Все просто

2 меша ( один дырка. другой обволакивает ее ,создает стенки)
1 патикл(эмитация света)...

И прощай фпс=)


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1
DantorSДата: Воскресенье, 16 Февраля 2014, 06:06 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
Nasa13, попробую сделать твой вариант. Но, возьму пример.

Это по сути обычная плоскость с альфа текстурой. Но как разработчики игр делают чтобы тым где дырки коллизии не было, а там где метал была. Там же по сути реализована какято колизия по альфа текстуре. Как это сделать в unity?
Nasa13Дата: Воскресенье, 16 Февраля 2014, 16:59 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Оу-оу-оу! Easy!=)

Ты круто замахнулся, скажу я тебе=) ты уже говоришь о разрушении! Это очень тяжелая технология, только не надо сравнивать зачуханный unity с frostbit или Unreal или cry3...И не надо меня переубеждать, что он лучше этих двигов, да в любом из этих двигов оптимизация лучше в разы и фитчей больше=)

В юнити есть физика одежды, есть специальные инструменты для разрушения предметов...

Можно сделать фиговую разрушаемость, типа....У нас есть ящик, с 4 сторонами, каждую сторону делаем отдельным мешом с физикой, затем соединяем 4 стороны между собой джоинтами, и потом при попадании пули , в месте удара включаем патикл с частицами дерева( можно крупные сделать, добавляем так же физику патиклу), и типа отключаем джоинты и идет разрушаемость...Я условно говорю, можно ящик разделить на 30 частей, будет эффектней...Но сейчас уже никто так не делает, делают только те, кто не знают как по -другому...

По текстуре высоты можно изменять физику ландшафта, т.е. и сам ландшафт...но тут уже идет изменение физ объекта, т .е о чем ты говоришь...Чтобы сделать разрушаемость, не просто надо наложить текстуру , или поставить меш с шейдером Глубины Ма...Здесь уже нужно использовать физический движок...



Пример физики.....

Я не люблю по кусочкам собирать объект, чтобы его разрушить, но е-мое, не имея знаний, другого выхода нет!

Еще есть шейдер, он как бы уничтожает предмет, разъедает его, но там уже опять же Глубина используется, и физику это не убирает....

http://forum.unity3d.com/threads/95979-Shatter-Toolkit

Вот разрушение 80 $ стоит, но я не уверен в крутости

Добавлено (16.02.2014, 16:53)
---------------------------------------------
и в догонку!

Чтобы не быть пустословом



Если тебе нужно сделать шутер, бери UDK , он больше подходить, и тем более он бесплатный(пока не наберешь 50 тыс долл, но если я не ошибаюсь, нужно еще 100 баксов для продажи отдать, но это не 1500 как юнити) и будет тебе счастье...

Этот говно-юнити зажрался, уже давно все на бесплатное перешли=) я на нем сижу потому, что я от простого к сложному, еще не дорос до udk там гемороя...жесть....Но многие вещи делаются легче чем в unity и оптимизация в разы выше...он вообще по всем параметрам выигрывает...

Добавлено (16.02.2014, 16:59)
---------------------------------------------
не ищи здесь крутоты, здесь все примитивно, потому как разрабы даже в про версии не смогли сделать нормальный параллакс, ограничев его ,и многие функции нельзя исполььзовать, потому как это вредит оптимизации, и вопрос тогда - да зачем они вообще? И багов много...

Если нужна красивая графикА, с офигенной сменой дня и ночи, бери CryEngine ...

То, что хочешь сделать ты на юнити ,убьет игру нафиг...не советую...я уже кучу гемора испытываю, основываясь на том ,что даже сохраняя сцену в редакторе ,У меня ,бывает, смещаются объекты, и заново выставляются те функции, что я убрал...И еще приходится перезапускать кучу раз юнити, чтобы заработал скрипт, потому как он правильный, но из-за долгой работы, юнити тупит ,и его приходится перезапускать, чтобы он банально добавил функцию public ...Если хочешь здесь делать игру ,давай проще..ок?=) это совет, я не настаиваю...

CryEngine имее инструмент для смены дня и ночи, в последней версии он стал вообще удобным=)


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Воскресенье, 16 Февраля 2014, 16:49
EpetukДата: Воскресенье, 16 Февраля 2014, 17:52 | Сообщение # 15
частый гость
Сейчас нет на сайте
Цитата
я уже кучу гемора испытываю, основываясь на том ,что даже сохраняя сцену в редакторе ,У меня ,бывает, смещаются объекты, и заново выставляются те функции, что я убрал...И еще приходится перезапускать кучу раз юнити, чтобы заработал скрипт, потому как он правильный, но из-за долгой работы, юнити тупит ,и его приходится перезапускать, чтобы он банально добавил функцию public ...Если хочешь здесь делать игру ,давай проще..ок?=) это совет, я не настаиваю...

Нехрен пиратки ставить.
Цитата Nasa13 ()
я на нем сижу потому, что я от простого к сложному, еще не дорос до udk там гемороя...жесть....Но многие вещи делаются легче чем в unity и оптимизация в разы выше...он вообще по всем параметрам выигрывает...

мыши плакались, кололись...
Неосиляешь - вали на край или удк, че ныть то?:)
Nasa13Дата: Воскресенье, 16 Февраля 2014, 18:00 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Воскресенье, 16 Февраля 2014, 18:01
DantorSДата: Воскресенье, 16 Февраля 2014, 18:05 | Сообщение # 17
заслуженный участник
Сейчас нет на сайте
Nasa13, Причем тут разрушения?

Повторяюсь: нужно чтобы там где дырки колизии не было. Как это сделать в unity?
Nasa13Дата: Воскресенье, 16 Февраля 2014, 18:10 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
Я думал ты про выстрелы говоришь...Дырки от выстрелов, чтобы физ тело уничтожалось, так тыж конкретней изъясняйся=)

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

component--->physic-->Mesh collid.

Добавлено (16.02.2014, 18:10)
---------------------------------------------
Только это вариант, который скажется на оптимизации...ты выбирай=)

Я уже проверял, у меня фпс упал...Пришлось обычными примитивами ....


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Воскресенье, 16 Февраля 2014, 18:09
DantorSДата: Воскресенье, 16 Февраля 2014, 18:12 | Сообщение # 19
заслуженный участник
Сейчас нет на сайте
Цитата Nasa13 ()
Я думал ты про выстрелы говоришь...Дырки от выстрелов, чтобы физ тело уничтожалось, так тыж конкретней изъясняйся=)

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

component--->physic-->Mesh collid.

Я про то что если убрать колизию не со всего объекта а только с дырок, то и свет будет пропускаться

Добавлено (16.02.2014, 18:12)
---------------------------------------------
если я не ошибаюсь mesh colider ставит коллизию на меш, без учета альфа текстуры.

Nasa13Дата: Воскресенье, 16 Февраля 2014, 18:15 | Сообщение # 20
заслуженный участник
Сейчас нет на сайте
Извиняй, я не экстрасенс=)

Я тебе уже ответил, В любом случае

Еще есть вариант, сделать физическое тело по типу "кубик" , ужать его, и так кучу сделать ,и на каждую нужную грань поставить свой кубик...Как-то так...но тот вариант ,что выше, он проще и лучше...но по оптимизации хуже

Добавлено (16.02.2014, 18:15)
---------------------------------------------
Коллизия не может ставиться на текстуру( за исключением спрайта)...Коллизия ставится на Меш тело.(точка)...я так думаю

Я не знаю способа, и никогда не видел, чтобы по АЛЬФА текстуре( которая отвечает за прозрачность меша) выставлялась коллизия


все люди одинаково полезны,говорил людоед туристам.

Мешает грудь? Спячь под "СПОЙЛЕР.*)

моя мини демка ,хоррор http://3drad-alec.ucoz.com/forum/6-39-1


Сообщение отредактировал Nasa13 - Воскресенье, 16 Февраля 2014, 18:17
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » динамические лучи бога. ([РЕШЕНО])
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг