forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Стелющийся туман (http://forum.boolean.name/showthread.php?t=15296)

Ky3R_94 15.08.2011 21:39

Стелющийся туман
 
Доброго времени суток всем! :)

Есть одна проблемка... Нужно сделать так называемый стелющийся туман. Хочу в своей игре реализовать город с высокими зданиями. Бегать надо будет по крышам домов, поэтому неплохо было бы, чтобы низ дома и землю не было видно.

Пытался реализовать это с помощью массива plane'ов, но вышло крайне глючно и убого (в приближении было видно, что туман "слоится").

Может уже кто-нибудь сталкивался с этой проблемкой и может мне помочь? :SOS:

dsd 15.08.2011 22:18

Ответ: Стелющийся туман
 
Облака летящие на уровне земли.

Делаешь пивот. К пивоту пэрентишь 20-30 спрайтов с рандомными координатами и соответствующим масштабом. Соответсвующая полупрозрачная текстура. Несколько облаков вращающихся вокруг своих пивотов и рандомно передвигающихся создадут нужный эффект. Если со спрайтами будет тормозить мутишь то же самое квадами плюс менеджер частиц. Должен получится замечательный туман. Разная плотность, текстура, фактура. Разнообразное его перемещение.

Mr_F_ 15.08.2011 22:23

Ответ: Стелющийся туман
 
Цитата:

Пытался реализовать это с помощью массива plane'ов, но вышло крайне глючно и убого (в приближении было видно, что туман "слоится").
массивом плейнов это кстати делалось в GTASA, что иногда палилось, но часто и не палилось.

спрайтами с дымкой, как dsd предложил, должно выйти более годно.
конечно будет проблемка пересечения резкого спрайтов с домами - придётся ставить спрайты так, чтобы не пересекались/переходить их в альфу рядом с домами. в современных играх юзают софт партикалы шейдерами, но в блице не выйдет.

dsd 15.08.2011 22:36

Ответ: Стелющийся туман
 
Ни в коем случае не спрашивай, что такое шейдеры и про хорс. НИ В КОЕМ! :-D

ANDREYman 17.08.2011 03:00

Ответ: Стелющийся туман
 
горизонтально проецируй на меши текстуру с градиентом, а сверху на неё кубемап для коррекции расстояния. Выглядит этот фейк очень хорошо, на глаз сложно отличить от "настоящего" тумана.

FREE MAN 17.08.2011 10:03

Ответ: Стелющийся туман
 
Ky3R_94 Юзай лучше Xors3D! пример Soft Particles.
в общем с шейдерами можно мутить такие вещи, смотри картинки, что у меня вышло.Другой вариант по проще, сделать не сколько спрайтов (квадов)больших и положить их в начале земли и так всё выше и выше.

Ky3R_94 18.08.2011 02:33

Ответ: Стелющийся туман
 
Всем огромное спасибо за помощь! :) Теперь буду сидеть пытаться приаттачить ваши советы к своему проекту)

Цитата:

горизонтально проецируй на меши текстуру с градиентом, а сверху на неё кубемап для коррекции расстояния. Выглядит этот фейк очень хорошо, на глаз сложно отличить от "настоящего" тумана.
проекции никак с uvw решёткой взаимодействовать не будут? дома просто разные будут) некоторые будут простые кубы, вытянутые вдоль оси Y, некоторые будут довольно-таки детальными...

если можно плз примерчик маленький :) просто я не очень понимаю, что ты имеешь ввиду)

Gector 18.08.2011 11:45

Ответ: Стелющийся туман
 
Цитата:

Сообщение от ANDREYman (Сообщение 199136)
горизонтально проецируй на меши текстуру с градиентом, а сверху на неё кубемап для коррекции расстояния. Выглядит этот фейк очень хорошо, на глаз сложно отличить от "настоящего" тумана.

Можешь пример привести)? Довольно любопытно).

mauNgerS 18.08.2011 12:55

Ответ: Стелющийся туман
 
ANDREYman Да, действительно интересно как?

ANDREYman 18.08.2011 20:14

Ответ: Стелющийся туман
 
Вложений: 2
Пример на скринах. UV естественно меняются - это если генерить новый мешь и ложить поверх старого. Ещё можешь проецировать эту текстуру через фастэкст, тогда по идее можно без отдельного прохода, правда придётся для каждого случая отдельные текстуры делать. Кубемап - просто градиент от белого(сверху) к чёрному(снизу) и подбираешь нужные пропорции, как-то так.
Делать рабочий пример мне сейчас некогда.

FREE MAN 18.08.2011 20:15

Ответ: Стелющийся туман
 
Цитата:

Сообщение от ANDREYman (Сообщение 199136)
горизонтально проецируй на меши текстуру с градиентом, а сверху на неё кубемап для коррекции расстояния. Выглядит этот фейк очень хорошо, на глаз сложно отличить от "настоящего" тумана.

Andreyman Думаю хотел сделать следующим способом - допустим есть дом, на него накладываем вторым слоем текстуру с градиентом белого цвета смотрим картинку в атаче, тем самым мы получаем эффект тумана, дорогу тоже делаем просто белым цветом, и получается туман.

