Zurück   Flashforum > Software > 3D

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-04-2009, 10:12   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2009
Beiträge: 21
PV3D 2.0 - Performance Probleme bei Plane-Rotation?

Erstmal ein kurzes hallo zur Begrüßung - mein erster Beitrag

Ich bin gerade dabei, mich wieder in Papervision3D einzuarbeiten, Version 2.0 um genau zu sein.

Selbst gesetztes Ziel vorerst: Mit Material belegte Planes sinken nach unten, im "Raum" verteilt und drehen sich dabei.
Alles soweit garkein Problem, aber sobald ich die Rotation der einzelnen Planes hinzupacke hakt der Player total. Dabei spielt es keine Rolle ob es 20 oder 20 Planes sind.

Erstmal mein Code:
Code:
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import org.papervision3d.view.layer.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;

var numItems:int = 200;

var bre:BasicRenderEngine = new BasicRenderEngine();
var vp:Viewport3D = new Viewport3D();
	
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
camera.x -= 150;

var mat:BitmapAssetMaterial = new BitmapAssetMaterial("Item");
mat.oneSide = false;
mat.smooth = true;
	
var itemArray:Array = new Array();
var accArray:Array = new Array();
var acc:Number;
	
for(var i:uint = 0; i < numItems; i++) {
	var p:Plane = new Plane(mat, 50, 50, 2, 2);
	p.x = Math.random() * (stage.stageWidth * 2) - (stage.stageWidth);
	p.y = Math.random() * (stage.stageHeight * 2) - (stage.stageHeight);
	p.z = Math.random() * 1000 - 500;
	p.rotationY = Math.random() * 360;
	acc = (Math.random() * 9) + 1;
	itemArray[i] = p;
	accArray[i] = acc;
}
		
for(var j:uint = 0; j < itemArray.length; j++) {
	scene.addChild(itemArray[j]);
}
addChild(vp);
	
addEventListener(Event.ENTER_FRAME, render);
	
var tmp:Plane;
	
function render(e:Event):void {
	for(var k:uint = 0; k < itemArray.length; k++) {
		tmp = itemArray[k];
		tmp.y -= accArray[k];
		if(tmp.y < 0 - stage.stageHeight * 2) {
		tmp.y = stage.stageHeight + 500;
		}
		tmp.rotationY += accArray[k] * 1.3;
		tmp.rotationZ += accArray[k] * 1.3;
	}
	bre.renderScene(scene, camera, vp);
}
Genau die zwei Zeilen in der render() sorgen für das lagging:

tmp.rotationY += accArray[k] * 1.3;
tmp.rotationZ += accArray[k] * 1.3;

Ist evtl mein Ansatz über Arrays nicht so gelungen? Das war für mein Vorhaben der für mich logischste eigentlich...

Im Moment stehe ich ein wenig auf dem Schlauch...

Danke schonmal für jede Hilfe!


Edit:
Achso... Ich habe vergessen zu sagen: Mit PV3D 1.5 ging das alles noch wunderbar, da jedoch der collada import da nicht so recht wollte bin ich umgestiegen...

Geändert von Revoluzifer (23-04-2009 um 10:13 Uhr)
Revoluzifer ist offline   Mit Zitat antworten
Alt 23-04-2009, 18:17   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2009
Beiträge: 21
Ok, habe das Problem in den Griff bekommen...
Dank falscher Suchbegriffe habe ich ein Topic in der es um einen ähnlichen Zusammenhang ging, nicht gefunden.

Die Lösung war die smooth-eigenschaft des BitmapAssetMaterials nicht auf true zu setzen...

Trotz allem: Falls jemand einen workaround MIT smoothing kennt: Bitte her damit
Revoluzifer ist offline   Mit Zitat antworten
Alt 27-04-2009, 14:40   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2009
Beiträge: 21
Ok, und nun für alle die es interessiert noch der workaround, wenn man auch das smoothing nutzen will:
Wenn man sagt
myMaterial.smooth = true;

grundsätzlich auch:
myMaterial.tiled = true;

und fertig...
Revoluzifer ist offline   Mit Zitat antworten
Alt 26-07-2009, 14:30   #4 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Zitat:
Zitat von Revoluzifer Beitrag anzeigen
grundsätzlich auch:
myMaterial.tiled = true;
Danke schön!
Das hilft mir gerade sehr.

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele