Les actualités du Lundi 02 septembre 2013 dans les métiers du web - Marmits.com - Reims

Le: 02 09 2013 à 19:45 Framablog Auteur: aKa

La réponse de Rick Falkvinge à la sempiternelle question de la rémunération de la création qui arrive instantanément dans la bouche de certains dès que l’on parle de partage de la culture sur Internet…


Torley - CC by-sa


« Comment faudrait-il payer les artistes ? » n’est pas une question, c’est une insulte.

“How Should Artists Get Paid?” Isn’t a Question, it’s an Insult

Rick Falkvinge - 18 août 2013 - TorrentFreak
(Traduction : raphaelmartin, La goule, farlistener, mathilde, maxlath, Naar, @zessx, AmoK, audionuma, Jeey, GregR, Penguin + anonymes)

Une question revient sans cesse dans le débat sur le partage de la culture et du savoir en violation du monopole sur les droits d’auteur. Mais à bien y réfléchir ce n’est pas tant une question qu’une insulte à tous les artistes.

Nous avons tous entendu les objections face au partage de la culture et du savoir de nombreuses fois : « Comment les artistes seront-ils rémunérés si vous copiez leurs créations sans les rétribuer ? »

Cette question est délirante à plus d’un titre.

Premièrement, les artistes qui sont copiés sont rémunérés, non pas sur les ventes de ces copies mais par d’autres moyens. J’encourage par exemple la copie de mon guide de management Swarmwise, parce que je sais que la diffusion du livre entraîne d’autres formes de revenus. Selon une étude norvégienne, le revenu moyen des musiciens a augmenté de 114% depuis que les gens ont commencé à partager la culture en ligne à une grande échelle. D’autres études confirment cette observation.

Deuxièmement, même s’ils ne sont pas payés, les personnes qui partagent ne portent aucune responsabilité sur le modèle économique des entrepreneurs. C’est ce que deviennent les artistes dès lors qu’ils vont gratter leur guitare dans la cuisine en espérant vendre leurs créations : des entrepreneurs. Les même règles s’appliquent aussi bien à eux qu’à tout autre entrepreneur sur la planète : personne ne leur est redevable d’une vente, ils doivent proposer un produit que quelqu’un veut acheter. Veut. Acheter. Pas d’excuses, rien n’est dû, ce sont juste les affaires.

Troisièmement, nous ne vivons pas dans une économie planifiée. Personne n’est tenu de savoir d’où viendra le salaire d’une autre personne. En Union Soviétique, vous pouviez dire à Vladimir Sklyarov que ses pincements de guitare étaient hautement artistiques (autrement dit que personne ne les aimait) et que son prochain salaire serait versé par le Bureau des Arts Incompréhensibles, mais nous ne vivons pas dans une économie planifiée. Nous vivons dans une économie de marché. Chacun est responsable de son salaire, de trouver un moyen de gagner de l’argent en produisant de la valeur que quelqu’un d’autre veut acheter. Veut. Acheter. Pas d’excuses, rien n’est dû.

Quatrièmement, quand bien même ces entrepreneurs mériteraient de l’argent (comme par enchantement puisqu’en réalité ils ne réalisent concrètement aucune vente), le contrôle de ce que les gens se partagent ne pourrait être concrétisé sans démanteler le secret des correspondances, en surveillant chaque mot communiqué. Or les libertés fondamentales passent toujours avant le profit de qui que ce soit. Nous n’avons jamais déterminé ce que devaient être les libertés individuelles sur la base de qui pourrait en tirer profit et qui ne le pourrait pas.

Mais allons au fond du problème. Ce n’est pas une question, c’est une insulte. Une de celles qui dure depuis aussi longtemps que l’art existe lui-même, du fait que les artistes ont besoin ou même méritent d’être rémunérés. Aucun artiste ne pense en ces termes. Ceux qui le font sont les intermédiaires commerciaux parasites que l’on retrouve défendant le monopole du droit d’auteur, puis laissant les artistes et leurs fans à sec, se frottant les mains sur le chemin de la banque alors qu’ils exploitent impitoyablement un système de monopole légal : le monopole du copyright.

Une insulte qui a existé de tout temps dans l’histoire de l’Art. Une insulte entre artistes qui discrédite l’art de quelqu’un, sous-entendant qu’il ne mérite même pas d’être appelé un artiste. Cette insulte est : « Tu fais ça pour l’argent. »

« Comment doivent-être payés les artistes ? », est une question qui induit que les artistes ne veulent pas jouer ou créer autrement que pour de l’argent, ce qui constitue une insulte très grave.

Il est une raison pour laquelle « se vendre » est un terme fortement négatif en art. Une large majorité des artistes font la gueule quand on leur demande s’ils jouent pour de l’argent ; c’est, je me répète, une insulte grave. L’idée toujours rabâchée qu’on ne crée pas de culture si l’on n’est pas payé en retour vient de ceux qui exploitent les artistes, et jamais des artistes eux-mêmes.

Après tout, si nous créons, ce n’est pas parce que nous pouvons en tirer de l’argent à titre individuel, mais grâce à ce que nous sommes, ce dont nous sommes faits, comment nous sommes connectés. Nous créons depuis que nous avons appris à mettre de la peinture rouge sur les parois des cavernes. Nous sommes des animaux culturels. La culture a toujours fait partie de notre civilisation, qu’elle soit rémunérée ou non.

Si un artiste veut vendre ses biens ou ses services et devenir un entrepreneur, je lui souhaite toute la chance et le succès du monde. Mais les affaires sont les affaires, et il n’y a rien qui assure à un entrepreneur de vendre.

