IPB

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
ShadowMapping, раз и навсегда!
KiD
сообщение 3.6.2007, 16:46
Сообщение #1


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Господа, все мы долго ждали этого момента, мечтали о нём и представляли его, видели во сне и, порой отчаивались, но где-то там, в глубине души, все мы верили, что он настанет! И вот... этот момент настал! Разработка человеческих теней, работающих на DBPro наконец-то начала приносить плоды! Представляю вашему вниманию демку с исходником, разработанную мной на основе не очень удачной реализации ShadowMapping'а увожаемым господинов Evolved'ом. Вот список того, что мне удалось сделать:
- тени отбрасываются не только от геометрии, но и от каждого пикселя, то есть теперь можно в реальном времени рендерить тени от деревьев, травы и прочих подобных объектов.
- количество используемых камер и имейджей от них уменьшено в 3 раза (!!!). Так, раньше для отображения одного источника света с текстурой теней разрешением 256/256 требовалось создать камеру для непосредственно проекции теней, камеру для обработки и наложения этой проекции на сцену, и еще камеру для смазывания результата, чтобы тени была мягкой, причем размер последних двух должен был быть не меньше размера экрана (обычно 1024/1024 или 512/512), иначе результат смотрелся некрасиво. Теперь для одного источника света создается одна камера и один имейдж нужного разрешения.
- не используется syncmask!!! Это даёт значительный прирост производительности.
- Заместо ShaderModel 2.0 используется версия 1.4, то есть тени работают и на GeForce4Ti.
...
Пока что это всё. Производительность сейчас намного выше, чем в демке от evolved'а, но и это не предел. Сейчас очень много производительности отъедает расчёт теней от пикселей и затенение объектов, подобных деревьям. Также сильно тормозит самозатенение таких объектов. Дальнейшая оптимизация возможна и она будет. Еще о минусах - тени сейчас я бы не назвал мягкими, хотя это довольно просто исправить, также к минусам можно отнести невозможность создания точечных источников света - только направленные (хотя для солнца можно создать один большой направленный в небе). Пока что вот ссылка на архив с демой и исходником:
http://kid-ant-arch.narod.ru/ShadowMapping_1_4.rar
1.1mb

Управление:
WASD - движение
1 2 - вращение объектов
Пробел - поставить источник света на место камеры
E - "прыгание" источника света
R - вращение источника света

Установлен лимит в 100-110FPS


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
vitrus2002
сообщение 3.6.2007, 19:28
Сообщение #2


Активный участник
***

Группа: Пользователи
Сообщений: 482
Регистрация: 7.9.2004
Из: Kirov, Russia
Пользователь №: 45



Отлично, у меня 62 fps (!)

Эх, если к твоей водичке и таким теням добавить дарк физикс (+красивый большой ландшафт с кучей моделей и сценарий), то будет успешно продаваемый и очень красивый коммерческий продукт. Спасибо за поддержку российского open-source движения smile.gif smile.gif

P.S. Хорошо, что времена войн дарка и блица уже прошли.


