Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Софтовое освещение в OpenGL 1, 2  След.
   Список разделов - Doom и его порты - Софтовое освещение в OpenGLОтветить
АвторСообщение
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №1 Отправлено: 13.12.12 22:13:37
Создание зачётной темы (+40)
С того момента, как я начал играть в GZDoom, меня не покидала мысль, что освещение в нём хуже, чем в софтварном рендерере. Освещение в опенгл действительно не как в софте и, ИМХО, выглядит хуже, так как оно равномерно, а в софте зависит от расстояния до камеры. Поэтому мне долго приходилось выбирать между софтом, в котором освещение хорошее, но только 256 цветов, искажённый фрилук, нету поддержки гздум мап и прочие радости, и опенглом, который вобщем-то всем лучше софта, но освещение в нём не такое, особенно учитывая, что почти все мапы делаются под софтовое освещение.

А изучив шейдеры, я осознал, как в точности воссоздать в OpenGL рендерере освещение как в софте. Неделю назад серьёзно взялся за это дело и получился модифицированный GZDoom. Можете считать это подарком на день рождения дума, хоть я и припоздал :). Но ведь все равно успел раньше каковардов :D.

ВНИМАНИЕ: для правильной работы требуется поддержка OpenGL шейдеров.

Страничка со скринами и скачиванием:
http://submarine.homeunix7.org/doku.php?id=topics:software_lighting_in_opengl

Ссылки на скачивания:
GZDoom Windows
GZDoom Linux
GZDoom Исходник

Zandronum Windows
Zandronum Исходник

Как говорится, feel the difference ;).

Рейтинг сообщения: +1, отметил(и): alekv
1 1 3
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +9
Ссылка на пост №2 Отправлено: 14.12.12 04:06:48
Надо бы тёмных скриншотов ещё положить, а то сейчас на всех примерно одно и то же. Я так понимаю, чёрный туман у тебя в GZDoom не работает?
1
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №3 Отправлено: 14.12.12 12:30:53
Скрины плохо делал, потом понормальнее будет.
Thirteen:
Я так понимаю, чёрный туман у тебя в GZDoom не работает?

И в обычном и в моём всё работает. Правда в моём гздуме я не трогал рендеринг тумана, так что если на мапе цвет тумана поставлен не абсолютно чёрный, а почти чёрный, то получается слишком густой по сравнению с софтом туман.

Рейтинг сообщения: +1, отметил(и): alekv
1 1 3
Nil
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 127 points
1513

Doom Rate: 2.31

Posts quality: +63
Ссылка на пост №4 Отправлено: 14.12.12 14:04:27
Korshun, я Думаю, тебе стоит связаться с графом по этому поводу, вряд-ли ты захочешь поддерживать свою отдельную версию.

Рейтинг сообщения: +1, отметил(и): alekv
1 2 1
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №5 Отправлено: 14.12.12 17:38:16
Качество кода низковато, делал лишь бы работало. Хотя там мало изменений, можно было бы и понормальнее их вставить, но я не разбираюсь в исходниках гздума достаточно хорошо. Да и чо там поддерживать? Новые версии гздума выходят реже чем раз в полгода, а по словам того же графа, опенгл рендерер вообще не развивается.
1 1 3
[D2D]_Revenant
Banned flooder
4358

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №6 Отправлено: 16.12.12 21:52:28
а можно тоже посмотреть? у меня серв по ссылке не отвечает этот, может быть презальете куда-нибудь, типа на народ?

Новые версии гздума выходят реже чем раз в полгода

зато SVN билды часто.

Рейтинг сообщения: -1, отметил(и): VladGuardian
10 2 6
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №7 Отправлено: 16.12.12 22:19:53
Добавил прямые ссылки на файлообменник в шапку. Чо-то у меня тоже тот сайт лежит, а вот админ утверждает, что у него всё работает :/.

EDIT: счас уже заработало.
1 1 3
Kalerdulius
Marine
Next rank: Marine 1st class after 3 points
27

Doom Rate: 1.91

Ссылка на пост №8 Отправлено: 17.12.12 16:51:33
Забавно.


Освещение в опенгл действительно не как в софте и, ИМХО, выглядит хуже, так как оно равномерно, а в софте зависит от расстояния до камеры. Поэтому мне долго приходилось выбирать между софтом, в котором освещение хорошее, но только 256 цветов, искажённый фрилук, нету поддержки гздум мап и прочие радости, и опенглом, который вобщем-то всем лучше софта, но освещение в нём не такое, особенно учитывая, что почти все мапы делаются под софтовое освещение.

Korshun.


Играю в опенГЛ рендере, но сугубо из за света. Никакие фильтры и сглаживания я не ставлю. Даже партикли - и те ставлю квадратными :)

Astar (было здесь).

На вкус и цвет...
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №9 Отправлено: 17.12.12 19:11:31
Во первых: уверен, что он имел в виду динамический свет, которого в софте не существует, а не секторный.