Crédit photo : Torley (Creative Commons By-Sa)

Le: 02 09 2013 à 18:13 FrenchWeb.fr Auteur: Claire Branchereau

Pour son dixième anniversaire, Skype fait un calcul simple… 1,4 milliards de minutes passées sur Skype =...

Le: 02 09 2013 à 17:52 presse-citron.net Auteur: Setra Rkt

Au Vietnam, il est maintenant interdit d’utiliser les réseaux sociaux comme Facebook ou Twitter pour discuter de l’actualité politique. Le décret 72 les réserve à un usage « personnel ».

Le: 02 09 2013 à 17:34 Journal du Net Développeurs

Comment le numérique modifie-t-il les comportements d'achat des cyberacheteuses mères de famille ? Réponses avec "Connected moms", dans la collection JDN Premium.







Le: 02 09 2013 à 17:30 FrenchWeb.fr Auteur: Claire Branchereau

KeyMe ou la réponse aux problèmes de clés … Quip, le « Word  » pour tablettes… UberHype, le réflexe...

Le: 02 09 2013 à 16:41 FrenchWeb.fr Auteur: Marion Moreau

Twitter vient de signer un contrat de publicité vidéo assez unique en son genre avec la United...

Le: 02 09 2013 à 16:34 presse-citron.net Auteur: Setra Rkt

Sony confirme les spéculations concernant la possibilité de commander la console de jeu vidéo PlayStation 4, via le périphérique Eye camera.

Le: 02 09 2013 à 16:31 presse-citron.net Auteur: Axel-Cereloz

IllumiRoom, le projet de réalité augmentée pour Xbox, a été annulé car trop cher. Cette nouvelle nous donne l'occasion de parler du système qui proposait une expérience intéressante.

Le: 02 09 2013 à 16:15 Webdesigner Depot Auteur: Sam Jones

Namebox is a simple service created by designer Drew Wilson to help you sell your unwanted and/or unused web domains. It’s free to use and is built to make listing your domains quick and easy. For those of you that are unfamiliar with Drew and his work, he’s well renowned for building his own products [...]

    


Le: 02 09 2013 à 15:59 visibilite-referencement.fr Auteur: Visibilité référencement

Allez hop les dernières nouvelles concernant le vlc2013. Tout d’abord, l’information à retenir est que les inscriptions fermeront définitivement jeudi 5 septembre 2013 à 14h. Plus aucune, je dis bien aucune inscription ne sera prise après cette date. Pour celles et ceux prétextant ne pas être certains de leurs dispos, je rappelle que les inscrits

lire la suite

The post Votre place au Visibilité Live Camp 2013 offerte !!! appeared first on Visibilité Référencement.

Le: 02 09 2013 à 15:54 presse-citron.net Auteur: Axel-Cereloz

Iliad a annoncé ses résultats pour le premier semestre 2013. Son service Free Mobile représente désormais 10 % des parts du marché de la téléphonie mobile.

Le: 02 09 2013 à 15:09 Journal du Net Développeurs

Le SOA est la recette secrète du développement d’applications mobiles réussi. Reliés de manière souple, les services orientés SOA aident à établir une architecture flexible qui répond aux plus grands défis posés par la mise en œuvre d’applications mobiles pour entreprises.







Le: 02 09 2013 à 15:01 Journal du Net Développeurs

Toutes les nominations du secteur du logiciel et des sociétés de services informatiques. Du mouvement cette semaine chez Qualys, Equinix, BSA - The Software Alliance, A10 Networks et STMicroelectronics.







Le: 02 09 2013 à 14:32 Les dossiers référencement de WebRankInfo Auteur: Olivier Duffez

Référencement (SEO, SEM) et réseaux sociaux : ce qu'il ne fallait pas rater cet été 2013 Les changements d'algo SEO de Google, les nouveautés de GWT, des SERP et d'AdWords, la montée en puissance de Google+ pour le SEO, le nouvel algo de Facebook : lisez cet article pour connaître l'essentiel des infos de l'été […]

Cet article écrit par Olivier Duffez a été publié sur Référencement et réseaux sociaux : résumé de l'été 2013

Le: 02 09 2013 à 14:15 FrenchWeb.fr Auteur: Marion Moreau

Premier épisode de Start Me Up, le programme destiné aux entrepreneurs, avec François Véron, co-fondateur de Newfund,...

Le: 02 09 2013 à 14:14 Journal du Net Développeurs

Jamais l'écart entre Firefox et Safari n'avait été si serré en France. Lancé il y a 5 ans, Chrome est toujours le navigateur numéro 1 en France.

Le: 02 09 2013 à 14:06 Journal du Net Développeurs

Une majorité des développeurs web sont passés à HTML5. Sur le terrain des apps, le modèle natif reste de mise, avec comme cible prioritaire les smartphones. Dixit Forrester.







Le: 02 09 2013 à 13:00 presse-citron.net Auteur: Valentin-Pringuay

Du 16 Septembre au 12 Octobre, 4 start-ups vont s'exposer dans la vitrine d'une boutique située dans le 3ème arrondissement de Paris.

Le: 02 09 2013 à 12:52 FrenchWeb.fr Auteur: Claire Branchereau

Quand on lui demande comment il est arrivé chez Parrot, Mathieu Parisot, 35 ans, fait dans la...

Le: 02 09 2013 à 12:32 Journal du Net Développeurs

Au-delà de tous les effets de marketing, relayés par les différents éditeurs pour la promotion de leurs solutions, le déploiement du Big Data dans les SI reste indéniablement un vrai défi à la fois technologique et organisationnel.







