Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2008, 00:01
Дед Анвирыч вне форума Посмотреть профиль Отправить личное сообщение для Дед Анвирыч Найти все сообщения от Дед Анвирыч
  № 1  
Ответить с цитированием
Дед Анвирыч
[+] за варез

Регистрация: Mar 2001
Адрес: Россия, Нижний Новгород
Сообщений: 80
Отправить сообщение для Дед Анвирыч с помощью ICQ
По умолчанию pv3d - исчезают объекты

Доброй ночи.

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

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

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

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

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

Старый 24.05.2008, 00:19
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 2  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Камера находится в точке (0,0,0) Видит только те объекты которые по направлению камеры имеют положительные координаты (например z) Посмотри значения координат для плоскости.
Focus говорит о расстоянии на котором параллельная плоскость будет в масштабе 100%.
Код:
        camera = new FreeCamera3D(2,500);  
	camera.z = -500;
Такая камера новые плейны со стандартными координатами будет отображать 1 к 1.

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


Последний раз редактировалось Rzer; 24.05.2008 в 00:29.
Старый 24.05.2008, 01:42
Дед Анвирыч вне форума Посмотреть профиль Отправить личное сообщение для Дед Анвирыч Найти все сообщения от Дед Анвирыч
  № 3  
Ответить с цитированием
Дед Анвирыч
[+] за варез

Регистрация: Mar 2001
Адрес: Россия, Нижний Новгород
Сообщений: 80
Отправить сообщение для Дед Анвирыч с помощью ICQ
Цитата:
Сообщение от Rzer Посмотреть сообщение
Камера находится в точке (0,0,0) Видит только те объекты которые по направлению камеры имеют положительные координаты (например z) Посмотри значения координат для плоскости.
Focus говорит о расстоянии на котором параллельная плоскость будет в масштабе 100%.
Код:
        camera = new FreeCamera3D(2,500);  
	camera.z = -500;
Такая камера новые плейны со стандартными координатами будет отображать 1 к 1.

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

Подозреваю, что можно сделать так, чтоб объект перестал рендерится только когда полностью исчезнет из поля зрения камеры, те. не координата станет меньше, а координата+длинна будет меньше координаты камеры? Естественно без использования зумма...
Вложения
Тип файла: zip step_test.zip (57.5 Кб, 82 просмотров)

Старый 25.05.2008, 01:27
Дед Анвирыч вне форума Посмотреть профиль Отправить личное сообщение для Дед Анвирыч Найти все сообщения от Дед Анвирыч
  № 4  
Ответить с цитированием
Дед Анвирыч
[+] за варез

Регистрация: Mar 2001
Адрес: Россия, Нижний Новгород
Сообщений: 80
Отправить сообщение для Дед Анвирыч с помощью ICQ
Получается что без зума никак ?

Старый 25.05.2008, 17:25
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 5  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Мне кажется, что ты неправильно задал размеры вьюпорта. И вот этот фрагмент кода я не совсем понимаю:
Код:
   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.


Последний раз редактировалось Rzer; 25.05.2008 в 17:45.
Старый 25.05.2008, 20:02
Дед Анвирыч вне форума Посмотреть профиль Отправить личное сообщение для Дед Анвирыч Найти все сообщения от Дед Анвирыч
  № 6  
Ответить с цитированием
Дед Анвирыч
[+] за варез

Регистрация: Mar 2001
Адрес: Россия, Нижний Новгород
Сообщений: 80
Отправить сообщение для Дед Анвирыч с помощью ICQ
Спасибо, про это както не подумал

Старый 26.05.2008, 01:14
Дед Анвирыч вне форума Посмотреть профиль Отправить личное сообщение для Дед Анвирыч Найти все сообщения от Дед Анвирыч
  № 7  
Ответить с цитированием
Дед Анвирыч
[+] за варез

Регистрация: Mar 2001
Адрес: Россия, Нижний Новгород
Сообщений: 80
Отправить сообщение для Дед Анвирыч с помощью ICQ
Ситуация такая - бег по трубе Делаю вьюпорт огромным - 6000x6000. Труба - сегментами, импортирована из maya. При зуме меньше 10 - сваливает сегментами
Делить трубу на совсем маленькие сегменты - будет больше тормозить.... Если смотреть в пол - зум естественно не помогает...

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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