![](https://habrastorage.org/webt/t5/fj/qq/t5fjqqhwhzyufq3oajwoyz2vvh8.jpeg)
Если вы умеете создавать реалистичное окружение, вроде реки из предыдущего материала, это круто. Но когда вы ограничены во времени и ресурсах, то лучше заняться механиками и геймплеем. А на прототипе окружение можно сделать и проще.
Поэтому, да, ковер из всего 11 полигонов. Просто, но изящно. Под катом перевод небольшого гайда.
Я думал о коврах. В частности, о красивом махровом из игры Event[0]:
![](https://habrastorage.org/webt/i7/qf/vr/i7qfvrmdfp9tvu1memcl-bsytmi.png)
Этот ковер загипнотизировал меня. Он выглядел великолепно: очень пушистый и мягкий. Это тот уровень, с которым я сравниваю все ковры.
Прямо сейчас я работаю над Skin Deep и вдруг осознал: в моей игре есть ковры. Мне нужно делать ковры!
Результат
Так выглядит финальный вариант:
![](https://habrastorage.org/webt/bb/hl/er/bbhlerdobeft-wxijz4oalilweg.png)
А так ковер выглядит в редакторе моделей:
![](https://habrastorage.org/webt/a7/zm/47/a7zm47qdaznryr7mnftwdyuakqc.gif)
Он состоит всего из одиннадцати полигонов и выглядит как натуральный ковер! В общем, я доволен.
Как это работает
Я не знаю, как разработчики Event [0] делали свои ковры, но у меня была идея о возможном способе. Я вспомнил, что читал статью о технике создания меха в Shadow of Colossus. Всегда было любопытно попробовать это самостоятельно. И этот ковер стал отличным поводом.
Мой ковер состоит из нескольких слоев:
![](https://habrastorage.org/webt/ir/1y/zb/ir1yzb3yrkzfvz16sod1ckeeyae.png)
Каждый слой является плоской поверхностью. Текстура — это пучок точек, представляющих волокна ковра. Когда вы плотно складываете слои друг на друга, создается иллюзия пушистого ковра.
Вот анимации складывания слоев:
![](https://habrastorage.org/webt/no/rd/pq/nordpqozenvdja0iwr7lbo0_91w.gif)
![](https://habrastorage.org/webt/l0/nv/fy/l0nvfyxfwflkt-s_dcu2e9hmp8q.gif)
Части
Я использовал одиннадцать плоских поверхностей. Одиннадцать — рандомное число. Думаю, можно использовать и меньше — все равно будет выглядеть хорошо.
И три текстуры, каждая из которых 1024×1024.
Текстура для пяти нижних слоев:
![](https://habrastorage.org/webt/ug/_x/yk/ug_xykdx31exkp6odmayhge9v5g.png)
Для трех средних:
![](https://habrastorage.org/webt/s1/u1/7t/s1u17tzlzphbv6suyhzddsphjo4.png)
И для трех верхних слоев:
![](https://habrastorage.org/webt/nn/hg/f6/nnhgf6zagdi8h2icbccuiejrgom.png)
Важно отметить:
- Чем выше текстура, тем более пустой она становится. Это дает волокнам ковра некоторое изменение по высоте.
- Темные пятна накладываются на каждую текстуру. Это придает иллюзию потертых областей и спутанных волокон.
- Нижние текстуры темнее верхних. Этот эффект тоже создает иллюзию реального ковра.
Технику можно использовать для создания шерсти животных, травы, листвы — пробуйте.
![](https://habrastorage.org/webt/bb/hl/er/bbhlerdobeft-wxijz4oalilweg.png)
Заключение
В детстве отец сказал мне, чем больше движущихся частей у машины, тем выше вероятность, что с ней что-то пойдет не так. А вот молоток или отвертка почти никогда не сломаются. По своей сути, видеоигры — это та же машина с массой подвижных частей.
Мне нравится решение с ковром, потому что оно простое. Оно, как отвертка — не сломается и сработало бы даже в 1996 году. В этом есть что-то прекрасное.