return true;
}
bool isBlockedBy ( const Polygon3D& poly ) const;
bool contains ( const Frustrum& ) const;
void clipByPlane ( const Plane& );
void clipByFrustrum ( const Frustrum& );
private:
void buildPlanes (') ; // build planes based on org
// and vertices
};
В силу того что подобная усеченная пирамида представляет собой пересечение конечного набора полупространств, все проверки для работы с ней сводятся к аналогичным проверкам для плоскостей.
ОСНОВЫ БИБЛИОТЕКИ OpenGL
Практически вся графика в современных компьютерных играх делается с использованием трехмерных графических ускорителей, таких, как GeForce (2,3,4, FX), Radeon и др. Современные графические ускорители обладают большим набором возможностей и высокой производительностью, но при этом они часто имеют серьезные внутренние различия. Для того чтобы эффективно работать с такими ускорителями не привязываясь к особенностям какого-либо конкретного ускорителя, обычно применяются библиотеки, которые скрывают особенности конкретного ускорителя и предоставляют некоторый унифицированный интерфейс к нему. Обычно для достижения возможности работы с различными ускорителями используются драйверы устройств, через которые действует библиотека. При этом одна и та же программа будет успешно работать на ряде различных ускорителей без модификации исходного кода.
На данный момент в мире персональных компьютеров существует два таких интерфейса: OpenGL, являющийся уже более 10 лет стандартом в мире рабочих станций, и Direct3D, предложенный и поддерживаемый компанией Microsoft.
В отличие от OpenGL, который сразу разрабатывался для функционирования с графическими ускорителями, Direct3D был изначально ориентирован на программный (software) рендеринг. С тех пор он претерпел ряд серьезных изменений. Они облегчили работу с ним, но такая нестабильность по-прежнему остается очень серьезным фактором: может легко оказаться, что силы (и значительные, так как API DirecOD довольно громоздкий), потраченные на изучение очередной версии Direct3D, окажутся потраченными впустую, поскольку API опять изменится. Кроме того, Direct3D фактически не является стандартом в строгом смысле этого слова - это лишь некоторый интерфейс, объявленный и полностью контролируемый компанией Microsoft, которая может делать с ним все, что ей захочется и когда захочется.