Apr 06, 2016 13:45
btHeightfieldTerrainShape имитирует 2Д холмистую местность. Абонент несет ответственность за сохранение массива точек heightfield; этот класс не делает их копию. heightfield может быть динамическим до тех пор, пока его значения входят в диапазон мин/макс значений высоты (высоты всегда должна быть в этом диапазоне).
Локальное начало координат heightfield предполагается как точный центр (как установленно шириной, длиной и высотой на каждой оси умноженной локальным масштабом).
Примечание: будьте осторожны с координатами. Если у вас есть heightfield с местными координатами с минимальной высотой -100 метров, и максимальной высотой +500 м, вы можете склоняться к тому, чтобы поместить его
в начале координат (0,0) и ожидать, что высоты в мировых координатах будут-100 до +500 метров. На самом деле, высота будет от -300 до +300 м, потому что Bullet будет перемещать heightfield основе его ААВВ (который определяется мин/макс высотой). Так что имейте в виду, что после создания btHeightfieldTerrainShape объекта, его высоты будут скорректированы относительно центра ААВВ. Это отличается от поведения многих графических движков, но полезно для физических.
Большинство (но не все) визуализации и библиотеки поверхностей heightfield предполагают, что upAxis = 1
(то есть, оси Y-"вверх"). Этот класс позволяет любой из 3-х координатах быть "вверх". Убедитесь, что ваш выбор оси соответствует оси визуализации графической системы.
В heightfield высоты определяются из используемого типа данных для массив heightfieldData.
- PHY_UCHAR: высота в данной точке-это значение uchar в данной точке сетки, умноженное на heightScale. uchar не рекомендуется из-за своей неспособности представлять отрицательные значения, и низким разрешением (8 бит).
- PHY_SHORT: высота в точке является значением short int в этой точке сетки, умноженное на heightScale.
- PHY_FLOAT: высота в точке является значением float в этой точке сетки. heightScale игнорируется при использовании типа данных float.
Что бы определения свойств minheight и maxheight вызывающей стороны были выполнены, Класс не будет проверять heightfield, чтобы обнаружить фактические минимальные или максимальные высоты. Эти значения используются для определения heightfield по выровненному по осям ограничивающему прямоугольнику, умноженному на localScaling.
Для использования и тестирования см. TerrainDemo.
Material будет использоваться для хранения btMultimaterialTriangleMeshShape свойства треугольника.
btMinkowskiSumShape только для продвинутых пользователей. Эта форма представляет собой полную основную сумму минковского двух выпуклых неявные форм.
BvhTriangleMaterialMeshShape расширяет btBvhTriangleMeshShape. Ее главный вклад-это интерфейс в массив материалов, который позволяет для каждого треугольника задать трение и восстановление.
btMultiSphereShape представляет собой выпуклую оболочку семейства сфер. Вы можете создать специальные капсулы или другие гладкие емкости. Можно анимировать сферу для деформации, но необходимо вызывать 'recalcLocalAabb' после изменения в любой сфере положения/радиуса.
btOptimizedBvh расширяет btQuantizedBvh чтобы создать ААВВ дерево для треугольной сетки, через btStridingMeshInterface.
Класс btShapeHull берет btConvexShape, строит упрощенную выпуклую оболочку с помощью btConvexHull и предоставляет индексы и вершины треугольников. Он может пригодиться для того чтобы упростить сложный выпуклый объект и для визуализации не-выпуклых многогранных объектов. Он округляет выпуклую оболочку(btConvexHull ) используя вспомогательные вершины 42 областей.
btSphereShape реализует полную сферу, расположенную вокруг локального центра с радиусом radius.
tStaticPlaneShape имитирует бесконечную неподвижную (статическую) плоскость столкновения.
btStridingMeshInterface является интерфейсом класса для высокопроизводительного общего доступа к треугольным сеткам, используется в комбинации с btBvhTriangleMeshShape и некоторыми другими другие формами столкновения.
btBU_Simplex1to4 реализует тетраэдр, треугольник, линия, вершина фигур столкновения. В большинстве случаев лучше использовать вместо btConvexHullShape.
bullet phisics