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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2009, 14:25
zinchencko вне форума Посмотреть профиль Отправить личное сообщение для zinchencko Найти все сообщения от zinchencko
  № 1  
Ответить с цитированием
zinchencko

Регистрация: Jan 2008
Сообщений: 23
Отправить сообщение для zinchencko с помощью ICQ Отправить сообщение для zinchencko с помощью Skype™
По умолчанию Papervision 3d, как настроить камеру

У меня возникла следующая проблема, как сделать так что бы грани помеченный красным небыли видны. Как настроить камеру, или может дело не в камере и есть другое решение проблемы.

Код.
Код AS3:
package
{
	import flash.events.Event;
 
	import org.papervision3d.core.utils.Mouse3D;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.layer.ViewportLayer;
	import org.papervision3d.view.layer.util.ViewportLayerSortMode;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.primitives.Cube;
 
	[SWF(width="640", height="480", backgroundColor="#b6bfc2", frameRate="60")]
	public class Test extends BasicView
	{
		private var mouse3D:Mouse3D;
		private var follower:Cube;
 
		public function Test() 
		{
			viewport.interactive = true;
			Mouse3D.enabled = true;
			mouse3D = viewport.interactiveSceneManager.mouse3D;
 
			var redColorMaterial:ColorMaterial = new ColorMaterial(0xe5e8ec);
			redColorMaterial.interactive = true; 
 
			var floor:Plane = new Plane(redColorMaterial, 2000, 2000, 10, 10);			
 
			var wareFrame:WireframeMaterial = new WireframeMaterial(0x3b4149, 100, 1)
 
			var materialsList:MaterialsList = new MaterialsList();
 			materialsList.addMaterial(wareFrame, "front");
			materialsList.addMaterial(wareFrame, "back");
			materialsList.addMaterial(wareFrame, "top");
			materialsList.addMaterial(wareFrame, "bottom");
			materialsList.addMaterial(wareFrame, "right");
			materialsList.addMaterial(wareFrame, "left");
 
			follower = new Cube(materialsList, 300, 50, 300, 1, 1, 1, 0, 0);
 
			scene.addChild(floor);			
			scene.addChild(follower);
 
			camera.y = -230;
			camera.zoom = 32;
 
			var floorViewportLayer:ViewportLayer = new ViewportLayer(viewport, floor);
			var followerViewportLayer:ViewportLayer = new ViewportLayer(viewport, follower);
 
			viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;	
			floorViewportLayer.layerIndex = 0;
			followerViewportLayer.layerIndex = 1;
 
			viewport.containerSprite.addLayer(floorViewportLayer);
			viewport.containerSprite.addLayer(followerViewportLayer);
 
 
			startRendering();
		}
 
		override protected function onRenderTick(event:Event=null):void
		{
			follower.x += (mouse3D.x - follower.x) * .1;
			follower.y += (mouse3D.y - follower.y) * .1;
			follower.z += (mouse3D.z - follower.z) * .1;
			renderer.renderScene(scene, camera, viewport);
		}
 
	}
 
}
Изображения
 

Старый 22.09.2009, 01:47
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 2  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Может camera.focus поможет ?
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать!

Старый 22.09.2009, 02:24
zinchencko вне форума Посмотреть профиль Отправить личное сообщение для zinchencko Найти все сообщения от zinchencko
  № 3  
Ответить с цитированием
zinchencko

Регистрация: Jan 2008
Сообщений: 23
Отправить сообщение для zinchencko с помощью ICQ Отправить сообщение для zinchencko с помощью Skype™
я уже все перепробовал, чет не помогает. я уже задумываюсь о самой возможности такого.

UPD: фокус он же по сути приближает/отдаляет сцену и все. Попробуй в код поставить camera.focus = 10; а потом camera.focus = 8; сама перспектива не изменяется, просто идет приближение или отдаление сцены.

UPD2: у меня была идея подвинуть все на сцене просто выше до той "Y" где эти грани пропадают и меня устраивает перспектива. Потом запихать это в отдельный класс и сместить на сцене. Но тут возникает другая проблема, которую я тоже не смог обойти. Как сделать viewport больше по высоте чем размеры stage.

получилось достичь результата по 2-му варианту. Но если кто знает как это можно сделать проще, велком.


Последний раз редактировалось zinchencko; 22.09.2009 в 20:44.
Старый 02.10.2009, 18:41
drf вне форума Посмотреть профиль Отправить личное сообщение для drf Посетить домашнюю страницу drf Найти все сообщения от drf
  № 4  
Ответить с цитированием
drf
 
Аватар для drf

Регистрация: Sep 2002
Адрес: Мазгва
Сообщений: 245
Отправить сообщение для drf с помощью ICQ
Код AS3:
				view.camera.x += (CAMERA_POSITION * Math.sin(newx /  960 * 360 * Math.PI / 180) -  view.camera.x) * 0.1; //stage.stageWidth
            	view.camera.z += (CAMERA_POSITION * Math.cos(newx / 960 * 360 * Math.PI / 180) -  view.camera.z) * 0.1; //stage.stageWidth
           		view.camera.y += (CAMERA_POSITION * newy / 690 - view.camera.y) * 0.1;
я так управляю камерой
__________________
IFLASHER.RU // игровых дел мастер котлетов

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

Теги
camera , papervision3d
Опции темы
Опции просмотра

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

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


 


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


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