Eine kurze und einfache Einführung in die WebGL Entwicklung mit Three.js.
Laden eines eigenen 3D-Modell.
WebGL Tutorial ( part III ) Laden eines einfachen Blender JS (JSON Model) Modell
Im 3. Tutorial meiner WebGL Tutorial Reihe laden wir ein einfaches 3D Modell im JSON Format.
three.js (aktuell v.51)
- 1. Exportieren des 3d-Models
In der folgenden Bilderserie finden sie die Einstellung für den export des 3d-Models im JSON Format.
2. Das eigenliche script
<script type="text/javascript">
init();
animate();
// Variablen inititalisieren
var SCREEN_WIDTH = window.innerWidth;
var SCREEN_HEIGHT = window.innerHeight;
var kamera;
var scene;
var zeichnen;
var steuerung;
var loader;
var mesh;
var loadModel;
function init()
{
// Erzeugen einer Szene
scene = new THREE.Scene();
// Lade Blender .js Model
loader = new THREE.JSONLoader( );
loadModel = function(geometry); }
mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { envMap: THREE.ImageUtils.loadTexture( 'textures/metal.refl.jpg', new THREE.SphericalReflectionMapping() ), overdraw: true, shading: THREE.SmoothShading } ) );
mesh.scale.set(150, 150, 150);
mesh.position.set(0, 150, 0);
scene.add( mesh );
};
loader.load('blender.js/untitled.js', loadModel );
setInterval(render, 50);
// Erzeugen einer Kamera. Man benoetigt mindestens eine Kamera.
kamera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 100000 );
kamera.position.z = 1400;
kamera.position.y = 1200;
kamera.rotation.x = -0.78;
//Hinzufuegen der Kamera zur Szene
scene.add( kamera );
//Hinzufuegen der Kamera-Steuerung
steuerung = new THREE.OrbitControls( kamera );
steuerung.addEventListener( 'change', render );
// licht
licht = new THREE.AmbientLight( 0xefefef );
scene.add( licht );
// Boden
// Erzeugung des Materials fuer den Boden
var material1 = new THREE.MeshBasicMaterial( { color: 0xfff000, wireframe: true, side: THREE.DoubleSide } );
//Erzeugung der Gemotrie / Boden
boden = new THREE.Mesh( new THREE.PlaneGeometry( 2000, 2000, 10, 10 ), material1 );
boden.position.y = 0;
boden.rotation.x = - Math.PI / 2;
//Hinzufuegen des Bodens zur Szene
scene.add( boden );
//Hier wird ein CanvasRenderer verwendet.
zeichnen = new THREE.CanvasRenderer( { antialias: true } );
//Groesse der Zeichenflaeche
zeichnen.setSize( window.innerWidth / 1.4, window.innerHeight / 1.4 );
//Erzeugtes Canvas Element in den body einfuegen. /
document.getElementById('webGL').appendChild( zeichnen.domElement );
window.addEventListener( 'resize', onWindowResize, true );
render();
}
//Diese Funktion passt die Zeicheflaeche an das Browserfenster an.
function onWindowResize()
{
windowHalfX = window.innerWidth / 1.4;
windowHalfY = window.innerHeight / 1.4;
kamera.aspect = window.innerWidth / window.innerHeight;
kamera.updateProjectionMatrix();
zeichnen.setSize( window.innerWidth / 1.4, window.innerHeight / 1.4 );
render();
}
//Animation
function animate()
{
requestAnimationFrame( animate );
steuerung.update();
}
//Ausgabe der 3D Welt
function render()
{
zeichnen.render( scene, kamera );
}
</script>
Das Resultat dieses Tutorials können Sie sich hier anschauen. Sehen Sie hier kein Blender 3D "MONKEY" unterstützt ihr Browser kein WebGL.
Die Dateien zum nachvollziehen des Tutorials können Sie sich im Download::Bereich herunterladen.


Allgemeine Geschäftsbedingungen
Abonnieren
Melden