Проекты
GameDev.ru / Проекты / Форум / В коридорах бесконечных. В чёрном зале, где колонны. (21 стр)

В коридорах бесконечных. В чёрном зале, где колонны. (21 стр)

Advanced: Тема повышенной сложности или важная.
Страницы: 120 21 22 2325 Следующая »
122Постоялецwww8 июля 201816:12#300
Suslik
> то есть чтобы всё было правильно, надо сначала твой обычный цвет перевести в
> линейное пространство (возвести в степерь 2.2), потом выполнить те
> преобразования, потом — перевести обратно в цвет
Да, это ценная информация. Я помню что недели три назад ты рассказал этот факт. И я об этом ранее не знал, да.
И не везде могу применить её потому что целые числа и char на канал цвета.
И уже говорил про это, да.

Но.

Но ты совсем не прав, говоря что они не меняют цветность:
Картинка сделанная ГИМПом. Верхняя добавил гаммы, нижняя добавил контраста.
Есть различия в цветности?
Кажется хорошо видно. Стандартные формулы меняют цветность, получается.

+ Показать

Zegalur
> как раз таки 8 бит на канал чревато артефактами
Ну блиин, да. :)
А куда я денусь?

а) Память: программа уже сейчас юзает под текстуры 256 мегов оперативки. Хочешь чтобы 768 юзала?
б) Быстродействие: пропускная способность памяти сильно влияет на скорость рендера. Если я сделаю 32 бита на канал - скорость упадёт в три-четыре раза.
Вместо 50 фпс юзер увидит 15.

Так что тут всё сурово.
А Гимп может себе позволить, так как ему не надо контраст 60 раз в секунду на полный экран класть.

Правка: 8 июля 2018 18:18

jaguardУчастникwww8 июля 201818:47#301
122
> а) Память: программа уже сейчас юзает под текстуры 256 мегов оперативки. Хочешь
> чтобы 768 юзала?

А хочешь, мы тебе про мипмапы расскажем?

122Постоялецwww8 июля 201819:07#302
jaguard
> А хочешь, мы тебе про мипмапы расскажем?
Только если ты уверен, что я о них не знаю. Ведь любой совет должен нести новую информацию.
И для полной уверенности в своих действиях перечитай нулевой пост, найди там фразу "сознательно изолируясь от внешних знаний"
Там много объяснено сразу.
jaguardУчастникwww8 июля 201819:30#303
122
> И для полной уверенности в своих действиях перечитай нулевой пост, найди там
> фразу "сознательно изолируясь от внешних знаний"

Ты сам задаешь вопросы, которые противоречат 0 посту.

SuperInoyЗабаненwww8 июля 201821:01#304
122
> Ведь любой совет должен нести новую информацию.
Учитывая что человек усваивает информацию с n-го раза - нет, не должен.
Mr_JackПостоялецwww8 июля 201822:43#305
Сейчас даже не верится, что ты делал такие замечательные игры как "Подземный поход" и "Мегазей и Демоны".
Последние твои темы про то, как тяжело делать контент, как ты ведешь разработку по принципам, и как тебе нужно правильно давать советы, и как много мифических проблем на твоем пути, и что геймплей не идет, и формулы кривые.
Просто посмотри летсплеи "Подземного похода" и спроси себя - "Я ли это сделал?".
122Постоялецwww9 июля 201810:03#306
SuperInoy
> > любой совет должен нести новую информацию.
> - нет, не должен.
Это называется нудеть, повторять то что уже все услышали.
Такое вызовет только отторжение у собеседника.

Mr_Jack
> Сейчас даже не верится, что ты делал такие замечательные игры как "Подземный
> поход" и "Мегазей и Демоны".
Нее, самая замечательная - это Ванильный Рогалик. Вот это да, мой топ. Всем кстати рекомендую, последняя отполированная версия в стиме! Как раз недавно скидки закончились, покупайте. https://store.steampowered.com/app/491510/Vanilla_Bagel_The_Roguelike/
Кстати, ей очень нужны положительные отзывы так как она балансирует на грани 70%, а это переход синего значка стима в коричневый. Помогите ей отзывами?

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

+ До_кучи_раз_уж_вспомнил

Mr_Jack
> Последние твои темы про то, как тяжело делать контент
Ну как бы да. Проблема контента оказалась реальнее чем я думал.
Три де - просто адски медленно делаю.

Хз с чем это связано. На стороне редакторов вроде всё в порядке: 2д я делал в гимпе, а 3д делаю в блендере. Это редакторы одной силы, скажем так, поэтому тяжесть 3д не списать на плохой редактор.
На неопытность мою - также не списать, ведь я 3д ковырял еще в 95-м году и позже.

