Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Алгоритмические вопросы. | страница 3
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 3 из 7
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Алгоритмические вопросы.»
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
топик стартер открыл тут "ящик пандоры", ибо основа всего 3D это модель освещения, коих придумано уже очень много разных, и проще взять готовое, нежели "изобретать" своё, однако можно погрязнуть
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:21 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Jurec :
Разве нет?

Нет.
Jurec :
Весь НАДО, потому что тогда ты затушишь одни источники света, а другие не тронешь. Итого получится очень некорректная картинка

Shirson :
Но ведь нахер нет никаких расстояний, динамик рэнджей и прочей ереси!

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

добавлено спустя 1 минуту:
Sh.Tac. :
однако можно погрязнуть

Что-то мне подсказывает, что оно не 3d, и что там не модель освещения, а совсем что-то другое. Хотя я помню пару игр, в которых свет и цвет этого света играл жизненно-важную роль. Но в тех играх свет как раз по стандартным уже законам работал.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (01:55 05-09-2014), всего редактировалось 4 раз(а)
    Добавлено: 01:55 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Коллеги, есть пара вопросов по расчёту цветов при освещении.
Имеется точка, определённого цвета RGB.
Имеется источник света, определённого цвета RGB.
1. Источник освещает точку. Как вычислить её конечный цвет RGB?
2. Несколько источников светят на точку. Как вычислить суммарный RGB цвет истоников (и, далее, п1)?

Не нужно заморачиваться дистанциями, углами, нормалями, материалами, и прочим. Всё предельно просто - есть цвет источника света, есть цвет точки, как посчитать результат.

Первое, что приходит в голову, источники света складывать по OR, а точку освещать по AND.

Сорри, что полностью.
Для меня RGB - это Vector3_byte, то есть (byte, byte, byte);
И для них есть простые операции векторного сложения, умножения и т.д. Причём с естественной отсечкой по 0-255 и разрядностью в целых, поскольку тип данных по-другому не умеет, да и устройство отображения тоже.

И вот, глядя на задачу, второе, что приходит в голову - векторное произведение этих самых цветов.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (02:01 05-09-2014), всего редактировалось 1 раз
    Добавлено: 01:56 05-09-2014   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Guest :
Для меня RGB - это Vector3_byte

Jurec прально написал, что это 0-1, потом можно выбрать HUE и тоже получить какие-то "алгоритмы"
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 02:03 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
AND - это Min
OR - это Max

со светом такие операции будут давать очень странный результат ИМХО

добавлено спустя 2 минуты:
Sh.Tac. :
Guest :
Для меня RGB - это Vector3_byte

Jurec прально написал, что это 0-1, потом можно выбрать HUE и тоже получить какие-то "алгоритмы"

Это в дробях 0-1. А в целых это 0-255. И вывод идёт в целых, 32bpp.
Хотя для математики проще да, 0.0-1.0.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (02:08 05-09-2014), всего редактировалось 2 раз(а)
    Добавлено: 02:07 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Jurec :
В твоей задаче источник света (1,1,1) не имеет затухания по расстоянию.
Не имеет никакого отношения к теме вообще.

В точке, свет от одного источника равен 1,1,1 и еще от пяти 1,0,0. При этом резльтирующая света будет 1,1,1. Никаким боком, стороной или хером тут дистанция не играет роли вообще никакой. Вообще. В упор они на неё светят, тестовый вариант для крайних состояний. Чтобы понять слабые места модели м обойти их при использовании.

Цитата:
Я так ненавязчиво говорю что затухание света - must have для любого источника света.
Еще раз, прямым тектом, навязчиво и конкретно - речь идёт про цвет источников уже на точке.
Кто сказал, что у меня нет затухания? Откуда это вылезло? С какого перепугу?
Есть у меня затухание. Адски сложное и навороченное, своим поведением привязанное к среде(средам) распространения и части спектра.
Почему так трудно понять простую вещь - если я говорю, что затухание не является проблемой - это не является проблемой. Её не нужно решать, про неё не нужно мне намекать, её не нужно вставлять в формулы расчёта цвета точки. У меня это делает другая функция, которая выдаёт результирующий цвет, в зависисмости от цвета источника и всех срезов сред между точкой и истоником. Вот результирующим цветом (уже протухшим от расстояния) мне нужно осветить точку. Я об этом и спрашиваю. Ну вот ровно об этом, предельно понятным языком, предельно кратко и предельно недвусмысленно.

