Вверх ↑
Модели блоков2014-05-08 15:24:59
Введение
   Не так давно в статье Скелетная анимация рассказывалось о новом движке для мобов, который позволяет использовать модели и анимацию из программы CraftStudio. В этой же статье речь пойдет об этом же самом движке, но уже адаптированном для отрисовки и анимации некоторых блоков.

Рендер мира в Minecraft
   На картинке ниже представлена архитектура стандартного цикла отрисовки мира в Minecraft:



   Небольшое пояснение к схеме. Как известно весь мир Minecraft физически состоит из чанков 16х16х128 блоков. Однако в движке рендеринга он разбивается еще на 8 частей по вертикали, т.е. на регионы с размерами сторон 16х16х16 блоков. Далее, на первом этапе (который выполняется только тогда, когда в регионе изменились какие-то блоки) происходит отбор блоков имеющих собственные модели, которые помещаются в список ModelList. Все остальные блоки конвертируются и заносятся в память GPU в виде одной единственной функции, последующие вызов и выполнение которой происходит очень и очень быстро.
   Собственно отрисовка (скорость которой и измеряется в FPS) происходит на втором этапе. Каждый из регионов 16х16х16, полученных на этапе подготовки, проверяется на видимость на экране (т.е. находится в поле зрения игрока) и если он виден, то для него вызывается ранее созданная функция GPU. Затем уже происходит перебор всех блоков из ModelList и если они расположены не слишком далеко от игрока, то они так же отрисовываются на экране со своими моделями.

   И того, если мы хотим использовать вместо стандартных моделей наш движок, то достаточно заменить блок, в котором рендерится модель (на схеме он называется "Стандартная отрисовка OpenGL") и задача будет выполнена. Однако мы пошли чуть дальше и задались вопросом: а что если попробовать отрисовку моделей на нашем движке сделать двух типов - одну с использованием стандартных функций OpenGL (то, что в нем уже было и что используется для отрисовки мобов), а вторую с использованием формата, в котором рисуются все остальные блоки и который понимает "Конвертер в формат GPU" (см. схему)? Тут же встает и еще одна проблема: после попадания в GPU внешний вид блока менять уже нельзя и никаких открывающихся крышек или выдвигающихся ящиков там быть не может.

Решение проблемы
   Поскольку все модели в нашем движке представлены отдельными объектами, структура которых у всех одинакова, и различаются они лишь количеством прямоугольников в них, то сделать два режима отрисовки не составило никаких проблем. А вот вторая проблема немного сложнее. Но и ее удалось решить. Чтобы блок не утратил способность к анимации было решено в статическом состоянии рисовать его средствами GPU (т.е. так, как будто он обычный блок без своей собственной модели), а в состоянии анимации (открытие крышки, выдвижение ящика) средствами OpenGL (т.е. также, как и раньше). Кроме того - дополнительным бонусом мы получили корректное освещение блоков на новом движке.

   Попробуем же теперь отрисовать примерно ~3800 ящиков обоими движками и сравним результаты:



   Можно заметить, что FPS с использованием старого(слева) рендера и нового(справа) для отрисовки ящиков отличается в 3 раза. Ящики не светятся как лампочки и не исчезают при удалении игрока от них. В среднестатистических хранилищах с парой сотней ящиков падения FPS практически не будет заметно вовсе.

   В заключении несколько скринов из студии с готовыми моделями и анимациями блоков:


Подписывайся на наши соц сети
Чтобы быть в курсе всех новостей проекта и принимать активное участие во всех его событиях подписывайся на наши соц сети:

     
Расскажи друзьям
Если тебе понравилось это обновление, то обязательно рассказывай о нём друзьям

