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

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

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

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
По умолчанию Во всех 3D движках такие тормоза?

решил попробовать 3D движки....

настроил санди 3D и запульнул сразу 500 кубиков на сцену.

удивился фпс.... в среднем 4 фпс

собственно вопрос: все движки так тормозят или я что-то не так делаю?

использовал три материала и рендеринг при входе во фрейм:

Код AS3:
package
{
	import com.google.maps.LatLng;
	import com.google.maps.Map3D;
 
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.filters.GlowFilter;
	import flash.geom.Point;
 
	import sandy.core.Scene3D;
	import sandy.core.scenegraph.Camera3D;
	import sandy.core.scenegraph.Group;
	import sandy.core.scenegraph.Shape3D;
	import sandy.materials.Appearance;
	import sandy.materials.ColorMaterial;
	import sandy.materials.WireFrameMaterial;
	import sandy.materials.attributes.GouraudAttributes;
	import sandy.materials.attributes.LightAttributes;
	import sandy.materials.attributes.LineAttributes;
	import sandy.materials.attributes.MaterialAttributes;
	import sandy.materials.attributes.MediumAttributes;
	import sandy.materials.attributes.OutlineAttributes;
	import sandy.materials.attributes.VertexNormalAttributes;
	import sandy.primitive.Box;
	import sandy.primitive.PrimitiveMode;
 
	[Event( name="clicked", type="sandydemo.BoxEvent" )]
 
	public class Boxes extends Sprite
	{
		public var scene:Scene3D;
		private var selectedMenuItem:Shape3D;
		public var arr:Array = [];
		public var camera:Camera3D;
		private var rootik:Group;
 
		public function Boxes()
		{
			init();
			addEventListener(Event.ADDED_TO_STAGE, onadded);
		}
 
		protected function onadded(event:Event):void
		{
			stage.frameRate = 100;
		}
 
		public function setRoll(val:Number):void {
			camera.roll = -val;
			scene.render();
		}
 
		public function setCenter(pp:Point, zz:Number, pitch:Number):void {
			camera.x = -pp.x;
			camera.y = pp.y;
			camera.z = -100*Math.pow(2, 18-zz);
			scene.render();
		}
 
		private function init():void
		{
			camera = new Camera3D(1920, 1080);
			camera.x = 0;
			camera.y = 0;
			camera.z = -500;
			camera.lookAt(0, 0, 0 );
 
			rootik = new Group( "root" );
 
			scene = new Scene3D("scene", this, camera, rootik );
			var len:uint = 500;
			var i:uint = 0;
			while (i<len) {
				arr[i] = new Box("red box", Math.random()*200, Math.random()*200, Math.random()*20*10, PrimitiveMode.QUAD, 0 );
				configureBox(arr[i], 0xff0000, Math.random()*1920, Math.random()*1080 );
				i++;
			}
 
			scene.render();
		}
 
		private function mouseOverHandler( event:MouseEvent ):void
		{
			var container:Sprite = event.target as Sprite;
			container.filters = [
				new GlowFilter( 0xffffff, 1, 12, 12 )
			];
		}
 
		private function mouseOutHandler( event:MouseEvent ):void
		{
			var container:Sprite = event.target as Sprite;
			container.filters = [];
		}
 
		private function clickHandler( event:MouseEvent ):void
		{
			var container:Sprite = event.target as Sprite;
			var currentShape:Shape3D = getShape3DByContainer( container );
			var boxEvent:BoxEvent = new BoxEvent( BoxEvent.CLICKED );
			boxEvent.which = currentShape.name;
			dispatchEvent( boxEvent );
		}
 
		private function getShape3DByContainer( container:Sprite ):Shape3D
		{
			for each( var shape:Object in scene.root.children )
			if( shape is Shape3D && shape.container == container )
				return shape as Shape3D;
 
			return null;
		}
 
		private function configureBox( item:Shape3D, color:uint, x:int, y:int ):void
		{
			var mattAttr:MaterialAttributes = new MaterialAttributes(
				new LightAttributes(false, 0.5), 
				new OutlineAttributes(3, 0xff0000, 1),
				new LineAttributes(1, 0, 1)
			);
 
			item.appearance = new Appearance(
				new ColorMaterial(color, 0.5, mattAttr)
			);
			item.appearance.frontMaterial.lightingEnable = true;
 
			item.x = x;
			item.y = y;
			item.rotateZ = Math.random()*180;
			item.container.addEventListener( MouseEvent.MOUSE_OVER, mouseOverHandler );
			item.container.addEventListener( MouseEvent.MOUSE_OUT, mouseOutHandler );
			item.container.addEventListener( MouseEvent.CLICK, clickHandler );
			item.container.useHandCursor = true;
			item.container.buttonMode = true;
 
			scene.root.addChild(item);
		}
	}
}
Код AS3:
boxes = new Boxes();
				spriteContainer.addChild(boxes);
				addEventListener(Event.ENTER_FRAME, onvch);
				spriteContainer.addChild(new Stats());
 
 
			protected function onvch(event:*):void
			{
				boxes.setCenter(new Point(mouseX-1500, mouseY), 14, 0); 
			}

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