Le: 02 09 2013 à 12:15 Alsacreations.com - Actualités Auteur: moust

Nous avons tous déjà vu des sites de grandes marques nous en mettant plein la vue avec des animations 3D interactives, ou des démonstrations technologiques qui font rêver. On pense ici à quelques berlines allemandes parfaitement modélisées qu’il est possible d’inspecter sous tous ses angles avec un simple mouvement de la souris... Bien souvent développées en Flash avec la librairie Papervision3D ces animations en jettent un max, mais restent dépendantes du plug-in d'Adobe qui est de moins en moins populaire et "incompatible" tablette et smartphone.

Aujourd’hui la tendance est au HTML5 et CSS3, parsemé d’un peu de JavaScript. Ô chance, le W3C et ses contributeurs ont justement prévu de passer par Canvas (qui permet déjà de dessiner dans une page web en 2D) pour exploiter une scène 3D avec les standards du web.

Comment et pour qui ?

Pour ceux qui ne le savent pas, il existe deux composants HTML5 pour dessiner :

  • Canvas, qui permet de faire du dessin bitmap (en pixel)
  • SVG pour le dessin vectoriel, souvent utilisé en cartographie (à l'exception de Google Maps ou OpenStreetMap qui utilisent des mosaïques d'images)

Je ne m’attarderai pas sur ces composants, le web regorge de sujets qui en parlent déjà très bien.

WebGL

Il existe en réalité un troisième composant qui est lui dédié à la 3D, il s’agit de WebGL qui se base sur le standard 3D OpenGL. Il permet d’exploiter les pilotes de la carte graphique et de tirer ainsi profit de l’accélération matérielle, un atout majeur pour des rendus performants de formes et/ou de textures complexes. En gros WebGL permet de générer un rendu 3D calculé par la carte graphique dans votre navigateur. Sous entendu : cette feignasse de carte graphique qui ne sert pas à grand chose pour le rendu d’une page Web va enfin se rendre utile.

Seulement ce qu’il faut savoir, c’est que comme avec beaucoup des nouveautés apportées par HTML5, il y a encore des restrictions liées à l’implémentation de ces standards par les navigateurs.

Ainsi je vais peut-être refroidir les ardeurs de certains; WebGL est supporté par :

  • Firefox à partir de la version 4 ;
  • Chrome à partir de la version 9 ;
  • Safari seulement si activé depuis le menu développement ;
  • Internet Explorer à partir de la version 11 seulement

Les mobiles, souvent soumis à plus de contraintes d'économie d'énergie reconnaissent pour la plupart déjà ces instructions via les moteurs embarqués mais elles sont désactivées par défaut. Et comme ce n’est pas pas très encourageant, mais qu'il y a du mieux depuis que Microsoft s'y est mis, il faut ajouter à cela que certaines cartes graphiques ne supportent pas WebGL. C’est notamment le cas sur certains modèles de Mac. Voir BlacklistsAndWhitelists WebGL (informations de support plus détaillées).

Bon bon bon... alors pourquoi je vous parle de ça si visiblement on ne peux pas encore l’utiliser en production à l’heure actuelle ? Et bien déjà parce que comme beaucoup de choses apportées par HTML5 c’est fun et dans un avenir proche ça deviendra viable en production. Et parce que ça ne fait pas de mal de se faire un peu plaisir avec les nouvelles techno sur des projets innovants. Parce que l’innovation c’est le progrès et que c’est bon pour l’économie !

Et la petite surprise du chef c’est qu’on peut quand même faire un peu de 3D sans WebGL ! Et oui, car la 3D finalement ça reste du dessin 2D auquel on ajoute une perspective (comment ça je simplifie un peu trop ?). De fait, on peut utiliser Canvas et SVG pour dessiner en 3D.

Alors je vous rassure, il n’est pas question de s’amuser à faire des calculs savants à bases de matrices ou autres calculs trigonométriques, il y a des gens très calés en la matières qui nous ont mâché le travail en amont et c’est là que je vais vous parler de la librairie Three.js.

Three.js

La librairie Three.js

Three.js c’est donc une bibliothèque JavaScript qui va nous permettre de faire de la 3D à la même manière que Papervision3D le permettait en ActionScript dans Flash, mais cette fois-ci en ayant recours à la technologie de notre choix pour le rendu. Le même code écrit avec Three.js pourra donc être utilisé avec Canvas (2D) ou WebGL.

Attention cependant, WebGL utilise l’accélération matérielle de la carte graphique, bien plus habile avec les calculs matriciels, ce dont Canvas est incapable. Il y a donc de grosses différences de performances entre l’utilisation des deux technologies. Canvas ne pourra donc être utilisé que pour des rendus relativement simples si l’on ne veut pas voir le navigateur flancher sous la masse de calculs.

Commençons par télécharger la librairie à l’adresse suivante sur le dépôt Github : https://github.com/mrdoob/three.js/ (cliquez sur Download ZIP).

Puis initialisons une page HTML comme vous en avez l’habitude. Dans cette page nous allons inclure la librairie Three.js et ajouter un conteneur dans le body. Et juste avant de fermer le body on ajoute un balise script dans laquelle nous insérerons le code JavaScript pour initialiser notre scène en 3D.

<!doctype html>
<html>
  <head>
    <title>Mon premier rendu 3D avec Three.js</title>
    <meta charset="utf-8">
    <link  href="css/main.css" rel="stylesheet"/>
  </head>
<body>
    
  <div id="container"></div>

  <script src="http://mrdoob.github.com/three.js/build/three.min.js"></script>
  <script type="text/javascript">
  <!-- C'est ici que nous utiliserons Three.js -->
  </script>