--------------------
Helpful Bytes Software - сайт о моих проектах, они для форумчан бесплатны - стучите в личку. Буду рад любым отзывам.
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 3.6.2007, 20:30
Сообщение #3


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Дарк физикс сейчас для меня самая большая проблема sad.gif Пока приходится юзать ньютон... А в общем шадоу маппинг сейчас для меня является наиболее приоритетным занятием на дарке (после Glaz'а конечно) smile.gif


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
vitrus2002
сообщение 4.6.2007, 10:06
Сообщение #4


Активный участник
***

Группа: Пользователи
Сообщений: 482
Регистрация: 7.9.2004
Из: Kirov, Russia
Пользователь №: 45



Эх, сейчас Glaz пробил по поиску. Красота... Правда, классно. Только 10 mb куда-то... улетучилось sad.gif

P.S. Уже 2 года внушаю себе, что нужно назад, в геймдев. Погряз во всех этих бейсиках, си, ассемблерах и прочей коммерческой мути

P.S2. после таких наработок можно уже и рпг писать. Ребята из Crow Interactive знали это заранее!


--------------------
Helpful Bytes Software - сайт о моих проектах, они для форумчан бесплатны - стучите в личку. Буду рад любым отзывам.
Перейти в начало страницы
 
+Цитировать сообщение
3DSchumacher
сообщение 4.6.2007, 10:09
Сообщение #5


Активный участник
***

Группа: Пользователи
Сообщений: 771
Регистрация: 3.6.2005
Из: Украина, г. Житомир
Пользователь №: 308



ААААААААААаааааааааааа!!!!! КИД - МОЛОДЕЦ!!! Вот это я понимаю тени...
Правда в играх со всей игровой механикой будет тормозить, нада еще оптимизировать.

З.Ы. Жалко только что бакалаврат на носу sad.gif Некогда кодить. Но после сессии...


--------------------
...между айсбергом и небом гордо реет Cacodemon...
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 4.6.2007, 15:33
Сообщение #6


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Спасибо спасибо smile.gif
рпг пока не потянем, т.к. в команде кодю пока я один, и моделю тоже один, и вообще я почти один... biggrin.gif но мастерства набираться буду smile.gif

vitrus2002 - в геймдев возвращайся обязательно и не раздумывай!

Про Glaz тоже пасиба, но только в каждой теме по данной теме, а так пасиба еще раз, пошёл кодить...

Цитата
Только 10 mb куда-то... улетучилось

Это ты о чём?


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
vitrus2002
сообщение 4.6.2007, 21:47
Сообщение #7


Активный участник
***

Группа: Пользователи
Сообщений: 482
Регистрация: 7.9.2004
Из: Kirov, Russia
Пользователь №: 45



О трафике - я качаю все версии smile.gifsmile.gif


--------------------
Helpful Bytes Software - сайт о моих проектах, они для форумчан бесплатны - стучите в личку. Буду рад любым отзывам.
Перейти в начало страницы
 
+Цитировать сообщение
Lis666
сообщение 6.6.2007, 22:07
Сообщение #8


Чувак
***

Группа: Пользователи
Сообщений: 796
Регистрация: 16.12.2005
Из: City 17
Пользователь №: 545



Несмотря на лимит, я узрел 111фпс.
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 7.6.2007, 11:45
Сообщение #9


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Лимит FPS в дарке являетс довольно странной вещью, уже давно это заметил... И, судя по всему, не я один smile.gif
Лис, если у тебя есть дарк - зайди в исходник и отруби лимит фпс и откомпиль проектик. Тогда увидишь реальную производительность biggrin.gif


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
3DSchumacher
сообщение 7.6.2007, 20:47
Сообщение #10


Активный участник
***

Группа: Пользователи
Сообщений: 771
Регистрация: 3.6.2005
Из: Украина, г. Житомир
Пользователь №: 308



А как ты будеш из этого делать мягкие тени? Шейдер для блуринга юзать или на том же шейдере тени доделаеш?


--------------------
...между айсбергом и небом гордо реет Cacodemon...
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 8.6.2007, 15:00
Сообщение #11


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



На счёт мягкости точно сказать не могу. Сейчас изучаю всякие статейки и способы смазывания теневой текстуры. На крайний слуйчай можно просто добавить маленький алгоритм, который создаёт несколько копий теневой текстурки и накладывает их с небольшим смещением. Но это на крайний случай если ничего лучше не найду/придумаю. А вообще сейчас я не над мягкостью работаю, а на прозрачностью. Дело в том, что Дарковское Transparency не отличается высокой скоростью работы, тем более в паре с шейдером. Вот сейчас и пытаюсь реализовать это через шейдер. Производительность от этого тоже довольно сильно зависит...


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
Dante
сообщение 10.6.2007, 1:25
Сообщение #12


Активный участник
***

Группа: Пользователи
Сообщений: 102
Регистрация: 2.6.2005
Пользователь №: 307



парни привет. Ребята кому не трудно закиньте пожалуйста архивчик на dantealucart@gmail.com

а то чото парится закачка.....


А, и еще KID - посмотрим на твои разработки, может они нас сильно и выручат. я буду тебе очень признателен. А и к стате кинь на мыло свою аську, если ты ее пользуешся... Давай парень, уделаем америкосов.

Можно если что до твоего шейдера Volume, даписать и нефик делать, вот тебе и размазанные тени, у меня к стате гдето валялось.
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 10.6.2007, 10:31
Сообщение #13


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Послать сейчас не могу sad.gif Как смогу - пошлю. Но если людям не трудно, может кто-то другой сможет послать. Сейчас я просто не могу sad.gif
Ася моя не является секретом и номер можно найти в инфе обо мне. Если лень - 345457274 Правда в сети я не часто бываю.
Цитата
уделаем америкосов

С радостью biggrin.gif Хотя с Evolved'ом мне не тягаться - сделаем что сможем wink.gif


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
Dante
сообщение 10.6.2007, 19:14
Сообщение #14


Активный участник
***

Группа: Пользователи
Сообщений: 102
Регистрация: 2.6.2005
Пользователь №: 307



Во вроде выкачалось. Прикольео, но шлифовать надо еще. Потому что просчеты в алгоритме есть, десяток деревьев и ФПС падает сильно. Даже в Армагедоне, пока вопрос с тенями еще открыт, как двери а ангаре для Боинга smile.gif))
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 11.6.2007, 10:57
Сообщение #15


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Работать есть над чем smile.gif


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 8.8.2007, 12:55
Сообщение #16


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Добился некоторых результатов с тенями и оптимизацией.
Полностью переписал алгоритм преобразования depth-текстуры сцены в собственно, тени. Раньше попиксельно просчитывалось, как и куда ложится каждый пиксель, и на основе этих вычислений пиксели рисовались либо затенёнными, либо освещенными. Этот алгоритм был одной из основных вещей, которые так тормазят весь процесс... Так вот, теперь этот процесс пропускается!!! Я его заменил небольшими операциями со сложением/вычитанием цвета текстур. Результат оказался очень хорошим, качество стало выше при меньших вычислениях. Также благодаря отказу от сложных попиксельных вычислений теперь можно фильтровать теневую текстуру, то есть тень станет еще более мягкой (как минимум не хуже NFS Most Wanted'а). Также я получил информацию о том, как без использования тормазного дарковского transparency можно сделать деревья/ветки и т.д. Всё делается шейдером, но насколько это будет быстрее стандартной команды дарка я не знаю, но зная Бамбера можно предположить, что нас ждёт еще куча сэкономленых FPS... Пока не тестил, но на всякий случай проинформировал всех =) Пойду дальше кодить...


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 9.8.2007, 12:50
Сообщение #17


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



Вынужден огорчить всех. Проведенные операции не привели к значительному увеличению FPS... Хотя теперь всё рисуется и по другому... Буду искать другие пути. В частности остаётся открытым вопрос о копировании геометрии для построения теней - это уж точно тормозит систему... Буду копать туда...


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
tem13
сообщение 20.8.2007, 16:03
Сообщение #18


Участник
**

Группа: Пользователи
Сообщений: 13
Регистрация: 20.8.2007
Пользователь №: 4333



KiD
Можешь выложить последнюю версию?
Перейти в начало страницы
 
+Цитировать сообщение
KiD
сообщение 20.8.2007, 16:23
Сообщение #19


Не очень активный участник
***

Группа: Администраторы
Сообщений: 1255
Регистрация: 2.6.2006
Из: Kazakhstan, Almaty
Пользователь №: 65536



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


--------------------
GlaZ жив!
Перейти в начало страницы
 
+Цитировать сообщение
AliEn
сообщение 20.8.2007, 21:50
Сообщение #20


BS Games
***

Группа: Пользователи
Сообщений: 264
Регистрация: 19.6.2006
Пользователь №: 762



И как только эти дарковцы не извращаются над 3D графикой angry.gif
KiD, у тебя на сцене всего лишь одно несчастное деревцо и low-terrain, ~20 кадров в секунду (GeForce 5600). Это что, тень? А почему она не похожа на объект от которого она отбрасывается? И ошибок уйма. Сначала бейся над графикой, когда у тебя будет что-то похожее на тень, оптимизируй wink.gif

Цитата
Господа, все мы долго ждали этого момента, мечтали о нём и представляли его, видели во сне и, порой отчаивались, но где-то там, в глубине души, все мы верили, что он настанет!

Я такого в кошмарах не видел smile.gif
Перейти в начало страницы
 
+Цитировать сообщение

5 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 23.9.2017, 14:01
 X 
Ссылки на работы форумчан:
1. Cайт по использованию 3D технологий
в образовании

2. 15 Defense. Underwater Battle

3. GlaZ в Steam Greenlight