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

[отменено]

Страницы: 1 2 310 11 Следующая »
#0
16:43, 27 июня 2016

// Вступление
Неделю-другую назад я вспомнил, как интересовал меня софтварный рендер. Оговорюсь, что имеется ввиду текстурирование полигонов в реальном времени, по тому образу, как это было в играх начала девяностых: Катакомбах, Вольфе, Думе, Квейке и аналогичных.

В те времена мне было лет 15-18 и всё это ужасно вдохновляло. Секреты движков, как текстурировать быстро. Я думал над этим, я пытался писать свое. Вот здесь я приводил анимированные гифки того, что делал тогда: http://www.gamedev.ru/flame/forum/?id=196723

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


// Конкурс
Итак, конкурс. Сможете ли вы сегодня написать софтварный рендер?

Цель простая, текстурирование кубов.
Тестовое задание.
(а) Тысяча кубов, расположенных в 3д пространстве случайно.
(б) На них текстуры небольшого разрешения.
(в) Размер экрана 1680х1050.
(г) Сцена динамическая, например кубы вращаются вокруг общего центра.
(д) Для понимания, какие кубы имеются ввиду, образец известен: игра Майнкрафт. Не требуется жестко придерживаться его, просто для понимания условий.
(е) Текстурирование подразумевается софтварное, на cpu. Не на gpu.
(ё) Сроки. Три недели от сего момента, до 11 июля. При наступлении событий призов (1) или (2) конкурс завершается досрочно.
(ж) (Пункт добавлен 28.06.2016) Как поступать в случае спорных результатов? Должен помочь здравый смысл и трезвая оценка.

Призы раздаю лично я:
(1) 10000 рублей, если фпс на моем компе (i7 4770) достигнет 200.
(2) 5000 рублей, если фпс на моем компе (i7 4770) достигнет 150.
(3) 4000 рублей для случая когда никто не сможет достичь требуемого, но тем не менее будет лидером по фпс среди остальных участников.
(4) Для случаев, когда у меня не получится однозначно выявить победителя среди остальных участников, предусмотрены по 3000 для первых двух либо по 2000 для первых трех.
(5) В первых двух категориях победитель только один: первый, кто представит подобное.
(6) Случаи призов (3) и (4) наступают при условии достаточного количества участников, а именно 3-х и более. Нет смысла награждать за первенство среди участников, если участник один.
(7) (Пункт добавлен 28.06.2016) Для победы по абсолютной категории (1) или (2) требуется достаточно точное соответствие заданию конкурса. А для победы среди участников, категории (3) и (4) критерии точности реализации мягче, и зависят от уровня других конкурсных работ.

Да, учтите, что все держится на доверии. Не нужно пытаться обмануть правила. Например, сдвинув все кубы вплотную можно получить один объект, который разумеется текстурировать проще. Или отодвинув кубы от экрана далеко, сделав их крохотными. Это примеры попыток обмануть правила, меня и других участников. Разумеется, за такое призов не будет. Еще раз, все держится на здравом смысле и доверии.

Поехали!


+++
Темы для вдохновения.

Почему надо писать движки: http://www.gamedev.ru/flame/forum/?id=215463
Разбор рендера Второго Квейка: http://fabiensanglard.net/quake2/quake2_software_renderer.php
Пишем рендер на ютубе. Очень крутое видео: https://www.youtube.com/watch?v=HQYsFshbkYw


+++
Прочие вопросы-ответы.
Тени - не требуются, на усмотрение участника.
Открытые исходники - не требуются, на усмотрение участника.
Многопоточность - разрешена, на усмотрение участника.
Фильтрация или дизеринг - не требуются, на усмотрение участника.

Вопрос о соответствии: А если результат рендера не совсем подходит под задание?
Ответ: Что работы участников будут по-разному соответствовать конкурсному заданию - неизбежно. Разные подходы к рендеру, например как рейкаст и портальный, дадут на выходе разную степень соответствия заданию. Это ожидалось сразу, иначе и быть не могло.

Я постарался это учесть. Например, пункт (4), где я описал случай, когда невозможно будет выявить одного лидера. Приз в этом случае будет равный для нескольких участников. Также обозначил, что оценка результата будет основана на здравом смысле.
Иначе никак. Будем думать и смотреть на результат конкурсантов.

Вопрос: софтрендер или нет.
Все версии будут так или иначе проверяться, софтрендер в коде или используется рендер на gpu. В основном предполагается, что все держится на доверии, однако если будут сомнения, я попрошу участника собрать версии программы для виртуальной машины или для старого железа, или даже показать исходник рендера. Однако в общем случае такого не планируется.

Вопрос о более точном понимании конкурсного задания.
Было предложено вот такое описание, и я рекомендую его, как вполне точное.
> Кубы расположены 3D сеткой 10*10*10 с шагом 1.
> Сторона куба=0.5
> Кубы сдвинуты от своей позиции на случайную величину от -0.25 до 0.25 по всем
> трём осям.
> От камеры до центра сцены расстояние 10.
> FovY камеры такой, чтобы при взгляде вдоль оси Z верхний и нижний кубы касались
> краёв экрана.
> Камеру можно свободно вращать вокруг сцены и вправо-влево, и вверх-вниз.