</body>
</html>

Nous allons donc initialiser notre scène avec le code suivant :

var renderer, scene, camera, mesh;

init();

function init(){
    // on initialise le moteur de rendu
    renderer = new THREE.WebGLRenderer();

    // si WebGL ne fonctionne pas sur votre navigateur vous pouvez utiliser le moteur de rendu Canvas à la place
    // renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.getElementById('container').appendChild(renderer.domElement);

    // on initialise la scène
    scene = new THREE.Scene();

    // on initialise la camera que l’on place ensuite sur la scène
    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(0, 0, 1000);
    scene.add(camera);
    
    // on créé un  cube au quel on définie un matériau puis on l’ajoute à la scène 
    var geometry = new THREE.CubeGeometry( 200, 200, 200 );
    var material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );

    // on effectue le rendu de la scène
    renderer.render( scene, camera );
}

Ces fonctions ne viennent pas du néant, vous pouvez les retrouver dans la documentation Three.js.

Et là, oh magie, vous devriez voir... un cube rouge s’afficher.

Démonstration

“Tout ça pour ça” me direz-vous ? Oui, mais ce carré est en 3D. Si, si je vous l’assure, et je vais même vous le prouver ! Pour s'en rendre compte, rien de mieux que de le faire tourner sur lui même. On commence par ajouter une fonction animate() qui sera appelée récursivement pour mettre à jours les attributs de l'objet à animer.

function animate(){
    requestAnimationFrame( animate );
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    renderer.render( scene, camera );
}

On ajoute un appel à cette fonction juste après l’appel à la fonction init() précédente, puis nous pouvons maintenant retirer la fonction de rendu dans la fonction init() puisque l’appel se fait maintenant via la fonction animate(). Voilà le code final :

var renderer, scene, camera, mesh;

init();
animate();

function init(){
    // on initialise le moteur de rendu
    renderer = new THREE.WebGLRenderer();

    // si WebGL ne fonctionne pas sur votre navigateur vous pouvez utiliser le moteur de rendu Canvas à la place
    // renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.getElementById('container').appendChild(renderer.domElement);

    // on initialise la scène
    scene = new THREE.Scene();

    // on initialise la camera que l’on place ensuite sur la scène
    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(0, 0, 1000);
    scene.add(camera);
    
    // on créé un  cube au quel on définie un matériau puis on l’ajoute à la scène 
    var geometry = new THREE.CubeGeometry( 200, 200, 200 );
    var material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );
}

function animate(){
    // on appel la fonction animate() récursivement à chaque frame
    requestAnimationFrame( animate );
    // on fait tourner le cube sur ses axes x et y
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    // on effectue le rendu de la scène
    renderer.render( scene, camera );
}

Actualisez la page et vous devriez maintenant voir le cube tourner sur lui même. Félicitations, vous savez maintenant faire une animation en véritable 3D dans votre navigateur !

Démonstration

Textures et éclairage

Une dernière petite étape va consister remplacer notre cube par une sphère et à lui appliquer une texture (image JPEG) que nous allons éclairer avec une lumière directionnelle pour donner un peu de cachet à tout ça.

On va donc remplacer la partie concernant la création du cube par le code suivant :

// on créé la sphère et on lui applique une texture sous forme d’image
var geometry = new THREE.SphereGeometry( 200, 32, 32 );
var material = new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture('metal.jpg', new THREE.SphericalReflectionMapping()), overdraw: true } );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

// on ajoute une lumière blanche
var lumiere = new THREE.DirectionalLight( 0xffffff, 1.0 );
lumiere.position.set( 0, 0, 400 );
scene.add( lumiere );

Et voilà ! Vous avez une sphère métallique qui tourne sur elle même avec un beau reflet lumineux. Consultez le code source de la démonstration pour bien visualiser les différentes parties entrant en jeu.

Démonstration

Attention, désormais pour des contraintes de sécurité, certaines opérations 3D et notamment le chargement d'images de textures imposent de consulter les pages en mode http:// et non pas en local sur votre disque (file://). Consultez la console JavaScript pour vérifier s'il y a des bugs.

Conclusion

On va s’arrêter là pour le moment. Sachez simplement que la librairie permet beaucoup de libertés. Vous pouvez par exemple :

  • charger des objets 3D modélisés avec votre logiciel de modélisation 3D préféré (3DS Max, Maya, Blender...) et exportés au format Collada pour les importer dans votre scène et les animer ensuite.
  • brancher des événements JavaScript clavier/souris (onclick, onkeypress...) pour piloter la vue 3D
  • exploiter l'API Gamepad pour contrôler vos jeux avec une manette de jeu, ou bien encore Pointer Lock pour la souris.

Techniquement il est tout à fait possible de faire un jeux vidéo 3D complet comme Doom ou Quake 2.

On peut d'ailleurs citer l'excellent travail de Thibaut Despoulain qui a réalisé un superbe jeu de course du nom de HexGL avec Three.js et HTML5.

HexGL