Во вторых:
Kalerdulius:
как правильно было замечено выше, в софтовых портах освещение действительно немного напрягает.
(оттуда же)
Я вот тоже так раньше думал, но оказалось, что в софте напрягает не освещение, а палитра и отсутствие мипмаппинга с анизотропной фильтрацией (получается мерцание дальних текстур). Что опенглное, что софтовое освещение - смотреть на опенгл в 32битном цвете легко, а вот об 8битный софтвар глаза ломаешь.
1 1 3
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +9
Ссылка на пост №10 Отправлено: 18.12.12 01:47:02
В софтовом освещении мне не нравится то, что рядом с игроком всегда очень светло. Это приводит к тому, что максимальная яркость оружия достигается уже при уровне освещённости 160.
1
Kalerdulius
Marine
Next rank: Marine 1st class after 3 points
27

Doom Rate: 1.91

Ссылка на пост №11 Отправлено: 18.12.12 15:15:33
Korshun:
Во первых: уверен, что он имел в виду динамический свет, которого в софте не существует, а не секторный.


Лучше спросить его самого, что он имел в виду. Читайте: человек вообще не признает фильтрованных текстур в Думе. В PRBoom, например, можно включать линейную фильтрацию отдельно для стен, потолка, спрайтов и даже освещения, правда, с нещадной нагрузкой на процессор. В ZDoom я такой возможности не обнаружил (это, возможно, могло бы хоть как-нибудь скрасить софтовые виды). Динамическое освещение, конечно, любят все, но, увы, оно и ресурсов ест немало. Возможно, речь шла как раз о предпочтении простого секторного освещения в GL оригинальной модели освещения в софтовом рендеринге, там ведь не получается видимого равномерного распределения света на текстурах, только полосами все идет - видно, действительно цветов сильно не хватает. Ну а теперь - для таких людей будет прекрасное нововведение, которое сделаете вы.

Thirteen:
В софтовом освещении мне не нравится то, что рядом с игроком всегда очень светло. Это приводит к тому, что максимальная яркость оружия достигается уже при уровне освещённости 160.


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

Кстати, в GLBoom существовала как замена софтовому освещению весьма занятная опция - 'Fog-based sector lighting mode'. Не идеальный вариант, наверное, но, полагаю, все же лучше чем ничего. Правда, сам порт получается уже "не тот".
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №12 Отправлено: 18.12.12 17:08:20
Kalerdulius:
Читайте: человек вообще не признает фильтрованных текстур в Думе. В PRBoom, например, можно включать линейную фильтрацию отдельно для стен, потолка, спрайтов и даже освещения, правда, с нещадной нагрузкой на процессор.

Я имел в виду фильтрацию текстур при уменьшении, а не при увеличении. Фильтрацию текстур при увеличении и я не признаю, а вот без фильтрации при уменьшении (мипмаппинг и анизотропная фильтраяция) получается мерцание пикселей, особенно на больших пространствах.

Утрированный пример:




Kalerdulius:
По-моему, Korshun, вам необходимо немного увеличить радиус источника света и, возможно, уменьшить интенсивность.

Делаю в точности как в софте, это принцип.

Kalerdulius:
Кстати, в GLBoom существовала как замена софтовому освещению весьма занятная опция - 'Fog-based sector lighting mode'. Не идеальный вариант, наверное, но, полагаю, все же лучше чем ничего. Правда, сам порт получается уже "не тот".

Видел - плохая попытка сымитировать софтварное освещение. Дело в том, что
1) туман нарастает линейно с увеличением расстояния, в думе же совсем по-другому.
2) туман не органичен и постоянно скатывается в АБСОЛЮТНО ЧОРНЫЙ.
В результате даже просто равномерное освещение выглядит ближе к софту, чем это.

В софте всё освещение действительно fog-based, но формула тумана там совсем другая (см. выше).

Kalerdulius:
стены при подходе вплотную словно вспыхивают

Особенно этот эффект усиливается в софте ограниченностью палитры, из-за чего "вспыхивают" отдельные цвета на текстуре, и наличием только 32 уровней освещения (у меня это опционально).
1 1 3
Kalerdulius
Marine
Next rank: Marine 1st class after 3 points
27

Doom Rate: 1.91

Ссылка на пост №13 Отправлено: 18.12.12 18:29:10
Korshun:
Фильтрацию текстур при увеличении и я не признаю...

Ну, если это касается спрайтов... М-да, сглаживание их явно не облагораживает. Перерисовать их вообще, что ли? Может, следовало бы задействовать в GZDoom 2xSai-фильтрацию: она обычно дает наиболее качественное масштабирование. На стены же с потолками, на мой взгляд, лучше все-таки поставить "трехлинейку": это вполне нормально смотрится да и мерцать будет меньше. Но проблема в том, что в GZDoom вроде бы по умолчанию нет возможности установить уровень фильтрации для отдельных объектов, как в Boom'ах.

