doom2d.org
https://doom2d.org/forum/

[0.62 Beta 1] Неправильная работа светофильтров
https://doom2d.org/forum/viewtopic.php?f=36&t=1487
Page 1 of 2

Author:  ar888 [ 03 Apr 2014, 16:59 ]
Post subject:  [0.62 Beta 1] Неправильная работа светофильтров

Хотелось бы наконец нормальную воду и кислоты, чтоб были хоть немного различимы в них цвета.
Особенно ужасно выглядит вот это:
Image

Author:  Черный Думер [ 03 Apr 2014, 17:07 ]
Post subject:  Re: [Request] Новые цветофильтры

Это не реквест, а баг. Перенёс.
Да, вот ссылка на старое обсуждение этой проблемы с возможными вариантами её решения.

Author:  pss88 [ 19 Apr 2014, 16:06 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Так что с этим делать? Только не шейдеры.

Author:  Черный Думер [ 19 Apr 2014, 16:19 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Напиши, как там сейчас, а я попробую подумать.

Author:  pss88 [ 19 Apr 2014, 18:13 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Ты сам в предыдущем посте приводил ссылку. А вообще - обычный OpenGL (+glu), без расширений.

То ли в расширениях, то ли в поздних версиях OpenGL есть редактирование цветов, но тогда лучше уж сразу шедеры.

Author:  ar888 [ 20 Apr 2014, 00:20 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Я так и не понял: шейдеры сейчас есть в игре или нет? И разве эффект бессмертия сейчас не с помощью шейдеров сделан?
pss88 wrote:
то ли в поздних версиях OpenGL есть редактирование цветов
А смена версии не запланирована? Всё-таки хотелось бы любые размеры текстур, а не равные степени 2 (это вроде бы можно сделать, перейдя на новую версию OpenGL, как писали в другой теме).

Author:  Черный Думер [ 20 Apr 2014, 05:58 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

pss88 wrote:
Ты сам в предыдущем посте приводил ссылку. А вообще - обычный OpenGL (+glu), без расширений.

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

ar888 wrote:
Я так и не понял: шейдеры сейчас есть в игре или нет?
Нет.

ar888 wrote:
И разве эффект бессмертия сейчас не с помощью шейдеров сделан?
Нет, эффект инвертирования цветов делается просто и вообще без них. Шейдеры нужны были для обесцвечивания.

ar888 wrote:
А смена версии не запланирована?
Она уже сменена. Changelog читать надо внимательнее.

ar888 wrote:
Всё-таки хотелось бы любые размеры текстур, а не равные степени 2 (это вроде бы можно сделать, перейдя на новую версию OpenGL, как писали в другой теме).
Банальный переход на новую версию здесь не поможет.

Author:  pss88 [ 20 Apr 2014, 08:19 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Вообще-то версия OpenGL будет такой, какая установлена в системе и от DF это не зависит. Но функции в нём используются от самых первых версий OpenGL, чтобы была совместимость с любыми видеокартами. "Переход на новую версию" - значит использование функций новой версии. А вот тут уже не знаю, если их нет - будут ли они на процессоре считаться или просто не будут работать.

Author:  Черный Думер [ 27 Apr 2014, 03:35 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Информация к размышлению.
Вот так вот работают светофильтры в оригинальном Doom 2D (сверху) и Doom 2D: Forever (снизу).

Image

У меня есть идея, что перед отрисовкой светофильтра надо на его месте рисовать полупрозрачную текстуру некоего цвета, возможно специфичного для каждого светофильтра. Но вот как рассчитать этот цвет - вопрос.

Author:  Jabberwock [ 27 Apr 2014, 12:01 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Судя по твоей картинке, все проще.
Светофильтры в дф отрезают прочие каналы целиком, а в д2д - наполовину.

Пример
#FFFFFF > Красный фильтр D2D > #FF8080
#FFFFFF > Красный фильтр DF > #FF0000

Author:  Черный Думер [ 27 Apr 2014, 12:44 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

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

Author:  OutCast [ 27 Apr 2014, 13:40 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Черный Думер wrote:
У меня есть идея, что перед отрисовкой светофильтра надо на его месте рисовать полупрозрачную текстуру некоего цвета, возможно специфичного для каждого светофильтра. Но вот как рассчитать этот цвет - вопрос.
А у меня есть идея заменить в e_graphics.pas это:
Code:
  else
    if Blending = B_FILTER then
      glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR)
на это:
Code:
  else
    if Blending = B_FILTER then
     begin
      glBlendFunc(GL_ONE_MINUS_CONSTANT_COLOR, GL_SRC_COLOR);
      glBlendEquation(GL_FUNC_ADD);
      glBlendColor(0.000, 0.000, 0.000, 0.500);
     end
В glBlendColor подбираем яркость цвета, если требуется разделяем для конкретной спец-текстуры. Цвета самих спец-текстур настраиваем там же (g_panel.pas,
Code:
         case FTextureIDs[FCurTexture].Tex of
).

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

В классике ещё помню 666 говорил, что всё завязано на палитре, файл PLAYPAL вроде бы. Так как в игре 256 цветов всего, то для каждой текстуры всё подбирается отдельно. Спец-текстуры там работали тоже через палитру. А у нас тут палитра системная, её трогать себе дороже выйдет, и не факт, что будет результат.

Author:  Jabberwock [ 28 Apr 2014, 18:12 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Про палитру Фальк предлагал как-то сделать 8бит, больше в шутку, я отказался.

Author:  Черный Думер [ 18 Jun 2014, 10:52 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

how bout dat

Image

Author:  Jabberwock [ 18 Jun 2014, 12:58 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Интересно - серое не меняет цвет вообще.

Author:  Черный Думер [ 18 Jun 2014, 13:23 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Ага, я тоже заметил.
Короче, это мой собственный шейдер, работает он так:
1. Из трёх цветовых компонент (R, G, B) выбираем бóльшую, её значение присваиваем каналу, соответствующему цвету светофильтра.
2. Остальным каналам присваиваем среднее арифметическое значений других двух компонент.
3. Вышеописанное применяем к каждому пикселю изображения.

Конечно, это не вариант для D2D:F, это просто попытка ответить на вопрос, нужен ли для нормального светофильтра шейдер.

Author:  Jabberwock [ 09 Mar 2017, 03:14 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Есть, оказывается, в сети вот такая штука.
Можно возиться с параметрами цветового шейдера и сразу видеть результат.

http://www.andersriggelsen.dk/glblendfunc.php

К чему мы стремимся:
Image

Образец для экспериментов, грузим в Image URLs/Background:

Цвета, грузим в Image URLs/Foreground:

Или можно использовать Blending Color, но там трудно задать точный цвет.

Author:  Черный Думер [ 30 Nov 2018, 10:27 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Раз уж снова речь зашла - how bout dat?

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

Image

Author:  Jabberwock [ 06 Dec 2018, 15:15 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Так все-таки хуже - вода малопрозрачная.
О, отлично. Вот кафель для пробы и перерисую.
Извините, времени нет сейчас.

Author:  Черный Думер [ 06 Dec 2018, 15:27 ]
Post subject:  Re: [0.62 Beta 1] Неправильная работа светофильтров

Jabberwock wrote:
Так все-таки хуже - вода малопрозрачная.
Увы, я сомневаюсь, что можно сделать лучше без шейдеров.
Проблема тут не в прозрачности, а в нехватке контрастности.

Кстати да, ты редиска - на твоём rgb.gif синий цвет не совсем синий.

Page 1 of 2 All times are UTC + 3 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/