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…
“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)
Pour son dixième anniversaire, Skype fait un calcul simple… 1,4 milliards de minutes passées sur Skype =...
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 ».
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.
KeyMe ou la réponse aux problèmes de clés … Quip, le « Word » pour tablettes… UberHype, le réflexe...
Twitter vient de signer un contrat de publicité vidéo assez unique en son genre avec la United...
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.
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.
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 [...]
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.
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 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.
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.
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
Premier épisode de Start Me Up, le programme destiné aux entrepreneurs, avec François Véron, co-fondateur de Newfund,...
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.
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.
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.
Quand on lui demande comment il est arrivé chez Parrot, Mathieu Parisot, 35 ans, fait dans la...
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.
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.
Pour ceux qui ne le savent pas, il existe deux composants HTML5 pour dessiner :
Je ne m’attarderai pas sur ces composants, le web regorge de sujets qui en parlent déjà très bien.
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 :
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 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.
“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 !
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.
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.
On va s’arrêter là pour le moment. Sachez simplement que la librairie permet beaucoup de libertés. Vous pouvez par exemple :
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.
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).
Retrouvez l'intégralité de ce tutoriel multi-pages en ligne
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.
Pour ceux qui ne le savent pas, il existe deux composants HTML5 pour dessiner :
Je ne m’attarderai pas sur ces composants, le web regorge de sujets qui en parlent déjà très bien.
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 :
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 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.
“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 !
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.
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.
On va s’arrêter là pour le moment. Sachez simplement que la librairie permet beaucoup de libertés. Vous pouvez par exemple :
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.
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).
Retrouvez l'intégralité de ce tutoriel multi-pages en ligne
En général, les jeunes pousses cherchent à obtenir des financements importants d’un petit nombre d’investisseurs. Aujourd’hui, le...
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.
Microsoft et American Express cherchent à entrer au capital de Foursquare… Le login Facebook, nouveau must-have des applications…...
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.
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.
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.
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é.
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 groupe de presse ( Vanity Fair, Glamour, GQ …) vient d’investir majoritairement le site e-commerce Vestiaire...
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 !
Une extension pour le navigateur Firefox pour faire des recherches sur plusieurs onglets qui sont ouverts. Des filtres permettent d'affiner ses résultats.
Vainqueur du concours de Startup lors de la dernière édition de LeWeb à Londres, nous profitons de...
Digital Retail Agency. Multichannel Insight, Strategy and Experience Design for ambitious retailers.
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.
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.
Facebook Lors de son introduction en bourse en mai 2012, le réseau social a été valorisé 104...
Lancée après une levée de fonds d’1, 3 millions de dollars par la start-up Driveway Software, cette...
Lancée après une levée de fonds d’1, 3 millions de dollars par la start-up Driveway Software, cette...
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
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.
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.
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 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é.
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.
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 ?
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 […]
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 […]
Free mobile a pris 10% du marché La filiale de téléphonie de Xavier Niel enregistre à date...
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 […]
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.
Vingt-sept levées de fonds ont été réalisées au cours de l’été 2013 dans le secteur de l’internet...
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 […]
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 […]
A jQuery plugin for smooth image exploration.Zoomer is an easy way to add rich, interactive image exploration to any site.
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.
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