Mikle
> Тут многие кубы соприкасаются гранями, то есть их ЗАРАНЕЕ можно отсеять,
> правильно?
В целом да. Однако, без фанатизма. В пункте (а) упомянуто явно, что расположение желательно случайное. И сделать из кубов один цельный объект было бы не совсем то.
122
> А у тебя ведь цикл горизантально идет? Вот эту радость "_backbuffer + ((MODE_H
> - y) * MODE_W)" нельзя заранее посчитать?
Можно, но скорости не даст. А конструкция равноценна
_backbuffer[((MODE_H - y) * MODE_W) + x] = _sky[skyX];
Была написана просто в качестве эксперимента. Быстрее не стало, впрочем как и медленнее. Смотрю, что еще можно предрасчитать и ничего не нахожу. Пока я вижу один вариант - SSE, но раскуривать лень.
На домашнем кстати выдает 45 кадров. Больше чем в два раза прирост.
122
> образец ведь дан. А именно рендер Майнкрафта, пункт (д).
А, вот теперь ок.
Из любопытства - какие результаты вот такая лабуда выдаёт:
swc1
?
Я в курсе, что сортировка фейковая и глючит.
Круто, у меня выдает 40 при FHD разрешении.
FordPerfect
60-80 fps
1920x1080 ноутбучный i7-5700HQ
Оживил!
И запилил многопоточный рендеринг!
qweasd + мыша
f1 - многопоточный рендеринг
в батнике можно задать разрешение и др опции
fps - первое число в столбце в консоли
[file=118174] (x64 only)
122
> Давай, почему нет? Это же просто кубы, а у тебя там было, как я помню,
> полноценное текстурирование сложных объектов.
У меня там и шейдеры есть и много чего, добавил на днях частные производные, надо мипы докрутить но что-то на это времени всё нет, по паре строк в неделю пишу )
FordPerfect
> Из любопытства - какие результаты вот такая лабуда выдаёт:
Думаю, это хорошая заявка на лидерство! Достаточно точно соблюдено конкурсное задание.
Фпс ходит где-то от 65 до 95, чаще бывая около 80-ти, это на i7 1680х1050. И это в один поток, так что еще сильно прибавишь.
Да, конечно для уменьшения затрат хочется сделать кубы небольшого размера. Это видно. Мне интересно: попробуй кубы х2 увеличить по каждой координате? Как тогда покажет рендер?
Ну и расскажи, как текстурируешь. Детали, особенности? :)
Hardcode
Оно быстрое, только вот жаль, что в сложную геометрию никак. Я так понял, что этот рендер только для портальных помещений, а отдельных объектов на нем не получится отрисовать? А может, с нуля запилишь текстурирование? Думаю, учитывая твой опыт, ты бы смог побороться тут.
L
> У меня там и шейдеры есть и много чего, добавил на днях частные производные,
> надо мипы докрутить но что-то на это времени всё нет.
Ну вот, давай присоединяйся! Отключаешь тяжелые фичи, генерируешь кубы, все.
Dampire
> Можно, но скорости не даст.
Ну, тут надо выхлоп асма смотреть. Я все-таки думаю, есть куда расти по скорости.
122
Попробую завтра демку с кубами запилить, если время будет.
Дум не потянул, если что.
И где Тарас пропадает, ядрить его в корень!
entryway
> Дум не потянул, если что.
Ох е, не ожидал его увидеть. :) Спасибо, что заглянул. Меня действительно интересовал этот вопрос применительно к алгоритмам известных софтрендеров того времени.
Видимо, на такое он совершенно не был рассчитан. Ты меня поправь, ты тут опытнее, но в оригинальных вадах были сильные ограничения по сложности геометрии. Такую вот картинку, мне кажется, на оригинальном и не запустить.
Hardcode
> И где Тарас пропадает, ядрить его в корень!
Вот кстати да. Правда, он что-то давно программ или игр не пишет.
122
> Такую вот картинку, мне кажется, на оригинальном и не запустить.
Не запустить. Валится даже мой бинарный патч, в котором лимиты серьезно расширены и практически любой современный уровень в формате ванили в них помещается, включая Deus Vult. Судя по ошибке (Z_CT at w_wad.c:510), оно не смогло даже загрузить уровень, так что до ограничений рендера дело не доходит. Помогает удалить чуть больше половины, чтобы запустить в патченом exe, а оригинал держит всего около 50 кубов.
Так, откопал свой старый рендер, SR3D
Тут перспективно-корректное текстурирование, свет, билинейная фильтрация текстуры.
Буду переделывать на 1000 кубов и выкидывать лишнее, пока просьба написать fps.
Тема в архиве.
Тема закрыта.