FREE MAN 18.08.2011 20:16

Ответ: Стелющийся туман
 
Up
Andreyman опередил с ответом

moka 18.08.2011 20:51

Ответ: Стелющийся туман
 
А дорога если белая и ваще её не видно, то её и рисовать не нужно вообще.
Помню в стареньком Spiderman было тупо сделано вот так текстурой, и если падаешь, летишь туда и подыхаешь.
Если игрок никогда туда не спустится, то такой градиент - самое то.

Если были бы шейдеры, сделал бы Volumetric Fog, красава ваще было бы..

FREE MAN 18.08.2011 21:03

Ответ: Стелющийся туман
 
Цитата:

Сообщение от MoKa (Сообщение 199339)
А дорога если белая и ваще её не видно, то её и рисовать не нужно вообще.
Помню в стареньком Spiderman было тупо сделано вот так текстурой, и если падаешь, летишь туда и подыхаешь.
Если игрок никогда туда не спустится, то такой градиент - самое то.

Если были бы шейдеры, сделал бы Volumetric Fog, красава ваще было бы..

Moka согласен с тобою Volumetric Fog красиво смотрится, Почему Ky3R_94 не переходит на Xors3d? Не понимаю, всё в целом тоже самое как и в blitz3d.

Nuprahtor 18.08.2011 21:10

Ответ: Стелющийся туман
 
Вот жеж красивые у вас туманы, я такой же хочу себе в юнити!

moka 18.08.2011 21:15

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Phyton (Сообщение 199341)
Volumetric Fog красиво смотрится

Вся красота особенно когда в него войдёшь.. Ммм.. Плюс распространяется на любую динамику и т.п.

Nuprahtor, дык, в Unity есть шейдеры, можно написать..

Mr_F_ 18.08.2011 21:46

Ответ: Стелющийся туман
 
Цитата:

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

Gector 18.08.2011 21:52

Ответ: Стелющийся туман
 
Вложений: 1
Я тут попробовал намутить туман методом "пушистого куба":-D(тоесть стопкой из 50 плейнов с малой альфой объединенные в одон меш). Получилось. Только производительность не радует(фпс не мерил, но тормоза есть).

moka 18.08.2011 21:56

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Gector (Сообщение 199352)
Я тут попробовал намутить туман методом "пушистого куба":-D(тоесть стопкой из 50 плейнов с малой альфой объединенные в одон меш). Получилось. Только производительность не радует(фпс не мерил, но тормоза есть).

Уф.. 50 таких штук, фильтруется постоянно, и они постоянно в экране. Тем более что этож всё под ними ещё проходит альфа тесты.
Шейдерным туманом - "проще" и производительнее. Как подметил Nerd96 в удалённом посту - хернёй и извратом маитесь комрады, когда это было нормально в 2002, сейчас это извраты. Это также как копаться в жигулях!

Mr_F_ 18.08.2011 22:03

Ответ: Стелющийся туман
 
Цитата:

Я тут попробовал намутить туман методом "пушистого куба"(тоесть стопкой из 50 плейнов с малой альфой объединенные в одон меш). Получилось. Только производительность не радует(фпс не мерил, но тормоза есть).
главный тормоз это овердро тут - у тебя заполняется рендертаргет пикселями нижнего плейна, потом повыше итд, в результате экран зарисовывается так, как бы он зарисовался за 50 кадров без овердро.

Gector 18.08.2011 22:05

Ответ: Стелющийся туман
 
Цитата:

Сообщение от MoKa (Сообщение 199354)
Уф.. 50 таких штук, фильтруется постоянно, и они постоянно в экране. Тем более что этож всё под ними ещё проходит альфа тесты.
Шейдерным туманом - "проще" и производительнее. Как подметил Nerd96 в удалённом посту - хернёй и извратом маитесь комрады, когда это было нормально в 2002, сейчас это извраты. Это также как копаться в жигулях!

Нерд не прав. Вот к примеру мне в нескольких сценах (максимум в 3-5) нужен именно такой туман. Движок на чистом блице и уже написан полностью. Мне заставлять программиста переписывать все?
К тому же падение производительности связано с тем, что я случайно сделал тессаляцию всех 50 плейнов без возможности вернуть все обратно. Теперь прикинем 8х8х50=?)))... Думаю дальше объяснять не надо).
Цитата:

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

ANDREYman 18.08.2011 22:28

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Mr_F_ (Сообщение 199351)
нет, я думаю фишка тут именно в кубмапе, а то некорректно же выйдет.
вообще интересная идея. если шейдером делать, то добавить убирание тумана по дистанции вокруг камеры - должно выйти дешевле гораздо чем честный волуметрик.

Да, всё верно. 2 текстуры, 2д градиент(сам туман) и кубемап для коррекции силы тумана в зависимости от расстояния до камеры. Если в него не нужно погружаться(стелится под ногами) то париться вообще не надо - от попиксельного не отличить и делевле намного. Если надо - тут чуть по хитрее, по сути 2 ситуации, внутри нужна ещё одна текстура.

IgorOK 18.08.2011 23:36

Ответ: Стелющийся туман
 