Однако факт: 3д контент очень тяжёлый. Если условно новое оружие в Ванильном Рогалике я делал за пару часов, то новое оружие в Осеннем Шутере я делал за две недели чистого времени. Первое - крохотная иконка 26х26 пикселей и десяток флагов в редакторе поведения оружия. Второе - три дня на 3д модель, две недели на прописывание поведения оружия, анимацию выстрела, поведение снаряда, анимацию подрыва снаряда, балансировку скорости и силы оружия.

Правка: 9 июля 2018 14:34

SuslikМодераторwww9 июля 201810:51#307
122
> > как раз таки 8 бит на канал чревато артефактами
> Ну блиин, да. :)
> А куда я денусь?
уже кучу раз сказали, что хранится цвет как угодно. он переводится в линейное пространство во время вычислений а потом переводится обратно.
float3 srgb_color = float3(pixels[x + y * width].rgb / 255.0f)
float3 linear_color = pow(srgb_color, 2.2f);
float3 res_linear_color = DoWhatever(linear_color);
float3 res_srgb_color = pow(res_linear_color, 1.0f / 2.2f);
pixels[x + y * width].rgb = int3(res_srgb_color * 255);

тебе когда что-то объясняешь, будто продать что-то пытаешься. ты пытаешься понять это всегда таким образом, чтобы убедить себя, что оно тебе не подходит, лишь бы не пробовать что-то новое. дело твоё, конечно.

Правка: 9 июля 2018 10:54

122Постоялецwww9 июля 201814:31#308
Suslik
> лишь бы не пробовать что-то новое
Меня картинка ГИМПа сбила: я думал там всё правильно сделано. (Сообщение #300) А что гимп косячит - я не знал.
Ты оказался прав, попробовал сейчас преводить в линейное пространство - и моя формула гаммы перестала обесцвечивать.

Ок, а теперь только не смейтесь.
Как заполнить 256 значений степенью 2.2?
Тупо transf_pow[1]=1;transf_pow[2]=5; - слишком жутко даже для меня.
А степень 1.0/2.2 придётся циклом искать по этому массиву. Тоже сказка та ещё.

+ Показать

Правка: 9 июля 2018 14:36

SuslikМодераторwww9 июля 201814:46#309
122
> Просто не подходит.
тогда просто не std::pow(), очевидно же. вот тебе реально больше нечего делать, как проблемы себе на ровном месте придумывать? нет, ты, конечно, можешь представить [cht]x^y = e^{y \ln x}[/cht], потом разложить в ряд [cht]e^x \approx \sum_{n=0}^{\infty}\frac{x^n}{n!}[/cht], посчитать первые 10 членов, потом аналогично разложить логарифм и посчитать свою степень. ещё можно бинарным поиском искать [cht]x^{2.2}[/cht], стартуя интервалом [cht][x^2...x^3][/cht] и бисекцией его делить, но вот честно, для тебя удовольствие при написании движка заключается в решении вот таких вот нелепых проблем?

Правка: 9 июля 2018 14:48

MikleМодераторwww9 июля 201814:48#310
122
> Как заполнить 256 значений степенью 2.2?
Да хоть файл создай с такой таблицей. Или даже для подготовки такого файла тебе что-то мешает использовать math.h?
Сложнее будет с обратным преобразованием, ведь 255^2.2 - это 196965, крупная таблица нужна.
ChebПостоялецwww9 июля 201814:55#311
>Как заполнить 256 значений степенью 2.2?
Написать краткоутилиту, использующую эту либу, которая высрет .h с объявлением массива - константы, которую включишь в свой проект, который не использует либу.

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

А способом, который я тебе рекомендую, сборщик подготавливал шрифт: на входе - PCX картинка, на выходе - инклюд для Турбо Паскаля.

SuslikМодераторwww9 июля 201814:58#312
святые суслики, на худой конец можно хоть гамму 2.0 использовать — результат всё равно будет лучше, чем без неё и, надеюсь, в эту степень можно возвести без "сторонних библиотек"
MikleМодераторwww9 июля 201815:20#313
Suslik
> на худой конец можно хоть гамму 2.0 использовать
Была такая же мысль, только потом всё равно корень извлекать.
Great V.Постоялецwww9 июля 201815:35#314
Mikle
> Сложнее будет с обратным преобразованием, ведь 255^2.2 - это 196965, крупная
> таблица нужна.
А вот это не догнал. Ему же, в принципе, надо работать с нормализированными значениями, а не с абсолютными. Т.е. 0х00 = 0.0, а 0хFF = 1.0.
Таким образом получается, что и туда и обратно надо по таблице из 256 элементов.

Правка: 9 июля 2018 15:35

Страницы: 120 21 22 2325 Следующая »

/ Форум / Проекты / Оцените

2001—2018 © GameDev.ru — Разработка игр