Soyons fous, il serait envisageable de texturiser un objet 3D avec un vidéo via l’API Video de HTML5 qui pourrait elle même se baser sur l’API WebRTC et la méthode getUserMedia() pour capturer la webcam de l’utilisateur (Quelle est l'utilité de faire ça ? Je n'en sais rien mais c'est un bon exemple de la complémentarité des nouveaux composants de HTML5).

Plus loin

Retrouvez l'intégralité de ce tutoriel multi-pages en ligne

Le: 02 09 2013 à 12:15 Alsacreations.com - Apprendre Auteur: moust

Nous avons tous déjà vu des sites de grandes marques nous en mettant plein la vue avec des animations 3D interactives, ou des démonstrations technologiques qui font rêver. On pense ici à quelques berlines allemandes parfaitement modélisées qu’il est possible d’inspecter sous tous ses angles avec un simple mouvement de la souris... Bien souvent développées en Flash avec la librairie Papervision3D ces animations en jettent un max, mais restent dépendantes du plug-in d'Adobe qui est de moins en moins populaire et "incompatible" tablette et smartphone.

Aujourd’hui la tendance est au HTML5 et CSS3, parsemé d’un peu de JavaScript. Ô chance, le W3C et ses contributeurs ont justement prévu de passer par Canvas (qui permet déjà de dessiner dans une page web en 2D) pour exploiter une scène 3D avec les standards du web.

Comment et pour qui ?

Pour ceux qui ne le savent pas, il existe deux composants HTML5 pour dessiner :

  • Canvas, qui permet de faire du dessin bitmap (en pixel)
  • SVG pour le dessin vectoriel, souvent utilisé en cartographie (à l'exception de Google Maps ou OpenStreetMap qui utilisent des mosaïques d'images)

Je ne m’attarderai pas sur ces composants, le web regorge de sujets qui en parlent déjà très bien.

WebGL

Il existe en réalité un troisième composant qui est lui dédié à la 3D, il s’agit de WebGL qui se base sur le standard 3D OpenGL. Il permet d’exploiter les pilotes de la carte graphique et de tirer ainsi profit de l’accélération matérielle, un atout majeur pour des rendus performants de formes et/ou de textures complexes. En gros WebGL permet de générer un rendu 3D calculé par la carte graphique dans votre navigateur. Sous entendu : cette feignasse de carte graphique qui ne sert pas à grand chose pour le rendu d’une page Web va enfin se rendre utile.

Seulement ce qu’il faut savoir, c’est que comme avec beaucoup des nouveautés apportées par HTML5, il y a encore des restrictions liées à l’implémentation de ces standards par les navigateurs.

Ainsi je vais peut-être refroidir les ardeurs de certains; WebGL est supporté par :

  • Firefox à partir de la version 4 ;
  • Chrome à partir de la version 9 ;
  • Safari seulement si activé depuis le menu développement ;
  • Internet Explorer à partir de la version 11 seulement

Les mobiles, souvent soumis à plus de contraintes d'économie d'énergie reconnaissent pour la plupart déjà ces instructions via les moteurs embarqués mais elles sont désactivées par défaut. Et comme ce n’est pas pas très encourageant, mais qu'il y a du mieux depuis que Microsoft s'y est mis, il faut ajouter à cela que certaines cartes graphiques ne supportent pas WebGL. C’est notamment le cas sur certains modèles de Mac. Voir BlacklistsAndWhitelists WebGL (informations de support plus détaillées).

Bon bon bon... alors pourquoi je vous parle de ça si visiblement on ne peux pas encore l’utiliser en production à l’heure actuelle ? Et bien déjà parce que comme beaucoup de choses apportées par HTML5 c’est fun et dans un avenir proche ça deviendra viable en production. Et parce que ça ne fait pas de mal de se faire un peu plaisir avec les nouvelles techno sur des projets innovants. Parce que l’innovation c’est le progrès et que c’est bon pour l’économie !

Et la petite surprise du chef c’est qu’on peut quand même faire un peu de 3D sans WebGL ! Et oui, car la 3D finalement ça reste du dessin 2D auquel on ajoute une perspective (comment ça je simplifie un peu trop ?). De fait, on peut utiliser Canvas et SVG pour dessiner en 3D.

Alors je vous rassure, il n’est pas question de s’amuser à faire des calculs savants à bases de matrices ou autres calculs trigonométriques, il y a des gens très calés en la matières qui nous ont mâché le travail en amont et c’est là que je vais vous parler de la librairie Three.js.

Three.js

La librairie Three.js

Three.js c’est donc une bibliothèque JavaScript qui va nous permettre de faire de la 3D à la même manière que Papervision3D le permettait en ActionScript dans Flash, mais cette fois-ci en ayant recours à la technologie de notre choix pour le rendu. Le même code écrit avec Three.js pourra donc être utilisé avec Canvas (2D) ou WebGL.

Attention cependant, WebGL utilise l’accélération matérielle de la carte graphique, bien plus habile avec les calculs matriciels, ce dont Canvas est incapable. Il y a donc de grosses différences de performances entre l’utilisation des deux technologies. Canvas ne pourra donc être utilisé que pour des rendus relativement simples si l’on ne veut pas voir le navigateur flancher sous la masse de calculs.

Commençons par télécharger la librairie à l’adresse suivante sur le dépôt Github : https://github.com/mrdoob/three.js/ (cliquez sur Download ZIP).

Puis initialisons une page HTML comme vous en avez l’habitude. Dans cette page nous allons inclure la librairie Three.js et ajouter un conteneur dans le body. Et juste avant de fermer le body on ajoute un balise script dans laquelle nous insérerons le code JavaScript pour initialiser notre scène en 3D.

<!doctype html>
<html>
  <head>
    <title>Mon premier rendu 3D avec Three.js</title>
    <meta charset="utf-8">
    <link  href="css/main.css" rel="stylesheet"/>
  </head>
<body>
    
  <div id="container"></div>

  <script src="http://mrdoob.github.com/three.js/build/three.min.js"></script>
  <script type="text/javascript">
  <!-- C'est ici que nous utiliserons Three.js -->
  </script>
</body>
</html>

Nous allons donc initialiser notre scène avec le code suivant :

var renderer, scene, camera, mesh;

init();

function init(){
    // on initialise le moteur de rendu
    renderer = new THREE.WebGLRenderer();

    // si WebGL ne fonctionne pas sur votre navigateur vous pouvez utiliser le moteur de rendu Canvas à la place
    // renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.getElementById('container').appendChild(renderer.domElement);

    // on initialise la scène
    scene = new THREE.Scene();

    // on initialise la camera que l’on place ensuite sur la scène
    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(0, 0, 1000);
    scene.add(camera);
    
    // on créé un  cube au quel on définie un matériau puis on l’ajoute à la scène 
    var geometry = new THREE.CubeGeometry( 200, 200, 200 );
    var material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );

    // on effectue le rendu de la scène
    renderer.render( scene, camera );
}

