Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   pv3d - исчезают объекты (http://www.flasher.ru/forum/showthread.php?t=112315)

Дед Анвирыч 24.05.2008 00:01

pv3d - исчезают объекты
 
Доброй ночи.

Возник вопрос по папервижену следующего характера:

камера движется прямолинейно. параллельно движению камеры находится плоскость (для определенности крвадратный Plane). При стандартных настройках камеры (zoom=2, focus=100), когда камера визуально не доходит до плоскости на процентов 30 от ее длинны, плоскость исчезает. Тоже самое, если камера откатывается назад - появляется позже чем надо.

Это решается увеличением зума, но такое решение не всегда может быть использовано. Что то мне подсказывает, что должен быть какой то другой подход :)

использую as3, эффект одинков и в 1.5 и в great white, с разными настройками вьюпорта и разными камерами. если зум не увеличивать - вот такая фиготень :(

Заранее благодарен

Rzer 24.05.2008 00:19

Камера находится в точке (0,0,0) Видит только те объекты которые по направлению камеры имеют положительные координаты (например z) Посмотри значения координат для плоскости.
Focus говорит о расстоянии на котором параллельная плоскость будет в масштабе 100%.
Код:

        camera = new FreeCamera3D(2,500); 
        camera.z = -500;

Такая камера новые плейны со стандартными координатами будет отображать 1 к 1.

Zoom показывает как быстро изменяются размеры.

Дед Анвирыч 24.05.2008 01:42

Вложений: 1
Цитата:

Сообщение от Rzer (Сообщение 741092)
Камера находится в точке (0,0,0) Видит только те объекты которые по направлению камеры имеют положительные координаты (например z) Посмотри значения координат для плоскости.
Focus говорит о расстоянии на котором параллельная плоскость будет в масштабе 100%.
Код:

        camera = new FreeCamera3D(2,500); 
        camera.z = -500;

Такая камера новые плейны со стандартными координатами будет отображать 1 к 1.

Zoom показывает как быстро изменяются размеры.

Угу. немного прояснилось... но в поле зрение камеры попадают также объекты, координаты которых меньше координат камеры. пример - во вложении (wasd + mouse). в инпуте - значение зума.
если оно дефолтное =2, то пол под ногами пропадает. что в принципе наверное логично - координаты плиток меньше коородинат камеры. если зум сделать =3 и не смотреть под ноги - становится всё ок :) если смотреть - таже проблема. при значении зума = 5 - эти проблемы исчезают, но угол обзора камеры становится неподходящим.

Подозреваю, что можно сделать так, чтоб объект перестал рендерится только когда полностью исчезнет из поля зрения камеры, те. не координата станет меньше, а координата+длинна будет меньше координаты камеры? Естественно без использования зумма...

Дед Анвирыч 25.05.2008 01:27

Получается что без зума никак ? :(

Rzer 25.05.2008 17:25

Мне кажется, что ты неправильно задал размеры вьюпорта. И вот этот фрагмент кода я не совсем понимаю:
Код:

  container = new Sprite();
            addChild(container);
            container.name = "mainCont";
            container.x = 200;
            container.y = 200;
            scene = new Scene3D(container);

Если ты присмотришься, то объекты исчезают, если они полностью выходят за разумные пределы видимости. В твоем случае можно даже видеть грань между стеной и полом не видя пола, что довольно подозрительно. Центр твоей камеры не находиться в центре экрана.

Мой совет тебе - распиши подробней свой код через viewport.

UPD: Стандартные размеры вьюпорта:
Код:

        public function Viewport3D(viewportWidth:Number = 640, viewportHeight:Number = 480....
Чтобы центр твоей камеры находился в центре квадрата нужно сдвинуть контейнер по х на 320 и по у на 240. а не на 200 и 200. Но лучше подробно распиши через вьюпорт задав ему размеры 200 на 200.

Дед Анвирыч 25.05.2008 20:02

Спасибо, про это както не подумал :)

Дед Анвирыч 26.05.2008 01:14

Ситуация такая - бег по трубе :) Делаю вьюпорт огромным - 6000x6000. Труба - сегментами, импортирована из maya. При зуме меньше 10 - сваливает сегментами :)
Делить трубу на совсем маленькие сегменты - будет больше тормозить.... Если смотреть в пол - зум естественно не помогает...


Часовой пояс GMT +4, время: 09:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.