[as 2.0] moteur 3d sans matrices

Description

voici un projet en dev, mais qui est deja utilisable.
il utilise un systeme de class.

il permet de charger des fichier 3d extene au format xml ou lineaire (regardez les fichier .xml et .fobj)

le but final de ce projet est de pouvoir gerer et charger des fichier 3d afin de s'en servir dans des jeux par exemple.

la gestion des collision est a l'etude,
et une class de generation d'objets à la volé est en cours de devellopement (voir meshCreator.as, code instable).

si vous voulez participer au projet, en ecrivant de nouvelles class par exemple, envoyez moi vos fichier, et j'updaterai ;)

Source / Exemple :


var file:String = "pyramide.fobj";
var origine:Object;
var cam:Object;
var viewport:Number;
var meshObject:Array;
var xmlObject:XML = new XML();
var cam_:Object = {x:0, y:0, z:98, step:0.2};

var meshBuilder = new mesh();
var drawMethod = new draw(_root);

origine = {x:300, y:200};
viewport = 52;
xmlObject.ignoreWhite = true;
xmlObject.load(file);
xmlObject.onLoad = function(flag) {
	if (flag) {
		// si vous chargez au format xml:
		//_root.meshObject = meshBuilder.loadMeshFromXML(this);
		_root.meshObject = _root.meshBuilder.loadMeshFromDataFile(this);
		_root.drawMethod.setFill(40, 0x336699);
		_root.drawMethod.setLine(100, 0x000000, -1);
		setInterval(function () {
			if (Key.isDown(Key.LEFT)) {
				_root.cam_.x -= _root.cam_.step;
			}
			if (Key.isDown(Key.RIGHT)) {
				_root.cam_.x += _root.cam_.step;
			}
			if (Key.isDown(Key.UP)) {
				_root.cam_.y -= _root.cam_.step;
			}
			if (Key.isDown(Key.DOWN)) {
				_root.cam_.y += _root.cam_.step;
			}
			if (Key.isDown(Key.PGUP)) {
				_root.cam_.z -= _root.cam_.step;
			}
			if (Key.isDown(Key.PGDN)) {
				_root.cam_.z += _root.cam_.step;
			}
			_root.cam = {x:_root.cam_.x, y:_root.cam_.y, z:_root.cam_.z};
			_root.camxtxt.text = _root.cam_.x+" ::"+_root.cam_.y+" ::"+_root.cam_.z;
			_root.drawMethod.flush();
			_root.drawMethod.render(_root.meshObject, _root.viewport, _root.origine, _root.cam);
		}, 50);
	}
};

Conclusion :


j'ecrit actuellement un plugin d'export pour wings3d (www.wings3d.com).

si vous arrivez a ecrire de nouveaux objets 3d, envoyez les moi, car les faire à la main, c pas evident, et mon plugin d'export pour swift3d est pas pret d'etre terminé...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.