Blame!-roguelike

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Blame!-roguelike

Сообщение dunno » 28 фев 2010, 15:50

Newman писал(а): Может, дело в полноэкранном режиме?
У меня такое же разрешение монитора как у тебя, и вроде бы все ок со строками... А если в окне запустить, а не в полноэкранном, строки обрезаются? (там можно просто в любом месте понажимать "," - поднимание предметов с пола, там будут идти строки, типа поднимать нечего).

Кстати, забавно, голубой фон получается не у всех тайлов. У главгерской собачки, например, фон какой надо - черный. Хм...

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: Blame!-roguelike

Сообщение Newman » 28 фев 2010, 15:56

Запустил в окне. Всё также, голубой фон у символов, строки в нижней части налезают на предыдущую. Да, забыл сказать, враги вообще невидимы (хотя нет, видно, что в этом месте пробел, а не точка), при их перемещении "пустота" перемещается из одного места в другое... :(
Может, состряпать какой-нибудь совсем простенький код и проверить, есть ли голубизна?
Может быть, где-то в платформенно-зависимом коде (в LWJGL есть такой, кажется?) путаются местами байты в ARGB?

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Blame!-roguelike

Сообщение Jolly Roger » 28 фев 2010, 16:28

Странно, у меня всё нормально.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Blame!-roguelike

Сообщение Aerton » 28 фев 2010, 17:09

С вероятностью 95% это просто какие-то параметры в opengl не инициализированы и по умолчанию имеют разные значения на разных драйверах/карточках. Попробуй перед прорисовкой экрана выставить всё, что связано с альфой, текстурой, выключить освещение и вообще всё лишнее.

Аватара пользователя
Anfeir
Сообщения: 876
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: Blame!-roguelike

Сообщение Anfeir » 28 фев 2010, 20:12

На самом деле, попробуй добиться, чтобы у тебя этот синий фон БЫЛ. Или зеленый, или фиолетовый. А потом замени параметр на черный. Чтобы была явная установка черного фона. Вполне возможно, что есть где-то неинициализированные параметры.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Blame!-roguelike

Сообщение Jesus05 » 01 мар 2010, 02:26

dunno писал(а):
Харука-тян писал(а):У меня в Висте всё голубее голубого, как на скрине у Aerton.
Вот это конечно сложнее всего поправить, потому что ни на одном из четырех компов, которые в моем распоряжении, не воспроизводится. Впрочем, ни на одном из них Виста не стоит: на одном Мандрива, на других XP...
Вопрос: а у тебя ровно как у Aerton, то есть черный общий фон и голубой фон у каждого символа, или весь вообще фон синий?
Если второе то мб это потому что я при инициализации openGL не вызываю glClearColor - метод, который выставляет цвет очистки экрана при перерисовке кадра. По идее, этот цвет и так черный по умолчанию, но может внезапно под Вистой он не черный, а голубой?)
я вот после твоего поста о том что "а собачка то с черным фоном" решил глянуть все голубые скрины, на скрине Харуки-тян(простите если не правильно склоняю) тут еще и буква w тоже на нормальном черном фоне, чем рисование ГГ и буквы w отличается от рисования пола и стен?
а glClearColor это врядли т.к. иначе весь экран был-бы голубой, а не только фон буковок.

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: Blame!-roguelike

Сообщение Newman » 01 мар 2010, 05:52

"Голубоватость" какая-то странно избирательная.
К примеру, на экране оружия у Fire Imp фон чёрный... Прилагаю скриншот, быть может, это поможет?
Скрытый текст: ПОКАЗАТЬ
scrshot.png
Экран оружия
scrshot.png (7.12 КБ) 7954 просмотра

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Blame!-roguelike

Сообщение dunno » 01 мар 2010, 10:39

Jesus05 писал(а): тут еще и буква w тоже на нормальном черном фоне, чем рисование ГГ и буквы w отличается от рисования пола и стен?
В том-то и проблема, что ничем =)
Рисование у меня устроено в два этапа. Сначала рисуется серым та часть карты в прямоугольной области экрана, которая уже отрисовывалась раньше (у которых параметр wasDrawed=true) - ну типа, где главгеры проходили - а также те объекты, которые следует всегда рисовать (у которых параметр isAlwaysDraw=true).
Потом берется контейнер так называемых источников света (lightSources) - то есть объектов, вокруг которых надо рассчитать fov. В число этих источников входят оба главгера, и пуля от выстрела, пока летит (потом можно будет сделать всякие факелы, или еще что-нибудь, если потребуется). Эти источники в цикле передаются в метод для расчета fov'a, внутри которого нужные объекты (элементы карты и рядом стоящие враги в области видимости этих источников) рисуются снова - своим основным цветом.

