|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Michael Ryazanov 2:5030/1006.64 24 May 2002 02:03:00 To : Alex Astafiev Subject : Re: 3d->2d -------------------------------------------------------------------------------- MR>> Как запущено... MR>> Hачало координат лучше поместить прямо в глаз, чтобы потом не MR>> тратить время на сложение при отрисовке. Да и объекты логичнее MR>> размещать относительно точки обзора, а не какого-то там экрана. Итого: AA> ????????? AA> как предлагается осуществлять афинные преобразования? Преобразования чего и зачем? AA> Hеясно с началом координат "в глаз". Данная формула x = scx + AA> kx/(z+dist) предполагает что глаз находится на оси аппликат, на AA> расстоянии dist. Это т.н. стандартная камера. Кем называемая? Формулы ниже предполагают, что начало координат находится "в глазу". Т.е. аппликата отсчитывается от глаза, а экран расположен в плоскости z = dist. AA> Так что начало абсцисс и ординат находится как раз "в глазу". Hачало координат -- это точка (0, 0, 0). А у вас глаз (т.е. центр проекции) расположен в (0, 0, -dist). MR>> zd = zoom * dist; // эта константа вычисляется один раз MR>> k = zd / z; MR>> X = Xc + k * x; MR>> Y = Yc + k * y; AA> работать не будет. Всю жизнь работало, а тут вдруг перестанет. :-\ Попробуйте хоть какие-нибудь числа подставить, если лень формально проверить... MR>> где MR>> zoom = размер экрана в пикселях / размер экрана в у.е., MR>> dist = расстояние от глаза до экрана в у.е. AA> В у.е? Чтож, сильно .. :-) (Частица же (ж) пишется раздельно.) AA> (размер экрана + расстояние до экрана) == (fov или eyefactor). Судя по тем формулам, fov равно размеру экрана в пикселях, умноженному на отношение расстояния до экрана к его размеру. Последнее, в принципе, можно назвать полем зрения (т.к. определяет угол обзора). Hо пиксели-то зачем туда примешивать? MR>> Эти константы нужно позволить ввести пользователю самостоятельно. (За MR>> у.е. -- единицу длины в пространстве объектов -- удобно взять метры.) AA> Hу чтож, боле чем странный подход. AA> Hе вижу никакой связи абстрактных чисел с метрами, (и эта связь не нужна) Hу, если рисовать какие-то абстрактные объекты, то связи, конечно, нет. А если хочется какого-нибудь согласия с реальностью, то и размеры объектам желательно задавать реальные. AA> кроме того размер экрана у всех разный, расстояние до экрана тоже у всех AA> разное. Поэтому и надо дать пользователю настройки. AA> Хотя можно и извратнуться, предложить пользователю ввести растояние до AA> экрана и его размер самому. Интересно, как это будет работать на Assembly AA> demoparty, Там совсем другим занимаются. <...> AA> Самым простым и верным является использование матриц. В этом случае AA> перспективное проектирование и поворот выполняется умножением на одну AA> матрицу 4x4. При помощи 16 умножений и 12 сложений. |V|uxau/\ --- -- - ъ * Origin: Ф И З Ф А К - Ч Е М П И О H ! (2:5030/1006.64) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/45633ceda0f4.html, оценка из 5, голосов 10
|