Pixonic corporate blog
Working with 3D-graphics
Game development
Graphic design
Reading room
Comments 45
+9
надо потестить ) выглядит прикольно, но думаю на практике 11 текстур с прозрачностями не такое уж и простое решение.
+1
Да и для десктопа с повсеместностью отложенного освещения решение так себе.
+4
Хорошо, что их не 11 на самом деле, а только три. Не 44 мегабайта, а 12.
0
Да и сжать можно, никто шумы на ковре рассматривать не будет. Так что еще меньше будет
+6

image
Этот ковер выглядит довольно плоским, а не состоящим из длинного ворса. Может быть, достаточно карты нормалей?

+2
<зануда>
Я так понял, что это 11 слоев. Каждый прямоугольник = 2 треугольника (полигона). Итого — 22 полигона.
</зануда>
+1
В Блендере полигоны не только треугольные. Наверное поэтому 11 слоев = 11 четырехугольных полигонов.
+6
Возможно, но автор, все же, пишет про игру, а все графические API используют треугольники для отрисовки.

Но это я уже перебарщиваю с занудством, извините )
+1
Полигон — это полигон. Плоский многоугольник. Количество вершин не определено.
Треугольник — это треугольник. Правильно считать треугольниками. Но по количеству полигонов автор не соврал.
0
все графические API используют треугольники для отрисовки.
GL_QUAD: я для вас что, шутка?
+5
Там всё равно на выходе тругольники. Просто прозрачно для пользователя.
Там неслабый такой оверхед при использовании квадов, потому что большинство(все?) драйверов тупо переделывают сами буффер в буффер трианглов.
-2
Я знаю, что видеокарта рисует все равно треугольниками, но в API подаются квады, и речь шла про API.
+4
Нет. GL_QUADS depricated начиная с 3. Так что актуальных API с квадами нету.
-3
GL_QUAD всегда доступен за счет обратной совместимости как и всякие glBegin/glEnd (по крайней мере, под Desktop).
+4
Mac OS X — это десктоп? Там нет Legacy OpenGL.
Плюс если вы используете OpenGL 4, то тоже не можете получить доступ к этим методам.
Так что хоть Legacy OpenGL и существует, его нельзя отнести к актуальным API.
+4
Нет, не шутка. Я выше даже извинился за занудство, но не могу не ответить.

Дело в том что нативно квады не поддерживаются еще со времен Glide, и даже если вы видите GL_QUAD — API за вас соберет его из треугольников.
К тому же, это deprecated и не является актуальным уже довольно давно.

Т.к. я сейчас залезу в серую зону легальности (ибо нельзя распространять части SDK от Sony), потому кат:
Заголовок спойлера
Я заменил некоторые латинские литеры оными из кирилицы, чтобы не вылезти в поиске

kРrimitivеTypеQuаdList — vеrticеs [N*4+0, N*4+1, N*4+2] аnd [N*4+0, N*4+2, N*4+3] rеndеr triаnglеs.


Снова прошу прощения за излишнее занудство, хотя в данном случае воспринимаю это больше как просветительную работу.
+19

Честно говоря, больше на поле пшеницы похоже, чем на ковёр)

+5
Да, ворс как будто бы требует уменьшения масштаба текстуры раза в 2 или 4.
+1
В нескольких играх видел поля, сделанные именно таким способом.
0

Добавить в шейдеры изменения цвета, и будет иллюзия ветра. Ну я себе это так теоретически представляю

+1
Есть такая старая програмка от AMD — RenderMonkey, для написания шейдеров…
Такой шейдер для меха с тем-же принципом работы там является стандартным примером, и обойтись вполне можно одним полигоном (ака двумя треугольниками) для ковра и одной черно-белой текстурой.


0
Кстати анимированный мех тоже есть как один из вариантов этого шейдера.
+2
Всегда было интересно, как в этом можно увидеть мех. Аналогичный вопрос к «ковру» из статьи.
Он состоит всего из одиннадцати полигонов и выглядит как натуральный ковер!

нет, не выглядит…
+6
Смотреть надо не в статике просто, а в динамике.
Когда ты в игре в помещении перестреливаешься с врагами то не разглядываешь ворсинки на ковре, как и убегая от медведя не разглядываешь его мех.

Но если тебе требуются очень качественные ковры или мех, то можно конечно их получить «как настоящие», но будет это не 60 раз в секунду, а один раз в пол часа — такие ФПС тебя тоже врятли устроят…
+6

Не нужно там 11 текстур (и 3 тоже не нужно), достаточно одной, которая будет, например, в альфа-канале хранить высоту ворсинки (вряд ли ворсинка будет менять свой цвет с высотой, а если и будет, то можно сделать изменение для всех ворсинок сразу).
При рисовании просто сравнивать "высоту" текущего полигона с высотой ворсинки и на основении этого решать, рисовать её или нет.
Это позволит менять детализацию ковра на лету. Если он далеко — рисуем 2-3 прямоугольника, если близко и видом сбоку — то все 20.

+2
[offtop]

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

Так вот было бы совсем замечательно, если бы вы ваших коллег, работающих над Роботами, к подходу, декларируемому вами в заключении тоже приучили. А то вроде бы и неплохая игра, но после обновлений этого года на всём, что старше двух лет тормозит по свински.

[/offtop]
0
Так был реализован фейковый дисплейс в октан ренедер, по крайней мере, до версии 4
+2
Впервые видел такое еще в Tony Hawk's Pro Skater 4, помню, как в свои 11 лет восхищался изяществом и простотой решения.Недавно использовал аналогичную технику для рендера губчатого материала. Просто, быстро и легко настраивается
0
Для травы и ковров — ОК. Потому что нельзя сбоку посмотреть.
Мех так делать нельзя, видно будет косяки на взгляде сбоку.
+1
Давным давно в самом первом Ил-2 похожим образом был реализован лес: отдельными слоями кроны деревьев, стволы и тень. Выглядело очень реалистично, пока на него не упадешь.
0
Вот тоже хотел про это написать. Выглядело оно реалистично, пока не начнёшь пролетать над горой, на которой эти самые деревья растут — видно сбоку эти слои.
+4
>>Он состоит всего из одиннадцати полигонов и выглядит как натуральный ковер!

Простите великодушно, но эти 11 полигонов совершенно не похожи на ЕГО ВОРСЕЙШЕСТВО.
+8
Другая техника, но по сути похожая.
туториал картинкой

+1
У вас нет случайно примера вашего ковра с рисунком. (как рисунки смотрятся)
-3
Этот ковер за 10 минут повторяется в любом редакторе.
Сделайте да посмотрите.
0
А ведь подобную технологию можно было б применять для решения давней проблемы многопользовательских шутеров — когда трава отрисовывается только в ближнем радиусе, а вдали — голый рельеф.

Ну, то есть, эта условность присутствует не только в многопользовательских и не только в шутерах — но в них это наиболее чувствительно для геймплея: залегание в траву становится не маскировкой, а «страусиным поступком». Но и в синглах как-то странно выглядит, когда всякую мелочь типа крыс вдали видно лучше, чем вблизи.

Так вот — решением было бы дублировать рельеф вторым слоем полигонов с текстурой, имитирующей тип растительности. С переменным отступом, отражающим среднюю высоту травы по зонам. Или даже несколько таких слоёв, как в этой статье. Правда, с малой детализацией — то есть практически с той же, с которой текстуры рельефа делают.

А в ближнем радиусе, где трава отрисовывается детально, делать вырез в этом слое. Разумеется, такой слой не должен иметь коллизий. То есть теперь залегание в траву для дальних наблюдателей будет выглядеть как «прятки в текстуру» — что и сейчас, в принципе, можно наблюдать из-за несоответствия слоя отрисовки и слоя коллизий. Только нынешние такие прятки скорее баг, чем фича и не дают адекватного перекрытия обзора для самого прячущегося.

Разумеется, у этого решения есть свои подводные камни, но это уже нюансы.
Only those users with full accounts are able to leave comments., please.