Kleng Erënnerung, wat ass WebGL?
WebGL ass eng HTML5 Grafik API déi et erlaabt fir 3D direkt am Browser iwwer de Canvas Tag ze weisen. Et kënnt aus den OpenGL ES 2.0, et ass sËnnerstëtzt vun all modernen Browser.

Wéi maachen ech WebGL? Oder wéi gutt ufänken
Dräi.js, "Eng JavaScript 3D Bibliothéik déi WebGL méi einfach mécht"
- Déi meescht benotzt an dokumentéiert Open Source Bibliothéik fir WebGL ze maachen
- Erstellt vum Ricardo Cabello aka mr Doub
- github: v74 (v1 > 2010); kucken 1 / Stär 572 / Gabel 23
- Rendert am WebGL… + CSS3D eng & SVG fir "al" Browser / Handyen.
- Features: Szenen, Kameraen, Geometrie, 3D Modelllader, Luuchten, Materialien, Partikel, Animatioun, Shaders ...
Shaders ? Kesako?
Shaders si wéi "Spezialeffekter" déi Material a Faarf erstellen oder änneren (wierklech genial). Et ass a glsl geschriwwen (OpenGL Shading Language, gesäit aus wéi C).
Three.js an der Produktioun
Mir kënne gesinn datt three.js haaptsächlech an der Produktioun benotzt gëtt fir Event Websäiten, experimentell Siten, Showcase Sites mat 360° Produkter a Spiller:
[youtube https://www.youtube.com/watch?v=toHboGrzjO4&w=560&h=315]
[youtube https://www.youtube.com/watch?v=DgPv6IIVDFQ&w=560&h=315]
Three.js an der Praxis

Bedenkt datt d'Liicht wéi och d'Meshes (Objeten) an d'Kamera an der Szen abegraff sinn an déi lescht gëtt am "Rendering Engine" mat der Kamera abegraff. Am Code gëtt dëst zum Beispill en einfache Kubus deen sech selwer mécht:
//using jade ;)
doctype html // html5 doctype
html
head
title Basic Three.js App
style
html, body { margin: 0; padding: 0; overflow: hidden; }
body
script(src="js/three.min.js")
script
// Init scene & camera
var scene = new THREE.Scene();
var aspect = window.innerWidth / window.innerHeight;
var camera = new THREE.PerspectiveCamera( 75, aspect, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
// Add cube
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshNormalMaterial();
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
camera.position.z = 5;
// Add animation
var render = function () {
requestAnimationFrame( render );
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render( scene, camera );
};
render();
E puer Linken fir three.js
- learningthreejs.com, vum Jérôme Etienne
- Tutorials
- Plugins: THREEx
- IRC: freenode> three.js
PS: Wousst Dir datt mir Three.js benotzt hunn de Kalenner viraus 🙂
Hervé Chaissac, UX-Scientist @UXRepublic
(Biller vum David Scottlyons)
