Главная » Статьи для тега "глубины"

Точность z-буфера и z-схватка – РАЗРАБОТКА ИГР ДЛЯ ОС ANDROID

Добавлено Дата: 15 August, 2013 категория: Программирование игр под Android

Всегда есть желание злоупотребить использованием ближней и дальней плоскостей отсечения так, чтобы они показывали как можно больше нашей замечательной сцены. Мы приложили большие усилия для того, чтобы создать множество объектов для игрового мира, и хотели бы, чтобы от них была польза. Единственная проблема заключается в том, что z-буфер имеет ограниченную точность. На большинстве устройств с ОС Android каждое значение глубины, хранящееся в z-буфере, может иметь размер не более 16 бит, в общей сложности получается 65 535 различных значений глубины. Поэтому вместо того, чтобы установить значения ближней и дальней плоскостей отсечения равными 0,00001 и 1 000 000 соответственно, выберите более обдуманные значения. В противном случае вы увидите артефакты, которые будет производить неверно сконфигурированная область видимости в комбинации с z-буфером.

Читать »

Z-БУФЕР: НАВОДИМ ПОРЯДОК – РАЗРАБОТКА ИГР ДЛЯ ОС ANDROID

Добавлено Дата: 2 July, 2013 категория: Программирование игр под Android

 

Что такое z-буфер? Когда OpenGL ES отрисовывает треугольник в кадровый буфер, он просто меняет цвет пикселов, составляющих этот треугольник. Z-буфер очень похож на кадровый буфер в том, что он также имеет хранилище для каждого пиксела на экране. Однако вместо того, чтобы хранить цвета, он хранит значения глубины. Значение глубины пиксела – это приблизительно нормализованное расстояние от соответствующей точки в 3D до ближней плоскости отсечения области видимости.

Читать »

Сокращения глубины поиска

Добавлено Дата: 2 January, 2011 категория: Игры, Теория

Зачем еще и сокращения, когда есть выборочные продления? Не одно ли это и то же? Выборочные сокращения позволяют довольно гармонично на­строить поиск, а продления все равно остаются, и все мирно уживаются друг с другом.

Основная идея сокращения глубины аналогична подрезанию статической оценкой, только вместо немедленного прекращения перебора мы сокраща­ем глубину поиска. Сокращения глубины происходят точно в тех же узлах, что и подрезка при статическом поиске.

Читать »

Выборочные продления Краткая характеристика расширений

Добавлено Дата: 8 December, 2010 категория: Игры, Теория

В полном широтном поиске, который мы рассматривали, глубина поиска задавалась при первом вызове рекурсивной функции и уменьшалась в каж­дом узле на 1. Таким образом, мы осуществляли полный перебор на неко­торую фиксированную глубину. Мы рассмотрели также устройство форси­рованного варианта, который вызывался при Depth = 0 и сглаживал эффект горизонта. Форсированный вариант просчитывал дальше наиболее сильные перемещения и давал приблизительную оценку позиции горизонта. Допус­тим, что при минимальном размере дерева перебора, т. е. при оптимальном порядке перемещений, для углубления счета на глубину N+1 нам необхо­димо рассмотреть в 20 раз больше позиций, чем при счете на глубину N. Это довольно приблизительно, но нам для рассуждений нужно отталкивать­ся от каких-то величин. Существует мнение, что увеличение глубины счета на один полуход повышает силу игры программы на разряд. Может, не сто­ит ломать голову над разными ухищрениями, а просто подождать, пока процессоры станут мощнее в 20 раз. Мы сможем считать на 9 полуходов, потом еще в 20 раз — мы сосчитаем на 10 полуходов. Бывают тактические последовательности, которые программа должна просчитывать значительно глубже. Например, если на доске существует форсированная угроза королю, то может потребоваться считать на 14 полуходов. Гроссмейстеры просчиты­вают некоторые варианты на 20 и более полуходов. Вряд ли мощность про­цессоров когда-либо возрастет до такого уровня, да и программы желатель­но писать сейчас, а не через 10 лет. Человек, когда просчитывает некоторые варианты, руководствуется множеством критериев, зависящих от его опыта. Он может просчитать ситуацию очень глубоко, проанализировав при этом минимальное количество позиций. Несмотря на то, что моделировать мыш­ление шахматиста мы не можем, существуют некоторые строки игры, про­счет которых можно продолжить по совершенно формальным признакам. Возникла простая идея — не сокращать глубину просмотра при некоторых ходах. Мы можем считать на 6 полуходов, но некоторые варианты будут рассмотрены значительно глубже. При каких же ходах не сокращается глу­бина счета? Если мы говорим о шахматах, то это, прежде всего, шах. При шахе игра как бы замирает и требует от противника немедленного ответа. Замедление счета при этом тоже минимальное, т. к. число легальных ходов под шахом ограничено, и узел будет обсчитан очень быстро. Продление все­го лишь шахов резко увеличивает силу игры программы. Считая на 6 полу­ходов, она способна обнаружить глубокие форсированные маты и другие комбинации, основанные на угрозе королю и приводящие к выигрышу ма­териала. Пример функции счета, продлевающей шахи:

Читать »