То есть получается, что область карты рядом с главгерами рисуется дважды - сначала серым, а потом по ним проходится fov-процессор и перерисовывает их белым (точнее их цветами по умолчанию. Для элементов карты это белый цвет). Сами главгеры, враги и итемы (буква w, в частности) рисуются один раз - только в fov-процессоре. Получается, здесь есть некое отличие. Но сами методы рисования абсолютно идентичны. И к тому же, часть карты, которая не в области видимости (которая должна рисоваться один раз - серым), на ваших скринах тоже имеет голубой фон... А если еще раз посмотреть на скрин Харуки, то вот тот синий прямоугольник левее и выше красной собачки - это по идее второй главгер, Cibo, и алгоритм отрисовки его вообще не отличается от отрисовки первого, то есть это тоже должна быть собачка, только синяя, а там почему-то прямоугольник...
Короче, причудливо все очень =)

Ладно, в качестве эксперимента: сделал у используемой текстуры черный фон (вместо прозрачного) и переделал вывод строковой информации через другой класс, который юзает автоматически сгенерированный шрифт.
У меня все это сейчас выглядит так:
Изображение
посмотрите плз, изменилось ли что-нибудь у вас. Вот ссылка:
http://blame-roguelike.googlecode.com/f ... -black.zip

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Blame!-roguelike

Сообщение Aerton » 01 мар 2010, 10:54

Теперь выглядит как на скриншоте, никакой синевы.

edit: Если дело в прозрачности, то это скорее всего не были выставлены glAlphaFunc и/или glBlendFunc, но теперь это, видимо, не актуально.

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: Blame!-roguelike

Сообщение Newman » 01 мар 2010, 11:32

О, теперь всё выглядит прекрасно, точно как на авторском скриншоте. :)

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Blame!-roguelike

Сообщение dunno » 01 мар 2010, 12:02

блин, ну здорово! :)
Вроде как, черный фон текстуры ни на что влиять не должен, он по идее так и подразумевается черным, так что ок.

Кажется, я получил неплохую иллюстрацию, почему не следует использовать альфа-канал :)
А то, я достаточно часто встречал такое мнение, но не понимал раньше, почему =)

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Blame!-roguelike

Сообщение dunno » 01 мар 2010, 12:07

Aerton писал(а): edit: Если дело в прозрачности, то это скорее всего не были выставлены glAlphaFunc и/или glBlendFunc, но теперь это, видимо, не актуально.
в коде инициализатора opengl прописывается glBlenfFunc:

Код: Выделить всё

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
Кстати, если эти строки закомментировать, то у меня получается похожая картина - все текстурки заменяются разноцветными прямоугольничками. Но в целом, каюсь, в это место я особо не вникал, скопировал в числе прочего кода из какого-то примера, когда начинал разбираться с opengl.

glAlphaFunc вроде бы нужно прописывать, если хотим отсекать цвета ниже какого-то порога, разве нет?

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Blame!-roguelike

Сообщение Aerton » 01 мар 2010, 15:11

dunno писал(а):Кажется, я получил неплохую иллюстрацию, почему не следует использовать альфа-канал :)
А то, я достаточно часто встречал такое мнение, но не понимал раньше, почему =)
В данном случае без него действительно проще, но в общем это мнение неверно. Надо просто использовать альфу правильно.
dunno писал(а):glAlphaFunc вроде бы нужно прописывать, если хотим отсекать цвета ниже какого-то порога, разве нет?
glAlphaFunc нужно прописывать, если включен alpha test.

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

dunno
Сообщения: 26
Зарегистрирован: 29 дек 2009, 20:57

Re: Blame!-roguelike

Сообщение dunno » 02 мар 2010, 15:31

Вопрос к Sanja.
Я сейчас нашел и смотрю твою игру в Lost Dreams. Скажи, код оттуда можно позаимствовать? По крайней мере, классы DebskiLib и Grammar я бы с удовольствием позаимствовал. В Grammar вообще с виду здоровенная работа проделана!)

Аватара пользователя
Newman
Сообщения: 144
Зарегистрирован: 23 фев 2010, 15:30

Re: Blame!-roguelike

Сообщение Newman » 02 мар 2010, 15:50

Присоединяюсь к вопросу. :)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя