BurnedBrain

a user experience blog by Simone Simola

Papervision3D template class

January17

Papervision3D template

Un piccolo esempio in cui è possibile ruotare l’orbita della camera e visualizzare un piano in wireframe.

package
{
	import flash.events.Event;

	import org.papervision3d.events.FileLoadEvent;
	import org.papervision3d.materials.WireframeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;

	[SWF(width="800", height="600", frameRate="31", backgroundColor="#666666")]

	public class ExternalModelsExample extends BasicView
	{
		private var model:DisplayObject3D;
		private var rotX:Number = 0.1;
		private var rotY:Number = 0.1;
		private var camPitch:Number = 90;
		private var camYaw:Number = 270;
		private var easeOut:Number = 0.1;

		public function ExternalModelsExample()
		{
			stage.frameRate = 40;

			init();
			startRendering();
		}

		private function init():void
		{
			model = new Plane();
			scene.addChild(model);
		}

		private function modelLoaded(event:FileLoadEvent):void
		{
			// To be added
		}

		override protected function onRenderTick(event:Event=null):void
		{
			var xDist:Number = mouseX - stage.stageWidth;
			var yDist:Number = mouseY - stage.stageHeight;

			camPitch += ((yDist * rotX) - camPitch + 90);

			camYaw += ((xDist * rotY) - camYaw + 270) * easeOut;

			camera.orbit(camPitch, camYaw);

			super.onRenderTick();
		}

	}
}

Namasté

Guida per il Novello PaperModellatore

January17

Ecco un piccola guida frutto della mia ultima lettura:
PAPERVISION 3D ESSENTIAL.

Papervision 3D  Essentials

1.) POCHI POLIGONI
Modellare con il minor numero di poligoni possibile per non sovraccaricare il motore di rendering a discapito delle performance di tutto l’applicativo
Le performance dipendono da molti fattori, non solo dal numero di triangoli comunque è preferibile non superare i 3000 triangoli (1500 poligoni).
A differenza di molti altri programmi di modellazione, Papervision3D è basato sui triangoli e non sui poligoni.

2.) AGGIUNGERE POLIGONI PER CORREGGERE ERRORI DI VISUALIZZAZIONE
Sebbene questo vada apparentemente contro il precedente suggerimento di tenere basso il numero di poligoni, a volte è necessario avere più poligoni per evitare distorsioni di texture o ridurre eventuali errori di visualizzazione (z-sorting artifacts), questo problema si verifica solitamente nei punti di intersezione con altri oggetti o quando alcuni oggetti sono molto vicini tra loro.

3.) TEXTURE PICCOLE E LEGGERE E LEGGIBILI PER FLASH E PAPERVISION
Le texture dei modelli devono essere esportate in un formato leggibile per Papervision3D e per il Flash Player (png, jpg o gif) e preferibilmente nelle dimensioni in cui il modello verrà visualizzato, al fine di evitare spreco di banda per caricare texture pesanti che poi verranno ridimensionate e visualizzate in un formato più piccolo. Tenere sempre a mente che le dimensioni delle texture devono essere multipli di 2. Questo abiliterà il mipmapping e lo smoothing (anche se con un extra-dispendio di performance).

4.) UTILIZZO DELLE UV MAPS
Se il modello è composto da numerosi poligoni e texture è conveniente usare la mappatura UV e cioè il processo di apertura del modello e definizione delle sue texture in un’unica immagine.
Questo puo velocizzare il processo di caricamento iniziale e evitare di caricare dozzine di immagini. Inoltre le mappe UV possono anche essere riutilizzate parzialmente.
Cercare di tenere le immagini di mappatura UV il più piccole possibile. Nel caso in cui ci siano molti oggetti che condividano le stesse mappe UV e serva un canvas più ampio, tenere presente che il Flash Player 9 puo caricare immagini fino a un massimo di 2880×2880 pixel (non superare comunque i 2048×2048 pixel per le texture)

5.) BAKING TEXTURES
Baking Textures è il processo di integrazione di ombre, luci, riflessi o dell’intero modello 3D in una singola immagine. Molti tool di modellazione lo supportano.
Questo procedimento può essere utilizzato per aumentare il livello di realismo quando non è possibile calcolare ombre e luci in tempo reale (a causa del notevole calo di performance che questi calcoli produrrebbo).

6.) NOMI RICONOSCIBILI
E’ buona norma assegnare nomi riconoscibili per tutti gli oggetti. Questo vale per le classi, i metodi e le proprietà nel codice, ma anche per i nomi degli oggetti 3D nel software di modellazione.
Prima di rinominare un oggetto usato in un’applicazione, pensare a cosa comporta in termini di identificazione. Potrebbe essere necessario rivedere tutto il codice per correggere i riferimenti all’oggetto modificato.

7.) DIMENSIONI E POSIZIONE
Mantenere sempre le stesse dimensioni relative per i modelli realizzati. Sebbene Papervison3D permetta di variare il livello di scaling del modello 3D caricato, è conveniente che sia Papervision3D che il software di modellazione siano allineati e abbiano lo stesso livello di zoom (Papervision3D non utilizza un sistema metrico come pixel o centimetri, è basato su unità).
Un’altra convenzione è posizionare gli oggetti all’origine dello spazio 3D nel software di modellazione. Specialmente quando viene esportato un singolo oggetto è fondamentale che sia posizionato a 0 su tutti gli assi. Inquesto modo si potrà fare riferimento all’oggetto in Papervision3D usando valori assoluti senza prevedere valori di offset.

8.) TRA QUALITÁ E PERFORMANCE
Per ogni progetto è fondamentale trovare il giusto equilibrio tra qualità e performance perchè ogni progetto è differente e ha requisiti, qualità e scaling differenti. Non c’è una regola da applicare, va definito di volta in volta. Se si conosce un modo per ottimizzare i modelli 3D, utilizzarlo senza esitazione.

Qui si puo trovare uno strumento per visualizzare all’interno del motore di Papervision3D il modello realizzato.

Qui e qui alcune indicazioni utili.

Namasté

Augmented 3D FlarToolkit and Papervision3D

February23

An example of Flash Augmented Reality with Papervision3D.
I got FlarToolkit from the Saqoosha’s Japanese blog and after a sleepless night, finally i did it!

I used Syncro SVN Client to get all the FlarToolkit trunk and the updated Papervision3D trunk.

To test my demonstration you must download and print this pdf file.Augmented 3D FlarToolkit and Papervision3D Marker

Download Source

Namasté