Pull to refresh

Comments 33

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

Два вопроса появились после просмотра видео демки. Замечал такие косяки и в других демках:
На 3:30 камера меняет движение резко. Разве сложно сделать движение с плавным ускорением?
Для уменьшения шума кадры смешиваются банально накладывась друг на друга, с образованием размытия в движении. Но, если известна разница позиций камеры и координаты каждого пикселя, то то можно посчитать смещённые позиции пикселей.
Вроде простые же вещи.

Демка, к сожалению, показывает только черный экран.

Это прискорбно.
Какая видеокарта? Звук идёт? Не падает?

Уже один раз жаловались, что не работало на AMD карточке, но у меня нет возможности отладить на такой системе. Примечательно, что под линуксом на AMD всё работает (но там, конечно, совсем другой стек драйверов).
У меня на AMD тоже не работает — переключается разрешение экрана, проигрывается кусок звука/шума и дальше все пропадает, как будто произошел «тихий» креш приложения.
Тихих крешей этого прекрасного приложения не наблюдал ни разу, только довольно громкие — если упало, то упало со всей сопутствующей атрибутикой.
Про пропадающую музыку могу предположить, что процессору не хватает мощности синтезировать её на лету — 4klang довольно вычислительноёмкий и синтезирует музыку в отдельном треде (запускается емнип до того, как вообще инциализируется окно, чтобы хоть немного забуферизовать музыку). Проигрывается музыка просто «вот этот буфер в колонки пожалуйста спасибо» в надежде, что курсор проигрывания не будет догонять курсор записи.
Расчёт на то, что CPU и GPU достаточно мощные, чтобы прожевать.
Фундаментально ничего с этим поделать нельзя, кроме как разве что добавить sleep, или же синтезировать весь трек перед тем, как запустить видео. Но это даст тишину и черный экран в начале дольше, чем сама интра, что дискомфорт.

Про AMD черный экран — мне надо как-то найти время, чтобы наделать отладочных билдов и раздать желающим, чтобы собрать инфу о том, что могло пойти не так.

Как и говорил собеседник выше — Windows 10 && AMD 7850 2Gb, при запуске меняется разрешение экрана на 720p && 59Гц, экран чёрный, играет музыка. После закрытия окна, то музыка ещё звучала, убил процесс, залез в настройки и восстановил настройки дисплея. Говорите «что под линуксом на AMD всё работает», сейчас проверим.

Спасибо за информацию. Это не объясняет чёрный экран, но боюсь, что 7850 слишком слабая карточка — едва ли фпс будет выше 10 даже на самых лёгких сценах.

Под линуксом надо из исходников собирать самостоятельно, при этом отключая музыку (4klang падает, и не удалось за разумное время выяснить, почему — поэтому и нет релиза под линукс).
Не работает на 1060 с мультимониторной конфигурацией. Моргает 2-мя дисплеями и вываливается обратно в w7x64
Интересное наблюдение, спасибо! Замечу, что я не замечал проблем с двумя мониторами. Скорее всего здесь другая проблема — падает 4кланг, это более похоже на описываемые симптомы.

Пора уже, наверное, issue заводить на гитхабе для этого всего. Вряд ли починю для этой конкретной работы, но по крайней мере есть шанс, что в следующих проблем будет меньше.
Тут может быть зацепка у меня основной монитор правый.
В нижнем ряду 1600*1200 + 1920*1200.
А вообще сейчас делют демки без 4 гигабайтов API ну как под ДОС?
Не думаю, что расположение мониторов как-либо влияет. По-хорошему, основной монитор должен перейти в 1280x720 и развернуть окно на весь экран. Апи-вызов для этого используется очень простой и старый, который про мониторы вообще не знает.

Под ДОС до сих пор делают, да. В основном крохотулечные, 256 байт и меньше.
Аналогично 2 монитора, оба фуллХД карточка 1060 6gb проц i7, windows 7
Не заработало.
Да все 3 запустились в оконном режиме на основном мониторе
Обновил архив, попробуйте четвёртый файл, без nofs.
Запустился на основном мониторе в фуллскрине.
Хммм. Добавил ещё один файл, appear_asm_safer.exe. Попробуйте, пожалуйста.
Вот это неожиданно, спасибо. Буду разбираться дальше.
Замечания корректные. Однако, к сожалению, все эти простые вещи упираются в небесконечный размер и небесконечное время разработки. Для того, чтобы уложиться в 4кб, туда было закопано часов, наверное, 10 на то, чтобы вырезать нетривиальный объём существующей функциональности, и упростить многое в ущерб качеству.

Ясно, однако это оставляет ощущение несовершенства, увы.

Я сталкивался с реализацией цветов неба через через эти модели. Хочется заметить, что у такого подхода есть несколько недостатков:
1) удается более-менее точно вычислить цвета в Земной атмосфере, но стоит поменять планету — там уже действуют другие формулы, и недостаточно просто подкрутить плотность и высоту атмосферы, как может показаться на первый взгляд.
2) цвета все равно будут казаться не до конца натуральными как не увеличивай количество итераций. если использовать шлем виртуальной реальности, то в некоторые моменты (закат и рассвет) цвета уже на грани преемственности.

Ну и у меня получилось что-то такое:
Скрытый текст
image

Для других планет другие коэффициенты, которые кстати можно вывести через формулы для Релеевского рассеяния. У меня для Земли рассчитанные коэффициенты почти сошлись с константами Nishita&co. Зависит от плотности, температуры, концентрации молекул и коэффициента преломления насколько я помню. А не до конца натуральные цвета на этом рендере из-за того, что после рассчетов нужно цвета проинтегрировать по кривым чувствительности глаза(cie1931 color matching function), получается гораздо ближе к реальности. Но точный, розовый вместо оранжевого рассвет выходит только если добавить рассеяние второго порядка.

Я пробовал добиться натуральных цветов неба Марса, вынеся все коэффициенты в реалтайм и пытаясь их выкручивать в разумных пределах до получения нужной картинки — это оказалось просто невозможно. Реалистичным может быть дневное небо, но закаты и рассветы будут корявые, либо наоборот. Начал читать — там оказалось все дело в большом количестве пыли в атмосфере и в другом составе газа. Про цвета была мысль, что нужен cie, но все равно интуитивно кажется, что это не поможет, и тогда меня, к тому же, не устраивала идея тратить столько времени на реализацию неба, с учетом того что сам подход еще берет значительную часть шейдерного времени, которое было на вес золота, в то время как стандартная дешевая небесная заглушка движка по яркости красок просто убивала мое «честное натуральное» небо.

Другой состав атмосферы = другие коэффициенты, пыль = нужна другая фазовая функция для поглощения и рассеивания по Mie плюс видимо надо привлекать геометрическую оптику, так как я читал, что цвет пыли сильно влияет, тоесть реалтайм под большим вопросом. С cie — сильно помогает, и у Брунетона есть отличное приближение с предрассчетом, в шейдере остается домножить цвет на коэффициент. А в общем вычисления ресурсоемкие и в играх сейчас только предрассчет для заданных параметров, загнанный в текстуры конечно.

Я внутренний интеграл (T) за два года раздумий по вечерам таки придумал как решить аналитически, слегка видоизменив подынтегральное выражение так, чтоб погрешность в масштабах планеты/толщины атмосферы была очень маленькой. Правда возникла функция erf(), очень плохо себя ведущая с float, но и её удалось ужать до пары десятков инструкций, в зависимости от желаемой точности.

Даже не знаю, что такое erf :D.
Интуиция подсказывает (возможно, ошибочно), что в оффлйне можно было бы построить N-мерные графики/таблицы конечных результатов, а потом искать функцию (например, в рядах Тейлора, но не обязательно), приближающую их с достаточной точностью. В итоге там наверняка будут десятки, если не сотни, параметров и ещё больше операций, но по крайней мере они будут регулярные.
Это, конечно, без облаков.
«Я не умею в компьютерную графику.» — месье скромничает, однако. Весьма достойно.
Единственное «НО» — это где-же в предрассветные часы столько людей уже на работу встают? Горящие окна реально режут глаз… А если это север, то где снег? :)
Sign up to leave a comment.

Articles