Ces fonctions ne viennent pas du néant, vous pouvez les retrouver dans la documentation Three.js.

Et là, oh magie, vous devriez voir... un cube rouge s’afficher.

Démonstration

“Tout ça pour ça” me direz-vous ? Oui, mais ce carré est en 3D. Si, si je vous l’assure, et je vais même vous le prouver ! Pour s'en rendre compte, rien de mieux que de le faire tourner sur lui même. On commence par ajouter une fonction animate() qui sera appelée récursivement pour mettre à jours les attributs de l'objet à animer.

function animate(){
    requestAnimationFrame( animate );
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    renderer.render( scene, camera );
}

On ajoute un appel à cette fonction juste après l’appel à la fonction init() précédente, puis nous pouvons maintenant retirer la fonction de rendu dans la fonction init() puisque l’appel se fait maintenant via la fonction animate(). Voilà le code final :

var renderer, scene, camera, mesh;

init();
animate();

function init(){
    // on initialise le moteur de rendu
    renderer = new THREE.WebGLRenderer();

    // si WebGL ne fonctionne pas sur votre navigateur vous pouvez utiliser le moteur de rendu Canvas à la place
    // renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.getElementById('container').appendChild(renderer.domElement);

    // on initialise la scène
    scene = new THREE.Scene();

    // on initialise la camera que l’on place ensuite sur la scène
    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(0, 0, 1000);
    scene.add(camera);
    
    // on créé un  cube au quel on définie un matériau puis on l’ajoute à la scène 
    var geometry = new THREE.CubeGeometry( 200, 200, 200 );
    var material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );
}

function animate(){
    // on appel la fonction animate() récursivement à chaque frame
    requestAnimationFrame( animate );
    // on fait tourner le cube sur ses axes x et y
    mesh.rotation.x += 0.01;
    mesh.rotation.y += 0.02;
    // on effectue le rendu de la scène
    renderer.render( scene, camera );
}

Actualisez la page et vous devriez maintenant voir le cube tourner sur lui même. Félicitations, vous savez maintenant faire une animation en véritable 3D dans votre navigateur !

Démonstration

Textures et éclairage

Une dernière petite étape va consister remplacer notre cube par une sphère et à lui appliquer une texture (image JPEG) que nous allons éclairer avec une lumière directionnelle pour donner un peu de cachet à tout ça.

On va donc remplacer la partie concernant la création du cube par le code suivant :

// on créé la sphère et on lui applique une texture sous forme d’image
var geometry = new THREE.SphereGeometry( 200, 32, 32 );
var material = new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture('metal.jpg', new THREE.SphericalReflectionMapping()), overdraw: true } );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

// on ajoute une lumière blanche
var lumiere = new THREE.DirectionalLight( 0xffffff, 1.0 );
lumiere.position.set( 0, 0, 400 );
scene.add( lumiere );

Et voilà ! Vous avez une sphère métallique qui tourne sur elle même avec un beau reflet lumineux. Consultez le code source de la démonstration pour bien visualiser les différentes parties entrant en jeu.

Démonstration

Attention, désormais pour des contraintes de sécurité, certaines opérations 3D et notamment le chargement d'images de textures imposent de consulter les pages en mode http:// et non pas en local sur votre disque (file://). Consultez la console JavaScript pour vérifier s'il y a des bugs.

Conclusion

On va s’arrêter là pour le moment. Sachez simplement que la librairie permet beaucoup de libertés. Vous pouvez par exemple :

  • charger des objets 3D modélisés avec votre logiciel de modélisation 3D préféré (3DS Max, Maya, Blender...) et exportés au format Collada pour les importer dans votre scène et les animer ensuite.
  • brancher des événements JavaScript clavier/souris (onclick, onkeypress...) pour piloter la vue 3D
  • exploiter l'API Gamepad pour contrôler vos jeux avec une manette de jeu, ou bien encore Pointer Lock pour la souris.

Techniquement il est tout à fait possible de faire un jeux vidéo 3D complet comme Doom ou Quake 2.

On peut d'ailleurs citer l'excellent travail de Thibaut Despoulain qui a réalisé un superbe jeu de course du nom de HexGL avec Three.js et HTML5.

HexGL

