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

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

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

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


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

Сложение цвета:
R = clamp(R1 + R2, 0.0, 1.0)
G = clamp(G1 + G2, 0.0, 1.0)
B = clamp(B1 + B2, 0.0, 1.0)
Где цвет итоговый(R, G, B)

Умножение цвета:
R = R1 * R2
G = G1 * G2
B = B1 * B2
Где цвет итоговый(R, G, B)

Теперь подставь это в мои первоначальные формулы.

добавлено спустя 3 минуты:
Если бы мне нужно была помощь с этой заморочкой, я бы про ней спросил. А мне с ней помощь не нужна совсем

ОК, расстояние от точки до источника света не учитываем
_________________
MOV topka, C++

Последний раз редактировалось: Jurec (19:13 04-09-2014), всего редактировалось 1 раз
    Добавлено: 19:13 04-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Minx :
Shirson :
Нет никаких других вопросов, кроме как заданные в топикстарте - есть RGB-точка, на неё светит RGB-источник(и) света, как вычислить RGB-результат. Интересует только это.

Пациент: "Я понимаю Ширсона."
Доктор (роняя очки на стол): "Оп-паньки..."
(;

Но ведь всё предельно просто и ясно изложено! Но ведь нахер нет никаких расстояний, динамик рэнджей и прочей ереси! Ну почему народ постоянно шатает отвечать не на мой вопрос, а на свой ответ?!?! Улыбка
И ты меня действительно понял, кстати, причём полностью Подмигиваю

Shirson :
Нет никаких других вопросов, кроме как заданные в топикстарте...
Не нужно заморачиваться дистанциями...

Guest :
и удалённость от источника ещё наверное надо - а значит...


_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (19:46 04-09-2014), всего редактировалось 3 раз(а)
    Добавлено: 19:26 04-09-2014   
Guest
 2075 EGP


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

добавлено спустя 1 минуту:
А шо вы там про бинарные операции?..
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (19:42 04-09-2014), всего редактировалось 1 раз
    Добавлено: 19:42 04-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Jurec :
Сорри, деформация. Все цвета это три компонента от 0 до 1. Дробные.
Теперь понятно.

Цитата:
Сложение цвета:
R = clamp(R1 + R2, 0.0, 1.0)
Как работает clamp?

добавлено спустя 8 минут:
Если вот так:
Код:
Pseudocode (clamping):
function clamp(x, min, max):
    if (x < min) then
        x = min;
    else if (x > max) then
        x = max;
    return x;
end clamp

то по мне, это будет несколько странно выглядеть.
Хотя надо попробовать.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (19:59 04-09-2014), всего редактировалось 2 раз(а)
    Добавлено: 19:57 04-09-2014   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Да, ты привел точное определение clamp'a

Shirson :
то по мне, это будет несколько странно выглядеть.
Хотя надо попробовать.

Ну так делают в большинстве случаев, чтоб не сказать что "во всех".
Эта операция заложена в самом GPU (инструкции ADD_SAT, MUL_SAT)

Как ты понимаешь clamp отрежет значения больше 1.0. Которые как раз и являются "засветом". Если нужно сделать "засвет" - надо делать иначе немного. Но это вроде другая история. Или нет?
_________________
MOV topka, C++

Последний раз редактировалось: Jurec (21:15 04-09-2014), всего редактировалось 3 раз(а)
    Добавлено: 21:11 04-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Я это всё понимаю, я просто не очень уверен, что пять источников 0.2 должны светить как 10.
Проверю эксперементально.

С засветками у меня немного другое. У меня это планируется как одна из важных (очень) частей геймплея, но посмотрим по месту, как это реализовывать и обсчитывать, когда уже будет готовая и работоспособная модель освещения.
_________________
У меня бисера не доxеpа.
    Добавлено: 22:01 04-09-2014   
Guest
 2075 EGP


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

Они и не должны, они должны как 1.0 Гы-гы
Если они совпадают по цвету, разумеется.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (22:33 04-09-2014), всего редактировалось 1 раз
    Добавлено: 22:32 04-09-2014   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Ты всмысле что 5*0.2 == 1.0 и 10*0.2 == 1.0?
Ну да, это засвет получается.
_________________
MOV topka, C++
    Добавлено: 22:35 04-09-2014   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Именно что.
Похожий нестык с 1,1,1 + 5 х 1,0,0. Результирующий свет будет девственно бел.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (22:51 04-09-2014), всего редактировалось 1 раз
    Добавлено: 22:49 04-09-2014   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Если цвет точки = (1,1,1) и цвет источника света = (1,0,0) Результат будет:

(1, 1, 1) * (1, 0, 0) = (1*1, 1*0, 1*0) = (1, 0, 0)

Не вижу проблемы.
_________________
MOV topka, C++
    Добавлено: 22:52 04-09-2014   
Shirson
 1605 EGP


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

Речь про сложение источников.
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (22:59 04-09-2014), всего редактировалось 3 раз(а)
    Добавлено: 22:58 04-09-2014   
Jurec
 348 EGP


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

добавлено спустя 11 минут:
Я так ненавязчиво говорю что затухание света - must have для любого источника света. Ну кроме направленного (у которого нет позиции, а есть только вектор)
_________________
MOV topka, C++

Последний раз редактировалось: Jurec (23:10 04-09-2014), всего редактировалось 1 раз
    Добавлено: 23:10 04-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Похожий нестык с 1,1,1 + 5 х 1,0,0. Результирующий свет будет девственно бел.

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

Последний раз редактировалось: Guest (23:16 04-09-2014), всего редактировалось 1 раз
    Добавлено: 23:14 04-09-2014   
Minx
 985 EGP


Модератор
Рейтинг канала: 6(329)
Репутация: 135
Сообщения: 10533
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Jurec :
В твоей задаче источник света (1,1,1) не имеет затухания по расстоянию.
Это уберсверхновая звезда. Не надо так

Свет с расстоянием не убывает, а рассеивается.

Например если платформер, а источник за много млн км, т.е. свет сверху параллельные лучи, то свет не затухает, а тени прямо вниз.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 23:15 04-09-2014   
Olorin
 70 EGP


Рейтинг канала: 1(6)
Репутация: 12
Сообщения: 97
Откуда: Хьёрвард
Зарегистрирован: 27.02.2006
Guest :
Olorin :
resultColor = pointColor * Max(lightsColor.Select(c => c / 255.0).Sum(), 1.0) // для каждой компоненты

А единичка зачем? Подозрение. Этак у тебя получается, что при отсутствии освещения или слабом освещении точка имеет полностью свой цвет, то есть самосветима.

Min конечно же! Совсем запутался...
_________________
Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший
    Добавлено: 23:17 04-09-2014   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Shirson :
Похожий нестык с 1,1,1 + 5 х 1,0,0. Результирующий свет будет девственно бел.

Ну смотри - если ты работаешь в ограниченном пространстве [0.0, 1.0] - то да, ты уже пересветил первым источником всё, и любые действия, кроме вычитания, никакого эффекта нести уже не могут в принципе. Потому что не вычислимы отсекаются ограничением пространства (clamp(0.0, 1.0)).
Можно пойти другим путём:
Vector( (1.0, 1.0, 1.0) + 5 х (1.0, 0.0, 0.0) ).Normalize();
Тогда ты и цветовой взнос сохранишь (6 частей красного, по одной части синего и зелёного = очень красная (и относительно белого тёмная) лампа цвета (1, 0.16, 0.16)), и в потолок упрёшься.
Но выглядеть, особенно на экстремальных случаях, будет ну очень странно.

добавлено спустя 5 минут:
В сторону усложнения ещё можно отдельно считать цвет и интенсивность, тогда с 1,1,1 + 5 х 1,0,0. будет цвет нормализованный как выше, а интенсивность будет нормализатром, т.е. 6. Но как это отображать на точку - вообще хз. То есть в чём будет разница между светами (1, 0.2, 0.2) интенсивностью 6 и интенсивностью 3.

добавлено спустя 4 минуты:
Ой, не, нормализовать тупо нельзя, это же к единице приводит даже если изначально длина меньше 1.
Тогда... Нормализовать, если любая компонента цвета стала больше 1.0?.. Какая-то кривая компрессия получается.

Что нужно получать при пересвете цветных источников?
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (23:34 04-09-2014), всего редактировалось 5 раз(а)
    Добавлено: 23:31 04-09-2014   
Olorin
 70 EGP


Рейтинг канала: 1(6)
Репутация: 12
Сообщения: 97
Откуда: Хьёрвард
Зарегистрирован: 27.02.2006
Guest :

В сторону усложнения ещё можно отдельно считать цвет и интенсивность, тогда с 1,1,1 + 5 х 1,0,0. будет цвет нормализованный как выше, а интенсивность будет нормализатром, т.е. 6. Но как это отображать на точку - вообще хз. То есть в чём будет разница между светами (1, 0.2, 0.2) интенсивностью 6 и интенсивностью 3.

добавлено спустя 4 минуты:
Ой, не, нормализовать тупо нельзя, это же к единице приводит даже если изначально длина меньше 1.
Тогда... Нормализовать, если любая компонента цвета стала больше 1.0?.. Какая-то кривая компрессия получается.

Угу. Отдельные точки нельзя. Можно попробовать весь растр нормализовать: тут и пересвет - яркие места будут нужного цвета, а остальное затемнится, вроде эффекта ослепления от яркого света.

PS Где-то я читал, что эту проблему грамотной расстановкой источников на уровне левел-дизайна решают обычно. В динамичных же сценах никто не оттенки яркости внимания не обращает, т.к. оно относительно быстро из виду пропадает.
_________________
Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший

Последний раз редактировалось: Olorin (23:44 04-09-2014), всего редактировалось 3 раз(а)
    Добавлено: 23:40 04-09-2014   
Guest
 2075 EGP


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

Весь нельзя, это тупо Tone Mapping из HDR в LDR, а нам это не надо Гы-гы
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 23:49 04-09-2014   
Olorin
 70 EGP


Рейтинг канала: 1(6)
Репутация: 12
Сообщения: 97
Откуда: Хьёрвард
Зарегистрирован: 27.02.2006
Guest :
Olorin :
Можно попробовать весь растр нормализовать

Весь нельзя, это тупо Tone Mapping из HDR в LDR, а нам это не надо Гы-гы

Дык если разрешать получаться интенсивностям за пределами LDR, то в любом случае придется это делать.
_________________
Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший
    Добавлено: 00:08 05-09-2014   
Jurec
 348 EGP


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

Например если платформер, а источник за много млн км, т.е. свет сверху параллельные лучи, то свет не затухает, а тени прямо вниз.


Если источник за много км - это directed light (направленный источник - я раньше писал). Что сейчас у Shirson'а и имеется.
Я же говорю о point light'ах у которых свет затухает/убывает/рассеивается.

Ибо в одной сцене иметь несколько directed light'ов.. ну мало смысла тут.

Guest :
Vector( (1.0, 1.0, 1.0) + 5 х (1.0, 0.0, 0.0) ).Normalize();
Тогда ты и цветовой взнос сохранишь (6 частей красного, по одной части синего и зелёного = очень красная (и относительно белого тёмная) лампа цвета (1, 0.16, 0.16)), и в потолок упрёшься.
Но выглядеть, особенно на экстремальных случаях, будет ну очень странно.


Ты пытаешься придумать заново tone mapping с его exposure. Типа когда глаз смотрит в темноте - он привыкает постепенно - из (0, 0, 0) появляются какие-то значения типа (0.01, 0.002, 0.03) -- которые ты уже можешь разобрать.
То же самое с засветами и яркими комнатами.
Еще добавляют скорость адаптации (имитация глаза) и вот тоже вот так меняют цвет.
Разве нет?

добавлено спустя 1 минуту:
Guest :
Весь нельзя, это тупо Tone Mapping из HDR в LDR

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

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

  » Алгоритмические вопросы. | страница 2
Каналы: Новости | 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