Регистрация: Jul 2008
Сообщений: 912
Да ты не то делаешь), ты используешь мёртвый движок, который много лет не обновлялся. Сейчас есть новое поколение движков Away 4 и Alternativa3D 8 например, они используют новую особенность нового 11-го флеш плеера, который может обрабатывать 3D графику при помощи видеокарты.

Старый 15.11.2012, 22:15
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 3  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
аааа.... а я мучаюсь блин. спасибо. ща поищю примеры....

Старый 15.11.2012, 22:21
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 4  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
http://away3d.com/, http://alternativaplatform.com/ru/
Вот официальные сайты, спасибо можно в рейтинг поставить) зелёный плюсик такой над сообщением.
Для браузерной графики есть ещё и очень навороченый http://unity3d.com/ но чтоб на нём писать нормальные игры нужно сишарп знать хотя-бы.

Старый 15.11.2012, 22:42
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 5  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
хм.... альтернатива сразу отпала. слишком тяжёлая. 10 метров.

Старый 15.11.2012, 22:50
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 6  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от billion Посмотреть сообщение
хм.... альтернатива сразу отпала. слишком тяжёлая. 10 метров.
Ха) она-ж не вся будет в проект вкомпиливаться.

Старый 15.11.2012, 23:01
billion вне форума Посмотреть профиль Отправить личное сообщение для billion Посетить домашнюю страницу billion Найти все сообщения от billion
  № 7  
Ответить с цитированием
billion

Регистрация: Jan 2002
Сообщений: 149
Отправить сообщение для billion с помощью ICQ
как это не вся, если swc подключается к проекту. кстати есть рабочие примеры с away3D? а то в их туториалых заблудился совсем

Старый 15.11.2012, 23:11
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 8  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
Цитата:
Сообщение от billion Посмотреть сообщение
как это не вся, если swc подключается к проекту.
Ну и что? Ты-ж не встраиваешь её, а используешь как библиотеку классов.
На Away примеров нет, давно с ней не работал, хотя советую именно Away.

Старый 15.11.2012, 23:28
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 9  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
как это не вся, если swc подключается к проекту
В скомпилированный swf зашиваются только те классы, которые используются в проекте.
Насколько я помню, альтернатива добавляет килобайт 300 к проекту.

Примеры away3d есть - https://github.com/away3d/away3d-examples-fp11

Старый 16.11.2012, 08:44
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 10  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
Цитата:
Сообщение от billion Посмотреть сообщение
как это не вся, если swc подключается к проекту.
конечно! вы еще делайте import * будет вам больше 10мб)
у меня проект с кучей заембеденной графы и кучей кода с использованием альтернативы - 3мб флешка

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

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

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


 


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


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