Цитата:

Сообщение от ANDREYman (Сообщение 199361)
Да, всё верно. 2 текстуры, 2д градиент(сам туман) и кубемап для коррекции силы тумана в зависимости от расстояния до камеры. Если в него не нужно погружаться(стелится под ногами) то париться вообще не надо - от попиксельного не отличить и делевле намного. Если надо - тут чуть по хитрее, по сути 2 ситуации, внутри нужна ещё одна текстура.

А можно по подробнее про этот метод? :)
В этом случае можно обойтись встроенными функциями или надо сторонние длл подключать?

Артем Валерьевич 20.08.2011 17:35

Ответ: Стелющийся туман
 
Gector, а мне лёд очень понравился!

Nerd 20.08.2011 17:40

Ответ: Стелющийся туман
 
...
Цитата:

Сообщение от Gector (Сообщение 199357)
Нерд не прав.

Ϸ?
Цитата:

Сообщение от Gector (Сообщение 199357)
Движок на чистом блице


IgorOK 20.08.2011 19:00

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Nerd96 (Сообщение 199490)
Ϸ?
...

Клавиатура сломалась?

Nerd 20.08.2011 19:39

Ответ: Стелющийся туман
 

Цитата:

Сообщение от IgorOK (Сообщение 199500)
Клавиатура сломалась?

Ϸ

IgorOK 20.08.2011 19:50

Ответ: Стелющийся туман
 
Я в курсе. Мне сам смысл поста непонятен.

Nerd 20.08.2011 23:00

Ответ: Стелющийся туман
 
Цитата:

Сообщение от IgorOK (Сообщение 199504)
Я в курсе. Мне сам смысл поста непонятен.

Суть в том, что само по себе писание игр на чистом блице - это ненормально. На дворе же не 1999 год. Для кого таки придумали шейдеры, многопоточность, платформу x64 и другие кошерные вещи? И это не говоря уже об убогости самого языка и метода его компиляции. Хотя, я отошёл от темы. А говорили мы о ТУМАНЕ. Который некоторые люди предлагают симулировать массивом плейнов. Выглядеть это будет убого. Однозначно, использовать нужно либо шейдеры, либо хорошие партиклы. Но если лень, да и на графику - испражниться, то можно и так.

IgorOK 20.08.2011 23:12

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Nerd96 (Сообщение 199520)
Суть в том, что само по себе писание игр на чистом блице - это ненормально. На дворе же не 1999 год. Для кого таки придумали шейдеры, многопоточность, платформу x64 и другие кошерные вещи? И это не говоря уже об убогости самого языка и метода его компиляции. Хотя, я отошёл от темы. А говорили мы о ТУМАНЕ. Который некоторые люди предлагают симулировать массивом плейнов. Выглядеть это будет убого. Однозначно, использовать нужно либо шейдеры, либо хорошие партиклы. Но если лень, да и на графику - испражниться, то можно и так.

Вот с этим можно и поспорить. Сейчас даже с такими МФУ инструментами как Unity не все делают крутые проекты. А мне для шаровары например, не очень хочется с шейдерами возиться.

В целом на счёт удобства метода согласен.

Ky3R_94 21.08.2011 00:26

Ответ: Стелющийся туман
 

Цитата:

кошерные вещи
так-сс... на форуме завелись евреи

Цитата:

само по себе писание игр на чистом блице - это ненормально
мы все тут ненормальные

Цитата:

На дворе же не 1999 год.
имхо, технологии, графика и прочее играют далеко не главную роль в играбельности проекта. примеров - великое множество. взять тот же самый Counter-Strike, основанный на движке Half-Life'а 1998ого года.

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

Ky3R_94 21.08.2011 00:29

Ответ: Стелющийся туман
 
Господа, давайте будем сдержанными и компетентными и не будем переходить на личности! И писать по теме. Вот.

den 21.08.2011 00:30

Ответ: Стелющийся туман
 
Цитата:

главное - умная задумка
это да! чего один майнкрфт стоит. А козалось бы кубический мир, песочница.
или кс, в которые люди милионами игруют (в старый 1,6).
или дварфы - там вобще ascii графика
в игре даже не сюжет важен, а смысл, фишки.

Mr_F_ 21.08.2011 01:43

Ответ: Стелющийся туман
 
Цитата:

в игре даже не сюжет важен, а смысл, фишки.
и если точнее, то геймплей

Gector 21.08.2011 01:50

Ответ: Стелющийся туман
 
Цитата:

Сообщение от Nerd96 (Сообщение 199520)
Суть в том, что само по себе писание игр на чистом блице - это ненормально. На дворе же не 1999 год. Для кого таки придумали шейдеры, многопоточность, платформу x64 и другие кошерные вещи? И это не говоря уже об убогости самого языка и метода его компиляции. Хотя, я отошёл от темы. А говорили мы о ТУМАНЕ. Который некоторые люди предлагают симулировать массивом плейнов. Выглядеть это будет убого. Однозначно, использовать нужно либо шейдеры, либо хорошие партиклы. Но если лень, да и на графику - испражниться, то можно и так.

Я сам знаю как нормально. Вот).


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

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