Войти
ПроектыФорумКонкурсы

Перезапуск конкурса "Retro software rendering". [-=Результаты=-]

Страницы: 1 2 355 56 Следующая »
#0
16:53, 29 июня 2016

Перезапуск конкурса "Retro software rendering".
Увы, правила первого пуска конкурса были раскритикованы за неточность, и все сошлись во мнении что требуется правила переписать. Что и сделано. Я постарался оставить минимум возможностей для неверного их истолкования. Однако, все равно помните: это не конкурс "найди лазейку в правилах", а конкурс рендера. Пишите рендер, и все получится.

Конкурсное задание:
1. Участник пишет софтварную растеризацию, текстурирование кубов.

Описание сцены.
- Количество кубов на сцене 1000.
- Кубы расположены 3D сеткой 10*10*10 с шагом 1.
- Сторона куба 0.5
- За центр сцены считаем позицию между 5-м и 6-м кубами по каждой из координат.
- Камера смотрит всегда на центр сцены.
- Разрешение рабочего окна фиксированное 1600х900.
- FovY и позиция камеры таковы, чтобы ближний к зрителю ряд кубов умещал на экране два куба по вертикали.
- При этом FovY требуется такой, чтобы дальний от зрителя ряд кубов весь занимал площадь 200х200 пикселов.
- На кубах текстура 16х16 пикселов, вариантов текстуры десять, ее номер случайно выбирается для куба при генерации сцены.
- См. прилагающееся изображение стартовой позиции рендера до начала вращения. Это образец для решения общих вопросов понимания условий. Изображение не содержит текстурирования, а лишь служит пониманию построения сцены.

Описание возможностей рендера.
- Подразумевается софтварная растеризация, это означает, что изображение строится в оперативной памяти без использования функций ускорения gpu, и только затем выводится в окно.
- Программа должна работать в окне 1600х900.
- Программа должна быть однопоточной.
- Требуется возможность поворота сцены по двум осям вокруг своего центра движениями мышки.
- Требуется возможность работы на windows 7 32-bit, под виртуальной машиной без 3д ускорения.
- Требуется выводить изображение в окно таким образом, чтобы оно работало при отключенном аппаратном ускорении. Это доступно, например, средствами winApi, такими как StretchDIBits и аналогичными. Это требование для уверенности, что участник показывает софварный трендер.
- Программа должна закрываться по нажатию клавиши esc.
- Программа должна считать и показывать текущий фпс на экране, либо в заголовке своего окна.

Описание тестирования и оценки.
- Я буду запускать работы конкурсантов на windows 7 32-bit под виртуальной машиной.
- Главная оценка это скорость рендеринга.
- Качество изображения, текстурирования и прочего служит поводом снять работу с конкурса, если качество будет признано заметно ниже работ остальных конкурсантов или правил задания.

Описание судейства и призов.
- Конкурс длится две недели. От 29.06 до 13.07. В ночь на 14-е по Москве прием работ завершается.
- Конкурс считается состоявшимся только в случае 3-х и более представленных работ, соответствующих заданию.
- Участники призываются выкладывать свои работы в тему сразу, чтобы другие участники могли оценить и обсудить.
- После завершения конкурса я составляю итоговый список работ, и награждаю лидеров по скорости рендеринга.
- За первое место 3000р, за второе 2000р, за третье 1000р.
- + дополнительные 7000р, если фпс работы участника превысит 100. Эта позиция только одна, и если на нее будут претендовать несколько человек, будет отдана лидеру.
- + дополнительные 2000р, если фпс работы участника превысит 50. Эта позиция также одна, и выдается лидеру по общему зачету, если он не взял предыдущий приз.
- Далее идет судейство самих участников. Оно проходит в три дня после окончания конкурса. Участники голосуют за работы открыто. Допускается голосовать только за одну работу, за свою голосовать не допускается. Предполагается, что голосуют за качество или необычность реализации.
- После голосования участников в ночь на 17-е по Москве определяем, кто взял приз коллег. Ему идет награда в 2000р. В случае нескольких работ с равным количеством голосов от коллег я выбираю призера из них.

-=Результаты!=-

Итак, это вообще невероятно круто, что люди еще не забыли, как кодить софтрендер. К финалу у нас 8 участников, считая меня самого вне конкурса.
По итоговым замерам места распределяются таким образом.


Первое место Вий. Невероятные 158 фпс и необычный подход с большим количеством предварительно рассчитанных данных.
Второе место Hardcode. У него 135 фпс, две позиции в таблице он взял за счет кэширования части данных при изменении камеры.
Третье место TarasB, 120 фпс. На мой взгляд, он наиболее достоин приза коллег за полноценный алгоритм без хаков. Не проседающий в динамичной игре и не требующий перерассчета при изменении геометрии.
Четвертое место FordPerfect. У него 117 фпс. Хороший результат для рендера с нуля.
Пятое место Truthfinder. 95 фпс.
Шестое место Vitorio, 75 фпс. Аккуратный рендер.
Седьмое место Mikle. У него 64 фпс. Видимо, старый рендер Майкла не до конца был готов к такой сцене.

Это результаты теста под виртуалкой, как и определено в правилах.
Поздравляю всех участников!

Призы по итогам уходят такие:
Вий +3000 +7000. Итого 10кр.
Hardcode +2000 +2000. Итого 4кр.
TarasB +1000р за третье место.
FordPerfect по итогам открытого голосования взял приз коллег, 2000р.
Поздравляю всех!

Архив конкурсных работ: https://drive.google.com/file/d/0B3BRCLyorkD2Y0J4V0ozOGFLLTA/view?usp=sharing