Sh.Tac. :
топик стартер открыл тут "ящик пандоры", ибо основа всего 3D это модель освещения, коих придумано уже очень много разных, и проще взять готовое, нежели "изобретать" своё, однако можно погрязнуть
Причём тут 3D? Что именно готовое нужно взять, чтобы решить описанную в первом посте задачу? В чём тут погрязать? В трёх формулах?
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (05:29 05-09-2014), всего редактировалось 1 раз
    Добавлено: 05:28 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Еще раз, прямым тектом, навязчиво и конкретно - речь идёт про цвет источников уже на точке.

В условии ни разу не сказано, что цвет уже на точке. Сказано просто - есть точка и есть источник света. Естественно предположить, что источник отдельно со своими параметрами, точка отдельно со своими. Между ними какое-то расстояние. Произвольное. Это может вообще произвольная точка сцены. И при этом ты требуешь чтобы вообще никаких подвижек больше. А хз сколько этого света до точки долетает, может там тень вообще.

добавлено спустя 4 минуты:
Shirson :
Вот результирующим цветом (уже протухшим от расстояния) мне нужно осветить точку. Я об этом и спрашиваю

Ну дык там опять варианты.
Это может быть рассеянный свет - это один цвет будет, например - произведение цвета точки и суммы цветов света.
Это может быть блик - это другой цвет будет, чистый цвет суммы света.
Это может быть самосветимость в тени - это будет третий, чистый цвет точки, помноженный на коэффициент самосветимости.
Это может быть вообще тень - там будет 0, какой бы цвет ни был.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (05:49 05-09-2014), всего редактировалось 2 раз(а)
    Добавлено: 05:45 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Guest :
В условии ни разу не сказано, что цвет уже на точке.
Сказано просто - есть точка и есть источник света. Естественно предположить, что источник отдельно со своими параметрами, точка отдельно со своими. Между ними какое-то расстояние. Произвольное. Это может вообще произвольная точка сцены. И при этом ты требуешь чтобы вообще никаких подвижек больше. А хз сколько этого света до точки долетает, может там тень вообще.

Офигеть, чо. Необузданное планирование фантазии под горку здравого смысла.
Прямым тектом сказано, что дистанции роли не играют, прямо и чётко определены рамки задачи, но как фантазию удержишь, верно?
Как еще до физдвижка или особенностей I64 не добрались, в таких цепочках рассуждений.
Только вот Minx, почему-то, понял всё, сразу и верно. Может читал внимательно и вникал в написанное? Улыбка
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (05:47 05-09-2014), всего редактировалось 1 раз
    Добавлено: 05:45 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Минкс телепатировал половину. Телепаторы только в КТВ есть.
А чем принципиальны побитовые OR и AND в вычислении цвета?

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

Абисняю свой вапроз.
Я делаю третью версию своего roguelike шутера. Первый был сделан на конкурс и работал только с 16 цветами EGA (это было конкурсное условие). Второй наследовал это ограничение и в одной из POC-версий имел готовую систему статического и динамического освещения, реализованную в 16 цветах Улыбка Выглядело это шикарно, а осветительная арифметика была крайне проста (из-за огранчиений по цветности).
Источники света были бесцветными
Интенсивностей света было пять
llDarkness - отсутствие освещения, чёрный результирующий.
llVeryLow - Цвета меньше 8 - в чёрный, больше - в свой тёмный вариант (условно цвет-7)
llLow - Цвета меньше 8 - в тёмно-серый, больше - в в свой тёмный вариант
llNormal - как есть
llOver - - Цвета меньше 8 - в свой светлый вариант (цвет+7), больше - в белый
Вот вся африфетика уже и описана. Всё это прекрасно работало, но хотелось большего.
Сейчас я делаю идейного наследника, но уже в полных цветах.
Соответственно, для расчёта освещения мне нужно понять, как расчитывается освещение для точки от одного или нескольких источников света. Ввиду специфики самой игры, нет заморочек с нормалями, углами, и пр. особенностями трехмерных освещений поверхностей. И всё расчитывается CPU, причём размер крайне небольшой - 49х49 условноточек в идеале, либо до 512х512 при полной обработке.
Нет никаких других вопросов, кроме как заданные в топикстарте - есть RGB-точка, на неё светит RGB-источник(и) света, как вычислить RGB-результат. Интересует только это. Да.