Комментарии (105)
Begpo2014-05-08 18:31:55
1 еу
Alexandr440932014-05-09 06:02:49
2й. Перестройте тогда и лбп он уж совсем старый... На нано могу конешно зайти поглазесь написать оу круто но на етом екскурсия закончится пойду на лбп и забуду. Лучшеб делать обновки для всех сервов =3
den5228112014-05-09 07:06:23
Я сколько раз petrocan'у предлагал перестроить спавн, он не хочет не чего менять, я хочу получить мерку спавна Лбп, и запилить хороший спавн.
Dr_WeB2014-05-09 14:50:10
И будет тоже самое что с новайсом.Пусть так и будет как было.
den5228112014-05-10 16:58:01
Dr_WeB, ты уверен в этом на 100%? Я отстроил рынок Лбп. Значит и спавн под стиль рынка запилить хочу.
MisterBooM2014-05-17 19:45:36
Я за den522811 Пусть дадут мерку
illuminati2014-05-08 18:32:03
Second.
Я так понимаю, что сейфы будут тоже с анимацией?! И этот движек вообще только на зевсе?
Assasin2014-05-08 18:48:21
Да, сейфы будут с анимацией.
_WATING_2014-05-09 19:17:49
Прикольно
Laboratory2014-05-09 19:18:19
Позже на всех серверах, пока на Зевсе, да.
Genesis2014-05-08 18:32:58
:0 Нано впечатлил ))
maus236452014-05-08 18:33:01
круто, молодцы.
bodya222014-05-08 18:33:12
Отлично, старая видеокарта снова в деле
_SaNtA_2014-05-08 18:33:25
Норм
GrehHD2014-05-08 18:33:27
ничего не понял
Maniyak2014-05-12 19:08:22
Суть в том, что после обновления в местах большого скопления шкафов и тому подобного игра больше не будет тормозить.
Mr_Demon2014-05-08 18:33:31
Норм
anton98_182014-05-08 18:33:38
Круто
whirr2014-05-08 18:34:00
успел , написать среди первецов. Щас почитаем чо тут как.
Mr_Demon2014-05-08 18:34:28
Скоро роботы ураааааааааааааа!
Mr_Demon2014-05-08 18:35:33
Когда интересно будет обнова на роботов?
Curt_cobain2014-05-08 18:36:18
Есть.
Francisc2014-05-08 18:39:41
Красивый спавн будет).
1999252014-05-08 18:40:08
Отлично
Flanagun2014-05-08 18:40:09
Зашибись.
Это следующее обновление?
LolZ5442014-05-08 18:41:06
Меха? Отлично, теперь раскатывание игроков примет истинную форму
А так же, я очень надеюсь...
cannabis5122014-05-08 18:41:45
Разведка сообщает...
7200OneLove2014-05-08 19:17:48
Это будущий спавн Nano
Steone2014-05-08 18:42:01
Разведка сообщает

Как и думал, "ниочинь"...
_HaNNiBaL_2014-05-08 18:42:19
Прикольно!)
Serega142014-05-08 18:42:42
я воше не чё не понел что ето?
PARLAMENTER2014-05-08 18:44:58
Да ну прикольно будет :3, 3D няшность
EH0T2014-05-08 18:45:30
после "разведка сообщает" мне страшно))
Falcon2014-05-08 18:46:19
Интересно, как с новым движком будут отрисовываться блоки - производные структур ( Частица БАКа, вызывающая лаги если их много. Уран, синтезирующийся на урановых фабриках)
Assasin2014-05-08 18:49:17
Частица бака - это не блок, это энтити.
TROL122014-05-08 18:47:18
Класно,это типо обнова на 9 мая?
Shadow2014-05-08 18:49:53
Раздел "Разработка". Если вы в этом совершенно ничего не понимаете, можете просто пройти мимо, воздержавшись от комментариев вроде "ничего не понял".
nabok982014-05-08 18:53:29
Крутяк).
player$2935672014-05-08 18:55:14
Чё за роботы?
DragonRaitus2014-05-08 19:04:52
скорее всего скоро будет первая миссия!
Mr_Demon2014-05-08 18:56:45
На следующую обнову 2 планету откроют админ говорил.
wthout_brain2014-05-08 18:58:28
Как раз хотел предложить убирание неудобных моделек сундуков/шкафов с помощью соответствующей настройки(у больших хранилищ жутко тормозит), и тут такая новость.
keon-dh2014-05-08 19:02:05
мне больше интересно , что там за робот , быть может новая текстура андройда или что-то новенькое ?
Riper2014-05-08 19:18:26
больше походит на гварда
sanchezzz38rus2014-05-08 19:04:08
Для тех кому интересно:
3 последних скриншота - это спавн сервера Нано.
Вот с карты: [ 7,-1 ].