Korshun:
Делаю в точности как в софте, это принцип.

А нельзя тогда, скажем, добавить в меню опцию управления освещением, как в разделе Dynamic lighting?

Добавлено спустя 9 минут 20 секунд:

Korshun:
Особенно этот эффект усиливается в софте ограниченностью палитры, из-за чего "вспыхивают" отдельные цвета на текстуре, и наличием только 32 уровней освещения (у меня это опционально).


Все равно это в любом случае выглядит не совсем естественно: получаются слишком светлые текстуры в местах фактически неосвещенных, словно у игрока прям волшебная аура какая-то.
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №14 Отправлено: 18.12.12 19:02:27
Kalerdulius:
Но проблема в том, что в GZDoom вроде бы по умолчанию нет возможности установить уровень фильтрации для отдельных объектов, как в Boom'ах.
Тоже хочется отдельных фильтров и чтобы текстуры размытые, а спрайты пикселизированные.

Kalerdulius:
А нельзя тогда, скажем, добавить в меню опцию управления освещением, как в разделе Dynamic lighting?
Можно, конечно, но заниматься этим совершенно не хочется. Может, в следующей версии... Я плохо в коде гздума разбираюсь и вообще лень :/. Если кто очень хочет, в gzdoom.pk3/shaders/main.fp меняем константу DOOMLIGHTFACTOR.

Kalerdulius:
Все равно это в любом случае выглядит не совсем естественно: получаются слишком светлые текстуры в местах фактически неосвещенных, словно у игрока прям волшебная аура какая-то.

Все претензии к id software :D
1 1 3
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +9
Ссылка на пост №15 Отправлено: 18.12.12 19:19:05
Korshun:
Особенно этот эффект усиливается в софте ограниченностью палитры, из-за чего "вспыхивают" отдельные цвета на текстуре, и наличием только 32 уровней освещения (у меня это опционально).

Цвета тут особенно ни при чём, дело именно в формуле тумана, как ты выразился. Хотя такой контрастный туман полезен для более примитивных интерьеров - он придаёт им объём.
1
Korshun
= Lance Corporal =
Next rank: - Master Corporal - after 31 points
169

Doom Rate: 3.84

Posts quality: +13
Ссылка на пост №16 Отправлено: 19.12.12 16:03:24
Создание зачётного сообщения/новости (+20)
Наконец-то вышла версия для Zandronum!

Windows
Исходники
Linux версия будет скоро, её делает Monsterovich.

Естественно, можно играть в мультиплеере на любых серверах.
Обновил шапку.

Добавлено спустя 1 день 20 часов 49 минут 32 секунды:

Судя по теме на здуморге, мой хак получил официальную поддержку :!: . То есть разработчики гздума заинтересовались и граф вроде как добавил в свн.

Рейтинг сообщения: +1, отметил(и): alekv
1 1 3
3EPHOEd
- Warrant Officer -
Next rank: = Warrant Officer = after 29 points
1111

Doom Rate: 2.34

Posts quality: +7
Ссылка на пост №17 Отправлено: 21.12.12 14:03:30
Здорово, обязательно напиши Граф Захлу. :)
1 2 2
StasBFG[iddqd]
-= DoomGod =-
Админ форумаАдмин сайта
2474

Doom Rate: 2.27

Posts quality: +18
Ссылка на пост №18 Отправлено: 21.12.12 14:27:25
Вот это правильно, в SVN уже есть, отлично!
------------------------------------------------------------------------
r1486 | graf | 2012-12-21 03:53:00 +0400 (Пт, 21 дек 2012) | 2 lines

- merged korshun's software lighting emulation.

------------------------------------------------------------------------
r1487 | graf | 2012-12-21 04:33:38 +0400 (Пт, 21 дек 2012) | 2 lines

- fixed missing comma in list of shader defines.

------------------------------------------------------------------------

Скомпилировал теперь уже официальную версию: x86 | x64

Рейтинг сообщения: +1, отметил(и): alekv
1 1 2
Monsterooovich
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 1.54

Posts quality: +11
Ссылка на пост №19 Отправлено: 21.12.12 14:47:51
StasBFG[iddqd]:
Вот это правильно, в SVN уже есть, отлично!


Пока что-то сам не сделаешь Lazy (G)ZDoom Devs. не будут делать сами... с отмазками типа It's IMPOSSIBLE! @ Если бы Korshun не сделал то мы бы играли в говно стандартое освещение OGL ещё 5-10 лет... :? Кстати в RGBA2 напоминает софтвар с его 8-битной палитрой.

Рейтинг сообщения: +1, отметил(и): alekv
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +9
Ссылка на пост №20 Отправлено: 21.12.12 16:37:09
Отлично, поздравляю. :) Опция действительно не лишняя.
1
Страница 1 из 2Перейти наверх 1, 2  След.
   Список разделов - Doom и его порты - Софтовое освещение в OpenGL