Комментарии 33
Два вопроса появились после просмотра видео демки. Замечал такие косяки и в других демках:
На 3:30 камера меняет движение резко. Разве сложно сделать движение с плавным ускорением?
Для уменьшения шума кадры смешиваются банально накладывась друг на друга, с образованием размытия в движении. Но, если известна разница позиций камеры и координаты каждого пикселя, то то можно посчитать смещённые позиции пикселей.
Вроде простые же вещи.
Демка, к сожалению, показывает только черный экран.
Какая видеокарта? Звук идёт? Не падает?
Уже один раз жаловались, что не работало на AMD карточке, но у меня нет возможности отладить на такой системе. Примечательно, что под линуксом на AMD всё работает (но там, конечно, совсем другой стек драйверов).
Про пропадающую музыку могу предположить, что процессору не хватает мощности синтезировать её на лету — 4klang довольно вычислительноёмкий и синтезирует музыку в отдельном треде (запускается емнип до того, как вообще инциализируется окно, чтобы хоть немного забуферизовать музыку). Проигрывается музыка просто «вот этот буфер в колонки пожалуйста спасибо» в надежде, что курсор проигрывания не будет догонять курсор записи.
Расчёт на то, что CPU и GPU достаточно мощные, чтобы прожевать.
Фундаментально ничего с этим поделать нельзя, кроме как разве что добавить sleep, или же синтезировать весь трек перед тем, как запустить видео. Но это даст тишину и черный экран в начале дольше, чем сама интра, что дискомфорт.
Про AMD черный экран — мне надо как-то найти время, чтобы наделать отладочных билдов и раздать желающим, чтобы собрать инфу о том, что могло пойти не так.
Как и говорил собеседник выше — Windows 10 && AMD 7850 2Gb, при запуске меняется разрешение экрана на 720p && 59Гц, экран чёрный, играет музыка. После закрытия окна, то музыка ещё звучала, убил процесс, залез в настройки и восстановил настройки дисплея. Говорите «что под линуксом на AMD всё работает», сейчас проверим.
Под линуксом надо из исходников собирать самостоятельно, при этом отключая музыку (4klang падает, и не удалось за разумное время выяснить, почему — поэтому и нет релиза под линукс).
Попробуйте отладочные бинарники отсюда, пожалуйста: http://yolp.omgwtf.ru/appear_debug.zip
Открыл баг на гитхабе по этому поводу: https://github.com/w23/jetlag_appear/issues/1
Пора уже, наверное, issue заводить на гитхабе для этого всего. Вряд ли починю для этой конкретной работы, но по крайней мере есть шанс, что в следующих проблем будет меньше.
В нижнем ряду 1600*1200 + 1920*1200.
А вообще сейчас делют демки без 4 гигабайтов API ну как под ДОС?
Под ДОС до сих пор делают, да. В основном крохотулечные, 256 байт и меньше.
Не заработало.
Попробуйте отладочные бинарники отсюда, пожалуйста: http://yolp.omgwtf.ru/appear_debug.zip
Открыл баг на гитхабе по этому поводу: https://github.com/w23/jetlag_appear/issues/1
1) удается более-менее точно вычислить цвета в Земной атмосфере, но стоит поменять планету — там уже действуют другие формулы, и недостаточно просто подкрутить плотность и высоту атмосферы, как может показаться на первый взгляд.
2) цвета все равно будут казаться не до конца натуральными как не увеличивай количество итераций. если использовать шлем виртуальной реальности, то в некоторые моменты (закат и рассвет) цвета уже на грани преемственности.
Ну и у меня получилось что-то такое:
Для других планет другие коэффициенты, которые кстати можно вывести через формулы для Релеевского рассеяния. У меня для Земли рассчитанные коэффициенты почти сошлись с константами Nishita&co. Зависит от плотности, температуры, концентрации молекул и коэффициента преломления насколько я помню. А не до конца натуральные цвета на этом рендере из-за того, что после рассчетов нужно цвета проинтегрировать по кривым чувствительности глаза(cie1931 color matching function), получается гораздо ближе к реальности. Но точный, розовый вместо оранжевого рассвет выходит только если добавить рассеяние второго порядка.
Другой состав атмосферы = другие коэффициенты, пыль = нужна другая фазовая функция для поглощения и рассеивания по Mie плюс видимо надо привлекать геометрическую оптику, так как я читал, что цвет пыли сильно влияет, тоесть реалтайм под большим вопросом. С cie — сильно помогает, и у Брунетона есть отличное приближение с предрассчетом, в шейдере остается домножить цвет на коэффициент. А в общем вычисления ресурсоемкие и в играх сейчас только предрассчет для заданных параметров, загнанный в текстуры конечно.
Я внутренний интеграл (T) за два года раздумий по вечерам таки придумал как решить аналитически, слегка видоизменив подынтегральное выражение так, чтоб погрешность в масштабах планеты/толщины атмосферы была очень маленькой. Правда возникла функция erf(), очень плохо себя ведущая с float, но и её удалось ужать до пары десятков инструкций, в зависимости от желаемой точности.
Интуиция подсказывает (возможно, ошибочно), что в оффлйне можно было бы построить N-мерные графики/таблицы конечных результатов, а потом искать функцию (например, в рядах Тейлора, но не обязательно), приближающую их с достаточной точностью. В итоге там наверняка будут десятки, если не сотни, параметров и ещё больше операций, но по крайней мере они будут регулярные.
Это, конечно, без облаков.
Единственное «НО» — это где-же в предрассветные часы столько людей уже на работу встают? Горящие окна реально режут глаз… А если это север, то где снег? :)
Рассеяние света в атмосфере в менее чем четырёх килобайтах