#1
17:02, 27 июня 2016

Пошла жара.

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

[del]А если 10 человек сделают рендер на 200+ фпс?[/del] Прочитал внимательнее.

#3
17:06, 27 июня 2016

shin yeo
> А если 10 человек сделают рендер на 200+ фпс?
Читай внимательнее, оговорено в пункте (5).

#4
17:13, 27 июня 2016

Прочитал внимательнее, но все равно написано не понятно и не по людски. Пункты все эти с условиями.

Если один участник будет и наберет меньше 150фпс?

Должно быть приблизительно так:

Условия
1) Конкурс считается состоявшимся, если представлено более 2 (или скольких?) работ.
2) Победитель определяется по количеству выдаваемых фпс

Призы
1) Победитель получает 4 000 р
2) Если фпс победителя превышает 150 — +1 000 р
3) Если фпс превышает 200 -- +5 000 р

и так далее

#5
17:15, 27 июня 2016

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

#6
17:19, 27 июня 2016

shin yeo
> но все равно написано не понятно и не по людски.
Возможно. Но уверен, тут путаницы не будет. Понятнее оформить всегда успеется, давай для начала дождемся реальных людей, желающих поучаствовать.

#7
17:20, 27 июня 2016

shin yeo
> Подразумевается, что они выходят в открытый доступ?
Нет, разумеется. С чего бы это? И исходников также не требуется предоставлять.

#8
17:20, 27 июня 2016

122
Есть более чёткие требования к качеству? Перспективная коррекция? Fill rules?
Голая текстура или затенение (GL_REPLACE vs GL_MODULATE).

Чтобы сравнивать сравнительно одинаковые вещи, или хотя-бы задать нижнюю планку качества.

Мультитред - читерство или разрешён или обязателен?

Принудительный open-source или нет?

Текстурирование без билинейки дизеринга (GL_NEAREST vs GL_LINEAR vs Poor man's bilinear)?

#9
17:27, 27 июня 2016

FordPerfect
> Есть более чёткие требования к качеству?
Как образец я указал Майнкрафт, в пункте (д). Я не хочу слишком ограничивать людей и поэтому сознательно избегаю жестких критериев.

По твоим вопросам.
Тени - не требуются, на усмотрение участника.
Открытые исходники - не требуются, на усмотрение участника.
Многопоточность - разрешена, на усмотрение участника.
Фильтрация или дизеринг - не требуются, на усмотрение участника.

Вопросы внесу в стартовый пост.

#10
18:32, 27 июня 2016

122
>Майнкрафт
Т. е. если все кубы - осепараллельные, это ок?

#11
18:52, 27 июня 2016

FordPerfect
> Т. е. если все кубы - осепараллельные, это ок?
Видимо да. Ты имеешь ввиду, что их собственный поворот одинаков для всех?

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

#12
19:26, 27 июня 2016

потести на своем железе
http://threejs.org/examples/software_sandbox.html

#13
19:52, 27 июня 2016

>Темы для вдохновения.
>Почему надо писать движки: http://.....

>>AntonioModer: Я тоже занимаюсь движкописательством.
>>Движек свой писать это нормально, для этого есть много библиотек.
>>Главное не замахиваться на глобальное.
>>Если нету такого движка, который не способен реализовать твои задумки, то и пишутся свои движки.
>>Вот если писать в одиночку заново OpenGL или DirectX, то [b]это заведомо жиза[/b].

Это... эм, к чему всё это?
У меня сразу создалось ощущение, что тема исключительно для последних слов... (сойти с ума, но получить 10000р - как то не сочетающиеся вещи...)
Для вдохновления, лучше посмотреть обзор лучших игр какой то конкретной темы, пусть это будут "шутеры".
Далее ссылки конечно очень и очень интересные.

Сам не учавствую и не собираюсь (тема пройдена... давно).
Вопрос по ФПС: как будете определять ФПС? смотря на экран приложения где выведены циферки? Без исходников, это лишь цифры, которые я и сам могу нарисовать за few строк.

Чем закончится в принципе интересно, но по стоку по скоку. Всех благ ;)

#14
20:42, 27 июня 2016

robotcity
> потести на своем железе
На сцене как заходишь 21 фпс, если приблизить до 1-3 падает.

Salamandr
> > Темы для вдохновения.
> > Почему надо писать движки
> Это... эм, к чему всё это?
Шуточная ссылка. Ты чего такой серьезный? :)

> Вопрос по ФПС: как будете определять ФПС? смотря на экран приложения где
> выведены циферки? Без исходников, это лишь цифры, которые я и сам могу
> нарисовать за few строк.
Есть варианты. Запустить на древних компах, запустить под виртуалкой без видюхи. Люди прямо здесь смогут запускать. Думаю, если будет мухлеж он выявится так или иначе.

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

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

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