Название: AABB Отправлено: Sqwer от 29 Сентября 2009, 15:54:52 Axis - Aligned Bounding Box (Ограничивающий параллелепипед выровненный по координатным осям).
Это ограниченная область в пространстве в виде прямоугольного параллелепипеда, со сторонами, параллельными осям координат в мировой системе. При вращении объекта AABB изменяет свои размеры, но всегда остается ориентированным по осям координат. Второй вариант AABB - использовать в качестве Bounding Box'а куб со сторонами равными максимальному размеру объекта. Таким образом, в любом положении объект не выйдет за пределы AABB, хотя, конечно, при этом теряется точность. Существует три представления AABB: 1. min и max координаты вдоль каждой оси. Это представление определяет AABB как пространство между двумя противолежащими угловыми точками: min и max AABB = { (x, y, z) | min.x<=x<=max.x, min.y<=y<=max.y, min.z<=z<=max.z } 2. Минимальная угловая точка min и диаметры dx,dy,dz из этого угла: AABB = {(x, y, z) | min.x<=x<=min.x+dx, min.y<=y<=min.y+dy, min.z<=z<=min.z+dz } 3. Последнее представление определяет AABB как центральную точку C и радиусы rx, ry, rz вдоль каждой оси: AABB = { (x, y, z) | |c.x-x|<=rx, |c.y-y|<=ry, |c.z-z|<=rz } Как устроена проверка в Квесте на пересечени пирамиды камеры с этим ААББ? Как происходит генерация этого ААББ в Квесте ? Название: Re: AABB Отправлено: Sqwer от 29 Сентября 2009, 19:02:50 тишина... хорошо, поставим вопрос менее конкретно:
как грамотно отсекать огромное количество объектов? при том, что всё таки кол-во предметов огромно, нужна реализация , которая меньше всего проводится с участием "РУК". Хочу кнопку "сделать красиво и быстро". ;) Название: Re: AABB Отправлено: Cludz от 30 Сентября 2009, 10:02:06 для успешности проекта нужно максимально упрощять все вычесления ::)
Название: Re: AABB Отправлено: Sqwer от 30 Сентября 2009, 14:58:29 Cludz Не во всех случаях, главное надо учитывать специфику пректа и компутерной архитектуры.
Проверил работу канала Command New Interface на выполнение команды "получить ААББ " - результат не утешительный. Пример внизу: версия 433 VS6 Название: Re: AABB Отправлено: DimiS от 30 Сентября 2009, 15:00:00 ААВВ -- просто один из методов проверки для фруструм куллинга, не обязательно использовать именно его. В квесте я могу припомнить только два встроенных способа применить фруструм куллинг. Первый -- в пропертях 3D Object поставить галочку и посчитать. Но нам не важно какой метод там используеться ибо мы никак не можем принять в этом участие. Второй появился в версии 4.3 -- Sphere Tree, умеет создавать соответствие между класс инстансом и сферой и выдавать список класс инстансов чья сфера входит во фруструм.
Вот второй случай уже гораздо интереснее нам, мы можем решать какие объекты проверять на куллинг. В ченеле Command New Interface я заметил новую команду Get bounding shpere, правда ещё не знаю как выбирать те самые 4 точки. Ну а если очень хочеться сделать именно AABB, то можно и самому написать. Хотя может я всё-таки где то, чёто пропустил и есть возможность ещё как то проверять куллинг. Название: Re: AABB Отправлено: DimiS от 30 Сентября 2009, 15:09:54 Проверил работу канала Command New Interface на выполнение команды "получить ААББ " - результат не утешительный. Пример внизу: версия 433 VS6 ну так там жеш не дано описание параметров этой команды, мб оно просто не такое как ты себе это представляеш и потому результат абсолютно не правильный Сам эдитор считает баундинг бокс нормально ведь Название: Re: AABB Отправлено: Sqwer от 30 Сентября 2009, 15:17:20 копал я долго, всё зависимости находил...
перепробовал всё... даж нашёл единственный случай правелього ААББ.... это когда идеальный куб линкуешь 1*1*1 метр ;D и во всяком случае команда по проверки ААББ на фрустум видимость принемает другой вид ААББ (проверено). Собственно придумал реализацию , но всётаки хотелось найти уже готовый метод. Название: Re: AABB Отправлено: DimiS от 30 Сентября 2009, 20:24:08 Только что заметил у VectorOperator новые операторы:
Get Bounding box maximum (DX8 Objectdata) Get Bounding box minimun (DX8 Objectdata) тут уж и руками можно построить такую матрицу :) пс: а по поводу Command New Interface я всётаки был не прав, сразу не заметил что у него фиксированое количество чаилдов в зависимости от типа команды |