В итоге я думаю, конкурс оправдал себя.
Я сам получил огромный заряд позитива и желания писать свой рендер. За время конкурса мой рендер поднял фпс с 60-ти до 130, да и качество тоже. Без конкурса я не раскачался бы.

Хорошо бы проверить конкурсные версии на реальном железе. На процессорах амд? На Атоме?
Спасибо всем участникам!


#1
17:11, 29 июня 2016

А ты сам-то, кстати, можешь/будешь участвовать?

#2
17:27, 29 июня 2016

Конечный FPS для оценки берётся из виртуальной или реальной машины?

#3
17:42, 29 июня 2016

122
> - Программа должна быть однопоточной
Блиин. В первом варианте конкурса не было этого ограничения. И, можно сказать, что возможность реализовать многопоточный рендер меня как раз и привлекала. Но наверно все равно попробую поучаствовать :)

#4
17:53, 29 июня 2016

122
Дотошности:
>- Программа должна работать в окне 1600х900.
Допускается (требуется?) окно без рамки?

>- FovY и позиция камеры таковы, чтобы ближний к зрителю ряд кубов умещал на экране два куба по вертикали.
>- Требуется возможность поворота сцены по двум осям вокруг своего центра движениями мышки.
Из этого вроде бы следует необходимость клиппинга. Есть какие-то требования к нему? Дырка в кубе (как в OpenGL), заклеивать дырку цветом/текстурой, не рисовать куб вообще?

Кстати:
1. А зачем запрещена многопоточка?
2. Почему 16x16?
3. Почему окно а не fullscreen, всё равно же тестируешь на одной и той же машине?

#5
17:54, 29 июня 2016

122
> - Разрешение рабочего окна фиксированное 1600х900.
Это внешний размер окна, или клиентской области?

#6
18:20, 29 июня 2016

Я же говорил,что конкурс закончится ничем. Народ, не видитесь на троллинг второй раз. Он если и даст,то модератору,чтоб дальше безнаказанно тролить.

И вообще,21век и мы правда должны писать однопоточный программы ?!

#7
18:27, 29 июня 2016

FordPerfect
> А зачем запрещена многопоточка?
Виртуалка просто одно ядро кушает только, так что на тестах я не увидел плюса от многопоточки.
Для простоты только один и разрешен. Чтобы голову не ломать и не спорить.

> Почему 16x16?
Опыт прошлой темы. Раз копают и ищут лазейки, я решил для верности все гвоздями прибить. Все правила определить жестко, чтобы никто не начал троллинга снова. :)

> Допускается (требуется?) окно без рамки?
Допускается. В этом случае нужно будет фпс выводить не на заголовок.

> не рисовать куб вообще?
Раз не запрещено, то допускается. Разумеется, радиус отсева должен отвечать условиям, представленным на образце. То есть большие кубы таки придется рисовать, и надо думать про отсечение невидимых граней. Иначе будет огромный овердро.

Mikle
> Это внешний размер окна, или клиентской области?
Внешний, имеешь ввиду с рамками? Не, клиентский конечно.

Truthfinder
> Конечный FPS для оценки берётся из виртуальной или реальной машины?
Как и указано, с виртуалки. Винда 7 под i7 4770. Прогнал тесты, сама виртуалка кушает не так и много, процентов пять от обычной скорости.

shin yeo
> А ты сам-то, кстати, можешь/будешь участвовать?
Это было бы странно. Сам себе призы выдам? :) Вообще вне конкурса может быть, посмотрим.

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

#8
18:51, 29 июня 2016

Снова подписываюсь, чтобы последить.

И да, теперь сцена статическая? Еще и с простым массивом кубов? Можно же исхитриться и намутить фрактал. Надо было сделать еще условие,что рендер должен уметь отображать 50 рандомных кубов, чтобы не допустить фрактальной халтуры.

#9
18:56, 29 июня 2016

Роман Шувалов
> Можно же исхитриться и намутить фрактал.
Сделай, это будет очень интересно, и правилами не запрещено.
Роман Шувалов
> теперь сцена статическая?
А она и была статичной. Вращение сцены = вращению камеры.

#10
18:58, 29 июня 2016

Роман Шувалов
Вряд ли фрактал сможет реалистично поворачиваться и при этом сохранять рандомные номера текстур на кубах.

#11
19:11, 29 июня 2016

12233
Неправильно делаешь.
Конечным результатом должна быть DLL, которую загружает тестируемый софт и передает в нее размеры экрана, на каждый кадр передаешь камеру и позицию кубиков и забирает изображение после чего сравнивает с эталонным.

+ Показать

#12
19:31, 29 июня 2016

susageP
> Конечным результатом должна быть DLL
Тогда уж ставить задачу реализовать софтварный OpenGL.

#13
19:45, 29 июня 2016

Можете набросок потестить:
swc1
условию
>- При этом FovY требуется такой, чтобы дальний от зрителя ряд кубов весь занимал площадь 200х200 пикселов.
он сейчас не удовлетворяет.

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

Это почти то же самое, слабо оптимизировано.

#14
19:47, 29 июня 2016

Гм.
>- Конкурс считается состоявшимся только в случае 3-х и более представленных работ, соответствующих заданию.
>- Участники призываются выкладывать свои работы в тему сразу, чтобы другие участники могли оценить и обсудить.

По факту, первый, достигший 100 FPS резко снижает (вроде же?) желание участвовать остальным, и если вдруг 3-х человек к тому моменту не успевает набраться...

Страницы: 1 2 355 56 Следующая »
ПроектыФорумКонкурсы

Тема в архиве.

Тема закрыта.