Ишшо раз, растолкуй для клинических идиотовъ:
у тебя были точки с цветами и 5 возможных вариантов, что с этими цветами сделать, в зависимости от интенсивности света? И теперь тебе нужна некая формула, которая бы вмещала в себя 2563 вариантов, что делать с цветом? И аштотакоэ должна быть "засветка"?
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (06:15 05-09-2014), всего редактировалось 2 раз(а)
    Добавлено: 06:12 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Guest :
А чем принципиальны побитовые OR и AND в вычислении цвета?
Ничем не принципиальны.
А причём тут они и их принципиальность?

Цитата:
Ишшо раз, растолкуй для клинических идиотовъ:
у тебя были точки с цветами и 5 возможных вариантов, что с этими цветами сделать, в зависимости от интенсивности света?
У меня есть рогаликовый шутер. А нём требуется модель полноцветного освещения. Для этого мне требовалось решить несколько задач, одна из которых сводится к вычислению результирующего RGB, при наложении цвета источника света на цвет точки. Я задал этот вопрос в топикстарте.
Про рогалик рассказал, чтобы на корню отсечь расползание дискуссии на нормали, поверхности, углы, бампы и прочую дичь.

Цитата:
И теперь тебе нужна некая формула, которая бы вмещала в себя 2563 вариантов, что делать с цветом?
Мне нужна формула вычисления цвета, при освещения точки заданного цвета истоником света заданного цвета. Мля, я незнаю уже сколько раз на разные манеры мне нужно повторить предельно ясно сформулированную задачу.
Формула найдена, спасибо. Отдельное спасибо Jurec за наталкивание на использование для цвета единиц - это сделало формулу расчёта Result := RGB(Color.R * Light.R / 255, Color.G * Light.G / 255, Color.B * Light.B / 255); существенно элегантнее Result := RGB(Color.R * Light.R, Color.G * Light.G, Color.B * Light.B);
Всё, уже спасибо.

Цитата:
И аштотакоэ должна быть "засветка"?
Да уже ничего, я уже со всем разобрался.
_________________
У меня бисера не доxеpа.
    Добавлено: 07:09 05-09-2014   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Так, погоди, это же КИМ. Я не могу тебя отпустить без разговора о нормалях и физ движке! И не надо рассказывать что ты этого не спрашивал, мы все знаем что ты хочешь об этом поговорить! Гы-гы
_________________
MOV topka, C++
    Добавлено: 10:44 05-09-2014   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10527
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Jurec :
Ибо в одной сцене иметь несколько directed light'ов.. ну мало смысла тут.

Две фары автомобиля, или два фонарика - вот тебе два направленных источника света с практически неубывающей освещаемостью.

Бегают два черта в платформере и махают фонариками, которые яркие настолько, что на сцене убываемость не имеет значения. Вот и малый смысл например.

Jurec :
Если источник за много км - это directed light (направленный источник - я раньше писал). Что сейчас у Shirson'а и имеется.

В своих рассуждениях я вообще абстрагировался от типов источников света и влияния убывания. Чего конкретно у Shirson'a я без понятия.
_________________
μηδείς αγεωμέτρητος εισίτω

Последний раз редактировалось: Minx (11:49 05-09-2014), всего редактировалось 1 раз
    Добавлено: 11:43 05-09-2014   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Minx :
Две фары автомобиля, или два фонарика - вот тебе два направленных источника света с практически неубывающей освещаемостью.

Это spot light'ы. У них есть "конус освещенности".

Minx :
В своих рассуждениях я вообще абстрагировался от типов источников света и влияния убывания. Чего конкретно у Shirson'a я без понятия.

Да я на самом деле просто говорил что его контр-пример в жизни не должен встречаться. Вот и все - а он сагрился на мну Рыдания.
_________________
MOV topka, C++
    Добавлено: 13:43 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