Достоверность информации 10 из 10.
legionnaire2014-05-08 19:05:22
Прикольно
Barak2014-05-08 19:06:53
Не плохо)
ARM26rus2014-05-08 19:07:35
Все круто. Но уже перебор идет с этими новымы робортами(или что это)
Reckl2014-05-08 19:12:58
Хороший спавн на нано будет
-MarodeR-2014-05-08 19:13:21
Заинтересовал новый спавн. В особенности - хренолетик из колды.
pTawka2014-05-08 19:15:51
admin, Вы обещали открытие аналогичного сервера Zeus, только мирный так вот сколько ждать, больше месяца?
admin2014-05-08 19:30:10
Для сервера все готово за исключением некоторых незначительных штрихов. Все новые планеты мы делаем в чем-то уникальными, поэтому лучше повременить с запуском, но зато придать свою особую атмосферу.
illuminati2014-05-08 20:25:26
У вас там своя атмосфера?
HyperStone2014-05-08 19:17:07
круть
Pipo2014-05-08 19:20:17
Довольно интересно.
Awasua2014-05-08 19:20:29
Разведка ваша меня заинтересовала!
Amtrax2014-05-08 19:41:24
Меня тоже заинтерисовала!
Nor02014-05-08 19:37:02
С какой скоростью работает администрация?
InV852014-05-08 20:01:29
Со скоростью света!
Nor02014-05-08 20:19:45
Согласен, только была обнова и тут новая та еще загружается)
naemnik_992014-05-08 20:01:06
Крутякккк))
wthout_brain2014-05-08 20:11:50
А есть ли шанс, что за счет новых разработок будете доработаны и, наконец, введены в игру наноблоки?
illuminati2014-05-08 20:26:01
Больше всего жду эту фикчу
admin2014-05-08 20:29:06
Один наноблок это 512 обычных блоков, соответственно для нормальной производительности весь цикл, который показан на картинке выше, должен быть ускорен в 500 раз. Поэтому сегодня можно вести речь только и блоках со стороной в 2, максимум 4 куба.
illuminati2014-05-08 20:30:57
=(
wthout_brain2014-05-08 20:36:39
Так может их стоит урезать до разрешения 4х4? Все равно возможностей для творчества и детализации откроется просто огромное количество.
player$1005882014-05-08 21:26:27
Согласен. 16*16 не нужны особо, не с чем играться. А так будет все же лучше, чем никак.
admin2014-05-09 02:33:32
надо пробовать, тестировать, смотреть производительность
asdf2014-05-09 12:46:58
хм, а как же то старое видео, в котором тестировалась производительность замка в сравнении с этим же замком, но в наноблоках? (за основу был взят хогвартс вроде бы)

или в том видео был какой-то секрет?
(по видео создавалось ощущение мол:вот обычный мир, вот наноблоки, сильных проседаний фпс нет, радуйтесь!ждите!надейтесь!)
admin2014-05-09 12:51:47
Так, а кто сказал, что производительность это только лишь FPS?
Neuron2014-05-12 14:46:10
admin, а робот на второй картинке будующего спавна нано , это как декор будет или какая то реальная машина , что она будет делать ?? А может в нее можно сесть и управлять как в TITANFALL )))Вот было бы круто, типо такое кибер тело ))
zik52014-05-08 21:16:39
Это просто феерическое наслаждение смотреть как быстро и хорошо идет разработка наших серверов,а вот роботы интересно)
player$1327702014-05-08 22:13:45
Супер!
_AXE_2014-05-08 22:26:00
Почему будущий спавн нано похож на какую-либо точку респа в отстроенных городах?И то,бывает и лучше.
cannabis5122014-05-08 23:36:16
А мне кажется он просто идеально вписывается в название сервера, т.к он сделан для тестов разработок, вид спавна смахивает на некую Базу/лабораторию.
admin2014-05-09 02:33:41
именно так
AKNPA2014-05-09 02:49:07
Хорошо
43MOHETbI2014-05-09 06:42:21
А я то думал, что хоть на день победы будет что-то интересное!
_GaNiBaL_2014-05-09 09:11:07
Прикольно)
А когда новые серверы откроют?
-MaDaPa-2014-05-09 09:18:04
Админ,анимацию других предметов введут?
Или объем?!
Flanagun2014-05-09 09:36:59
Всё будет, терпения.
_CMW_2014-05-09 11:30:10
как же надоели с новыми сервами..=_= Вы ходябы рынки на все сервера добавте, в жопу нам новые сервера, нужно разобраться с серверами где вообще онлайн почти равен 0
_AXE_2014-05-09 11:56:21
_CMW_ писал(а):
как же надоели с новыми сервами..=_= Вы ходябы рынки на все сервера добавте, в жопу нам новые сервера, нужно разобраться с серверами где вообще онлайн почти равен 0