Soyons fous, il serait envisageable de texturiser un objet 3D avec un vidéo via l’API Video de HTML5 qui pourrait elle même se baser sur l’API WebRTC et la méthode getUserMedia() pour capturer la webcam de l’utilisateur (Quelle est l'utilité de faire ça ? Je n'en sais rien mais c'est un bon exemple de la complémentarité des nouveaux composants de HTML5).

Plus loin

Retrouvez l'intégralité de ce tutoriel multi-pages en ligne

Le: 02 09 2013 à 11:58 FrenchWeb.fr Auteur: La rédaction

En général, les jeunes pousses cherchent à obtenir des financements importants d’un petit nombre d’investisseurs. Aujourd’hui, le...

Le: 02 09 2013 à 11:57 presse-citron.net Auteur: Setra Rkt

Kim Dotcom, le fondateur de Megaupload et de Mega compte fonder un parti politique en Nouvelle Zélande. Le lancement est prévu avoir lieu au mois de janvier.

Le: 02 09 2013 à 11:52 FrenchWeb.fr Auteur: Claire Branchereau

Microsoft et American Express cherchent à entrer au capital de Foursquare… Le login Facebook, nouveau must-have des applications…...

Le: 02 09 2013 à 11:47 presse-citron.net Auteur: Axel-Cereloz

Après Yahoo Music et Yahoo Mail, c'est le portail Yahoo qui n'est plus accessible aux internautes Chinois. Cette décision fait suite à des accords passés entre la société américaine et le groupe chinois Alibaba.

Le: 02 09 2013 à 11:47 Journal du Net Développeurs

Légale depuis plus de dix ans, la signature électronique peine encore à séduire la grande majorité des entreprises françaises. Une méconnaissance du sujet et un manque d’harmonisation du cadre réglementaire en sont les principaux freins.







Le: 02 09 2013 à 11:44 Journal du Net Développeurs

Pour l'ouverture de son bureau dans l'Hexagone, le cofondateur de Pinterest explique l'importance de la France dans la stratégie du site et évoque ses projets.

Le: 02 09 2013 à 11:19 Journal du Net Développeurs

L'explosion du Big Data se confirme. Les projections de croissance pour les années à venir s'envolent. Le point avec les principaux indicateurs du marché.







Le: 02 09 2013 à 11:15 Webdesigner Depot Auteur: Carrie Cousins

It is easy to say that 2013 has so far been the year of flat design. Even Apple, the driver of the skeuomorphic design trend for many years, is trying some level of flat design when it releases iOS 7 later this year. So are you ready to try it out as well? Not sure [...]

    


Le: 02 09 2013 à 11:11 FrenchWeb.fr Auteur: Marion Moreau

Le groupe de presse ( Vanity Fair, Glamour, GQ …) vient d’investir majoritairement le site e-commerce Vestiaire...

Le: 02 09 2013 à 11:11 Journal du Net Développeurs

C’en est fini des systèmes Unix propriétaires et des infrastructures IT qui enchaînaient les entreprises à leur fournisseur. L’heure est au Cloud !

Le: 02 09 2013 à 11:08 ballajack.com Auteur: Ballajack

Une extension pour le navigateur Firefox pour faire des recherches sur plusieurs onglets qui sont ouverts. Des filtres permettent d'affiner ses résultats.

Le: 02 09 2013 à 11:00 FrenchWeb.fr Auteur: Richard Menneveux

Vainqueur du concours de Startup lors de la dernière édition de LeWeb à Londres, nous profitons de...

Le: 02 09 2013 à 10:56 cssdesignawards.com

Digital Retail Agency. Multichannel Insight, Strategy and Experience Design for ambitious retailers.

Le: 02 09 2013 à 10:50 WebdesignerNews Auteur: Cameron

Audobox is a tool that lets you collect audio feedback from your mobile app’s users, providing a better, less frustrating user experience. It’s super easy to set up: just add the library, add three lines of code, and you’re done.

Le: 02 09 2013 à 10:47 presse-citron.net Auteur: Axel-Cereloz

Les fans de MegaMan seront heureux d'apprendre qu'une suite spirituelle du jeu pourrait bien voir le jour grâce à un financement participatif sur Kickstarter qui dépasse les 800.000 $ en trois jours.

Le: 02 09 2013 à 10:21 FrenchWeb.fr Auteur: La rédaction

Facebook Lors de son introduction en bourse en mai 2012, le réseau social a été valorisé 104...

Le: 02 09 2013 à 10:16 blogduwebdesign.com Auteur: Vincent Ginet

Le: 02 09 2013 à 10:14 FrenchWeb.fr Auteur: Claire Branchereau

Lancée après une levée de fonds d’1, 3 millions de dollars par la start-up Driveway Software, cette...

Le: 02 09 2013 à 10:14 FrenchWeb.fr Auteur: Claire Branchereau

Lancée après une levée de fonds d’1, 3 millions de dollars par la start-up Driveway Software, cette...

Le: 02 09 2013 à 10:00 presse-citron.net Auteur: Eric

La sélection des dernières offres d’emploi du web de Presse-citron Jobs, en partenariat avec Remix jobs. Développeur Frontend / Intégrateur Web H/F Technicien Systèmes & Réseaux H/F Développeur PHP/MySql – H/F Ingénieur développeur PHP en startup internationale H/F Assistant Community Manager H/F Gestionnaire Qualité / Chargé support client H/F Développement PHP H/F Social Marketing Advocate

Le: 02 09 2013 à 09:58 ballajack.com Auteur: Ballajack

Un programme gratuit en français pour les smartphones Android pour simuler le fonctionnement d'un podomètre automatique ou manuel sur son téléphone portable.

Le: 02 09 2013 à 09:40 presse-citron.net Auteur: Axel-Cereloz

A deux jours de son annonce officielle, la future montre intelligente de Samsung semble se révéler à travers des fuites qui nous dévoilent son design et ses caractéristiques.

Le: 02 09 2013 à 09:30 korben.info Auteur: Korben

Voici un truc sympa à faire avec Excel pour convertir une photo en document XLS. Le site s'appelle Pixel Spreadsheet transformera automatiquement une photo en une série de pixels Rouges Verts et Bleus (RVB), ce qui quand on zoom fait très mal aux yeux... .... mais lorsqu'on prend un peu de recul, permet de découvrir […]

Le: 02 09 2013 à 09:14 lafermeduweb.net Auteur: DJo

SlimerJS est un outil permettant d'automatiser / programmer une navigation afin de réaliser divers tests ou automatisations.

Le: 02 09 2013 à 09:07 presse-citron.net Auteur: Setra Rkt

Le numéro 1 des réseaux sociaux n’en finit plus avec les nouvelles fonctionnalités. Celui-ci serait en train de tester le « trending » sur le fil d’actualité.

Le: 02 09 2013 à 09:06 ballajack.com Auteur: Ballajack

Une extension pour Firefox qui affiche un bandeau rouge incitatif en haut de l'écran quand on se rend sur certains sites Web. Les messages et les sites sont configurables.

Le: 02 09 2013 à 09:05 webappers.com Auteur: Ray Cheung

Advertise here via BSA

Dripicons is a set of 84 free icons that you can use for your projects or apps. Available formats: PSD, AI, EPS, PDF, SVG, Webfont. Dripicons was created for my personal use, however Amit Jakhu thought some of you might find it useful; therefore he has released it completely for free with no restrictions on [...]

Sponsors

Professional Web Icons for Your Websites and Applications

Le: 02 09 2013 à 09:04 presse-citron.net Auteur: Setra Rkt

Selon des révélations, Google aurait fait l’acquisition du constructeur de montres intelligentes WIMM, il y a un an. Est-ce pour la production de son propre hardware sous Android ?

Le: 02 09 2013 à 09:03 webappers.com Auteur: Ray Cheung

Advertise here via BSA

RandomUser is an API that provides you with a randomly generated user. These users can be used as placeholders in web mockups, and will save you time from creating your own placeholder information. You can use AJAX or another method to ask RandomUser for a randomly generated user easily. RandomUser gives you a couple ways [...]

Sponsors

Professional Web Icons for Your Websites and Applications

Le: 02 09 2013 à 08:56 CreativeJuiz blog Auteur: Geoffrey

L’élément progress en HTML5 permet de visualiser l’avancement d’une tâche. C’est un élément encore assez méconnu mais qui peut être pratique dans quelques cas où vous avez besoin de permettre à l’utilisateur de visualiser une évolution ou un stade précis dans un processus. Voyons comment l’intégrer et styler cet élément. Quelques exemples d’utilisation Avant de […]

Le: 02 09 2013 à 08:54 korben.info Auteur: Korben

Chers amis, bonjour ! C'est enfin la rentrée ! Je suis donc de retour après un petit mois de vacances où je vous ai contraint à un régime d'un article par jour en moyenne. Apparemment, ça a plutôt bien fonctionné puisque personne ne m'a envoyé de mails d'insultes à ce sujet ;-) . Pendant ce […]