У меня не жизнь, у меня рогалик. И этот пример там будет не то, что встречаться, а нагло использоваться в геймлее и игромехе.
Но не суть.
_________________
У меня бисера не доxеpа.
    Добавлено: 16:14 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Всё, уже спасибо.

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

добавлено спустя 2 минуты:
В смысле - ты по
Minx :
f1(x,y) = max(x,y)

свет смотришь? Тогда получится, что две (три, четыре, десять) (1,0,0) светят так же, как одна (0,1,0).
Алсо получается, что у тебя никогда не будет цвета ярче, чем цвет точки (бо макс. множитель 1), т..е никакого выбеливания.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (19:11 05-09-2014), всего редактировалось 1 раз
    Добавлено: 19:11 05-09-2014   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10527
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Guest :
свет смотришь? Тогда получится, что две (три, четыре, десять) (1,0,0) светят так же, как одна (0,1,0).

Если у меня в комнате горит лампочка 60 Вт, или горит две лампочки по 60 Вт, то особо цвет предметов в комнате не меняется. Что 200 lx, что 400, что 600 человек не воспринимает разницу.

Поэтому что реальность, что игры - эти миры не такие уж и 2+2-шные.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 19:32 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Guest :
В смысле - ты по
Minx :
f1(x,y) = max(x,y)

свет смотришь?

Нет по
Jurec :
L = L1 + L2


Цитата:
Алсо получается, что у тебя никогда не будет цвета ярче, чем цвет точки

Запросто будет. До клампа всё что угодно будет.
_________________
У меня бисера не доxеpа.
    Добавлено: 19:44 05-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Нет по

А, тогда ок. Аищщо можно сделать, чтобы лампочки слабее 0.5 делали темнее, а сильнее 0.5 ярче. Хотя это может уже в геймплей не вписаться.
Minx :
Если у меня в комнате горит лампочка 60 Вт, или горит две лампочки по 60 Вт, то особо цвет предметов в комнате не меняется. Что 200 lx, что 400, что 600 человек не воспринимает разницу.

Глаз приспосабливается. Если в комнате горит две лампочки по 60 - в неосвещённом коридоре темнее, чем если горит одна лампочка.
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 20:57 05-09-2014   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10527
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Guest :
Глаз приспосабливается. Если в комнате горит две лампочки по 60 - в неосвещённом коридоре темнее, чем если горит одна лампочка.

Разница все равно очень мала. Если не обращать внимания, то народ и не замечает.

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

Что ещё более важно, геймплей требует свои правила. Если для игры имеет значение видно/не видно, то для неё что одна, что пять лампочек должно быть одинаково, и без бледных недосветок и или засветок с пары лампочек. И в результате реализмы берут барабан и начинают судорожно маршировать..
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 21:04 05-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Вопрос №2.

Вопрос именно алгоритмический и никакой другой.
Допустим, есть алгоритм заполнения двумерного массива. Он чем-то похож на алгоритмом освещения, используемый в мэинкрафте.
Суть его в следующем - для каждой ячейки используются следующие правила:
Всего существует, допустим, 15 уровней освещённости. От 15 - самый яркий до 0 - самый тёмный.
Если ячейка не имеет источника света, берётся максимальный уровень света четырёх соседей (Окрестность фон Неймана, черыре недиагональных соседа), понижается на 1 и назначается ячейке
Если ячейка имеет источник света, берётся максимальный уровень света четырёх соседей, понижается на 1 и сравнивается с уровнем источника света в ячейке. Выбирается максимальный и назначается ячейке.

Насколько я понмиаю этот алгоритм, работает оно так:
1. Пробегаем весь массив и применяем правила выше.
2. Если хоть у одной ячейки изменился уровень освещённости, идём на п1.

Есть какой-то вариант ускорить его работу? Можно ли снизить количество прогонов? Интересует общее решение, без упования на малое количество истоников света или еще чего подобного.
Само освещение, его качества, особенности и пр не интересуют и не входят в обсуждаемый вопрос.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (17:43 11-09-2014), всего редактировалось 3 раз(а)
    Добавлено: 17:05 11-09-2014   
Канал Игры Мечты: «Алгоритмические вопросы.»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Как вы можете издеваться над тем, чего еще нет? (Steadfast)

  » Алгоритмические вопросы. | страница 3
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18