Дурочек?Это новый спавн нано(будущий).
sedyh2014-05-09 11:55:11
Напишите ли вы апи под наш сервер, для конвертирования любых моделей и последующего перенесения их в майнкрафт?
admin2014-05-09 12:50:48
Конвертирование из чего во что?
wthout_brain2014-05-09 19:36:40
Наверное, он имеет в виду превращение обычных 3D моделек(от 3DS MAX, например) в xml описание, пригодное сразу для добавления на наш сервер.
sedyh2014-08-30 21:59:19
Да.
dorell2014-05-09 14:16:45
супер
Suppersneak2014-05-09 14:23:01
Админ, а почему не оптимизировать прорисовку воздуха на карте? То есть сделать его не как блок, а как пространство. Как-бы это сложно ни было, это возможно даже без затрагивания движка, и это я знаю не по наслышке. Я делал это еще на beta 1.8.1, соответственно производительность повысится, а в пространстве станет больше возможностей. Например ставить рычаг, кнопку и факел на угол без каких либо проблем. Если конечно это осуществить. "-" нагрузки из-за воздуха. "+" производительности.
Vault2014-05-09 16:31:36
Разве воздух является блоком как таковым? Он же лишь условность.
Assasin2014-05-09 19:14:05
А вы о чем? Воздух вообще не вызывает никаких процедур рендеринга. Куда уж оптимальнее?
Suppersneak2014-05-10 13:32:54
Я я же сказал, что появится больше возможностей.
Dtho_472014-05-11 05:31:18
Воздух - пустая ячейка массива. Никакого рендера давно нету.
Я делал это еще на beta 1.8.1

Подробнее, ибо что-то я сомневаюсь об том, что вы вообще понимаете о реализации этой части игры, на что намекают ваши слова:
а в пространстве станет больше возможностей

Neuron2014-05-09 14:29:55
А что это за робот на второй картинке ?)
Если это будет следующей обновой ( появятся роботы) , то это будет какой-то TITANFALL ))) , особенно если в этих роботов можно будет садиться (инженеру))))
Vaderzz2014-05-09 16:56:44
Немного не по теме, но... В КМ курицы тоже исчезают, если их будет слишком много на 1 чанк?
hylflife22014-05-10 00:17:02
Мне все нравятся,админ давай эти блоки на все сервера
43MOHETbI2014-05-10 06:57:56
Торговку голд на Новайс введите, Или бендера на недельку туда завезите, а то люди бегут с него.
Разберитесь с основными серверами, а красоту оставьте на потом.
HETY_UHTEPHETA2014-05-11 02:36:15
Я с тобой согласен.А Novice наверное давно заброшенная админами планета.
cannabis5122014-05-12 00:45:21
Никто с него не бежит, бендер там не нужен, а вот торговка голд не помешала бы.
43MOHETbI2014-05-12 17:17:27
Кому не нужен а кому позарез. Сервер вроде как для новичков, ок. Но когда-то человек перестает быть новичком, хочется перейти на нормальный сервер, где есть биржи, никель, торговка голд и прочие вещи, присущие нормальным серверам. А никак этот переход и не выполнить, экспорт не работает. С нуля то начинать не хочется. Хоть раз в пол года бы давали возможность пересылки.
Domasasiska12014-05-11 12:43:31
Круто
-Noggano-Respect-2014-05-16 14:42:59
Как сделать safe
MAXXX2014-12-07 10:09:21
сУПЕР
Garys2015-02-17 20:06:39
нормас