Le: 02 09 2013 à 08:31 FrenchWeb.fr Auteur: Marion Moreau

Free mobile a pris 10% du marché La filiale de téléphonie de Xavier Niel enregistre à date...

Le: 02 09 2013 à 08:30 line25.com Auteur: Chris Spooner

I only recently discovered the power of WordPress custom post types and found some really useful resources while I was learning the basics of how they work. If you’re looking to learn all about the potential of custom post types yourself, this post rounds up the best tutorials, guides, generators and plugins to give you […]

Le: 02 09 2013 à 08:09 Journal du Net Développeurs

Pour l'ouverture de son bureau dans l'Hexagone, le cofondateur de Pinterest explique l'importance de la France dans la stratégie du site et évoque ses projets.

Le: 02 09 2013 à 07:50 FrenchWeb.fr Auteur: Claire Branchereau

Vingt-sept levées de fonds ont été réalisées au cours de l’été 2013 dans le secteur de l’internet...

Le: 02 09 2013 à 06:56 jqueryrain.com Auteur: Admin

Vanillabox is a simple, modern Lightbox-like plugin for jQuery. You can easily setup your image gallery with this plugin. Features: Simple design, no decoration. It focuses your content. Suitable for modern browsers […]

Le: 02 09 2013 à 06:50 jqueryrain.com Auteur: Admin

jElevator is a jQuery plugin that allows webmasters to enhance the navigation of their blog, news, and other content-rich websites. Providing users with scroll-to-top, scroll-to-bottom, and sections menu functionality, jElevator […]

Le: 02 09 2013 à 06:40 jqueryrain.com Auteur: Admin

A jQuery plugin for smooth image exploration.Zoomer is an easy way to add rich, interactive image exploration to any site.

Le: 02 09 2013 à 06:00 designm.ag Auteur: Jake Rocheleau

Advertise here with BSA


This original tutorial was created by Soh Tanaka and published back in 2009. Unfortunately his demo has since gone offline and I managed to find an old copy of the source codes. People in the comments have been asking for automatic rotation between the slides and I updated the codes with this feature.

So in this tutorial I am reintroducing some of Soh's original codes on how to build this dynamic automatic rotator. The jQuery is contained within the same index file and it is easy to follow along. It should also work even running the latest copy of jQuery on your website. Feel free to download a copy of the updated source codes or check out my live demo from the links below.

jquery image rotator tutorial preview screenshot


Advertise here with BSA

Le: 02 09 2013 à 05:56 WebdesignerTrends Auteur: WDTrends

L’été est synonyme de vacances et de repos, mais comme vous le savez le digital ne dort jamais. Je vous propose un retour sur les sites marquants de ce mois d’août 2013. Comme chaque mois depuis octobre 2009, la série … Continuer la lecture