помогите с порталами
Здрасьте.
В общем я оконачательно запарился, не могу спрогать систему типа area-portals, хреновый я математик)
хотя в теории понятно, что мы должны вести от позиции камеры дополнительный фруструм через крайние точки портала и скрывать невидимые в арее (секторе) с той стороны объекты.
но что-то всё наперекосяк выходит...
в общем, если кто имел опыт в создании подобного, или кому не сложно такое сделать, был бы очень признателен за dll с портальными функциями.
а то горит дема, без порталов всё тормозит.
что нужно:
- нужно функцию, которая будет принимать флоат-значения:
Cx,Cy,Сz, p1x,p1y,p1z, p2x,p2y,p2z, p3x,p3y,p3z, p4x,p4y,p4z, bminx,bminy,bminz, bmaxx,bmaxy,bmaxz
где:
Cx,Cy,Cz - позиция камеры (начало фруструма)
точки p** - четыре точки портала, через которые фруструм проходит.
точки bmin/bmax - мин и макс точки бокса, нахождение которого в портале должно осуществляться.
функция должна возвращать 0 или 1 в зависимости от того, нашёлся ли бокс.
я делал на каждую плоскость фруструма уравнение плоскости, дабы узнать что внутри а что снаружи, но столкнулся с кучей непоняток (я ноль в геометри ваще).
главная кстати непонятка - это как определить нахождение бокса во фруструме если все его точки то снаружи.
в общем был бы рад за помощь.
если сделаете, возможно найдётся и ещё работка, уже оплачиваемая)
|