| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #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);
} 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) |
| | |
| | #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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |