Pluie de couleur
Résolu/Fermé
MaxBMX17
Messages postés
67
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
20 octobre 2021
-
7 mai 2019 à 19:08
MaxBMX17 Messages postés 67 Date d'inscription vendredi 23 novembre 2018 Statut Membre Dernière intervention 20 octobre 2021 - 11 mai 2019 à 14:48
MaxBMX17 Messages postés 67 Date d'inscription vendredi 23 novembre 2018 Statut Membre Dernière intervention 20 octobre 2021 - 11 mai 2019 à 14:48
A voir également:
- Pluie de couleur
- Excel cellule couleur si condition texte - Guide
- Somme si couleur - Guide
- La boite a couleur - Télécharger - Divers Photo & Graphisme
- Nb si couleur ne fonctionne pas ✓ - Forum Excel
- Changer la couleur de la barre des taches - Guide
4 réponses
jordane45
Messages postés
38371
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 janvier 2025
4 722
Modifié le 8 mai 2019 à 17:47
Modifié le 8 mai 2019 à 17:47
Ce code, copié bêtement du lien que tu nous avais déjà donné.... fonctionne parfaitement.
Si tu as un souci c'est certainement lié à d'autres éléments présents dans ton code (comme déjà indiqué dans une précédente réponse...... ) ou que tu as mal placé le code en question.
Il serait bien de nous coller en UN SEUL bloc TOUT ton code.
Et si tu as plusieurs fichiers.... d'indiquer pour chacun d'eux le nom Exact du fichier et son emplacement sur le disque dur;
Je te remet le code qui fonctionne :
Si tu as un souci c'est certainement lié à d'autres éléments présents dans ton code (comme déjà indiqué dans une précédente réponse...... ) ou que tu as mal placé le code en question.
Il serait bien de nous coller en UN SEUL bloc TOUT ton code.
Et si tu as plusieurs fichiers.... d'indiquer pour chacun d'eux le nom Exact du fichier et son emplacement sur le disque dur;
Je te remet le code qui fonctionne :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>TEST</title> <style> canvas { position: absolute; top: 0; left: 0; background-color: #111; } </style> </head> <body> <canvas id=c></canvas> <script type="text/javascript"> var gl = c.getContext( 'experimental-webgl', { preserveDrawingBuffer: true } ) , w = c.width = window.innerWidth , h = c.height = window.innerHeight , opts = { dropWidth: .5, dropSpacing: 1, dropsParColumn: 3, dropBaseSpeed: .01, dropAddedSpeed: .005, dropAlpha: .6, dropRespawnChance: .1, acc: .1, tickSpeed: 1/360 }; var webgl = {}; webgl.vertexShaderSource = ` attribute vec2 a_pos; uniform vec2 u_res; uniform vec2 u_params; varying float hue; void main(){ gl_Position = vec4( vec2(1,-1) * ( ( ( a_pos + vec2(.5,0) ) / u_res ) * 2. - 1. ), 0, 1 ); hue = u_params.y == 1. ? -1. : ( a_pos.x + a_pos.y * .1 ) / u_res.x + u_params.x; } ` webgl.fragmentShaderSource = ` precision mediump float; varying float hue; void main(){ gl_FragColor = hue == -1. ? vec4( 0, 0, 0, .04 ) : vec4( clamp( abs( mod( hue * 6. + vec3( 0, 4, 2 ), 6. ) - 3. ) -1., 0., 1. ), ${opts.dropAlpha} ); } ` webgl.vertexShader = gl.createShader( gl.VERTEX_SHADER ); gl.shaderSource( webgl.vertexShader, webgl.vertexShaderSource ); gl.compileShader( webgl.vertexShader ); webgl.fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); gl.shaderSource( webgl.fragmentShader, webgl.fragmentShaderSource ); gl.compileShader( webgl.fragmentShader ); webgl.shaderProgram = gl.createProgram(); gl.attachShader( webgl.shaderProgram, webgl.vertexShader ); gl.attachShader( webgl.shaderProgram, webgl.fragmentShader ); gl.linkProgram( webgl.shaderProgram ); gl.useProgram( webgl.shaderProgram ); webgl.posAttribLoc = gl.getAttribLocation( webgl.shaderProgram, 'a_pos' ); webgl.posBuffer = gl.createBuffer(); gl.enableVertexAttribArray( webgl.posAttribLoc ); gl.bindBuffer( gl.ARRAY_BUFFER, webgl.posBuffer ); gl.vertexAttribPointer( webgl.posAttribLoc, 2, gl.FLOAT, false, 0, 0 ); webgl.resUniformLoc = gl.getUniformLocation( webgl.shaderProgram, 'u_res' ); webgl.paramsUniformLoc = gl.getUniformLocation( webgl.shaderProgram, 'u_params' ); gl.viewport( 0, 0, w, h ); gl.uniform2f( webgl.resUniformLoc, w, h ); gl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA ); gl.enable( gl.BLEND ); gl.lineWidth( opts.dropWidth ); webgl.posData = []; webgl.clear = function(){ webgl.posData = [ 0, 0, w, 0, 0, h, 0, h, w, 0, w, h ]; gl.uniform2f( webgl.paramsUniformLoc, 0, 1 ); webgl.draw( gl.TRIANGLES ); webgl.posData.length = 0; } webgl.draw = function( glType ){ gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( webgl.posData ), gl.STATIC_DRAW ); gl.drawArrays( glType, 0, webgl.posData.length / 2 ); } function Drop( x ){ this.x = x; this.reset(); this.y = Math.random() * h; } Drop.prototype.reset = function(){ this.y = 0; this.vy = opts.dropBaseSpeed + opts.dropAddedSpeed * Math.random(); } Drop.prototype.step = function(){ if( this.y > h ){ if( Math.random() < opts.dropRespawnChance ) return this.reset(); else return 0; } var ny = this.y + ( this.vy += opts.acc ); webgl.posData.push( this.x, this.y, this.x, ny ); this.y = ny; } var drops = [] , tick = 0; createDrops(); function createDrops(){ drops.length = 0; for( var i = 0; i < w; i += opts.dropSpacing ){ for( var j = 0; j < opts.dropsParColumn; ++j ) drops.push( new Drop( i ) ); } } function anim(){ window.requestAnimationFrame( anim ); tick += opts.tickSpeed; webgl.clear(); gl.uniform2f( webgl.paramsUniformLoc, tick, 0 ); drops.map( function( drop ){ drop.step(); } ); webgl.draw( gl.LINES ); } anim(); window.addEventListener( 'resize', function(){ w = c.width = window.innerWidth; h = c.height = window.innerHeight; gl.viewport( 0, 0, w, h ); gl.uniform2f( webgl.resUniformLoc, w, h ); createDrops(); }) </script> </body> </html>
jordane45
Messages postés
38371
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 janvier 2025
4 722
7 mai 2019 à 19:33
7 mai 2019 à 19:33
Bonjour,
As tu d'autres choses dans ta page que ce bout de code ?
As tu vidé le cache de ton navigateur ?
As tu essayé avec un autre navigateur ?
As tu des erreurs dans la console de ton navigateur ?
As tu d'autres choses dans ta page que ce bout de code ?
As tu vidé le cache de ton navigateur ?
As tu essayé avec un autre navigateur ?
As tu des erreurs dans la console de ton navigateur ?
MaxBMX17
Messages postés
67
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
20 octobre 2021
1
7 mai 2019 à 19:51
7 mai 2019 à 19:51
Sur ma page, il y a du HTML / CSS.
Sur d'autres navigateurs, le problème reste le même.
Sur d'autres navigateurs, le problème reste le même.
jordane45
Messages postés
38371
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 janvier 2025
4 722
7 mai 2019 à 22:09
7 mai 2019 à 22:09
Sur ma page, il y a du HTML / CSS.
Oui.. mais encore ...??
Ne penses tu pas que si je t'ai posé cette question... c'est peut-être (sûrement...) car cela peut être la cause du souci et par conséquent que nous le montrer pourrait nous aider à te répondre ???
PS: Merci également de ne pas ouvrir la même question 50 fois sur le forum....
MaxBMX17
Messages postés
67
Date d'inscription
vendredi 23 novembre 2018
Statut
Membre
Dernière intervention
20 octobre 2021
1
8 mai 2019 à 17:16
8 mai 2019 à 17:16
Voici le code/animation : https://codepen.io/kyllaz/pen/qGdPvR
<canvas id=c></canvas>
canvas { position: absolute; top: 0; left: 0; background-color: #111; }
var gl = c.getContext( 'experimental-webgl', { preserveDrawingBuffer: true } ) , w = c.width = window.innerWidth , h = c.height = window.innerHeight , opts = { dropWidth: .5, dropSpacing: 1, dropsParColumn: 3, dropBaseSpeed: .01, dropAddedSpeed: .005, dropAlpha: .6, dropRespawnChance: .1, acc: .1, tickSpeed: 1/360 }; var webgl = {}; webgl.vertexShaderSource = ` attribute vec2 a_pos; uniform vec2 u_res; uniform vec2 u_params; varying float hue; void main(){ gl_Position = vec4( vec2(1,-1) * ( ( ( a_pos + vec2(.5,0) ) / u_res ) * 2. - 1. ), 0, 1 ); hue = u_params.y == 1. ? -1. : ( a_pos.x + a_pos.y * .1 ) / u_res.x + u_params.x; } ` webgl.fragmentShaderSource = ` precision mediump float; varying float hue; void main(){ gl_FragColor = hue == -1. ? vec4( 0, 0, 0, .04 ) : vec4( clamp( abs( mod( hue * 6. + vec3( 0, 4, 2 ), 6. ) - 3. ) -1., 0., 1. ), ${opts.dropAlpha} ); } ` webgl.vertexShader = gl.createShader( gl.VERTEX_SHADER ); gl.shaderSource( webgl.vertexShader, webgl.vertexShaderSource ); gl.compileShader( webgl.vertexShader ); webgl.fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); gl.shaderSource( webgl.fragmentShader, webgl.fragmentShaderSource ); gl.compileShader( webgl.fragmentShader ); webgl.shaderProgram = gl.createProgram(); gl.attachShader( webgl.shaderProgram, webgl.vertexShader ); gl.attachShader( webgl.shaderProgram, webgl.fragmentShader ); gl.linkProgram( webgl.shaderProgram ); gl.useProgram( webgl.shaderProgram ); webgl.posAttribLoc = gl.getAttribLocation( webgl.shaderProgram, 'a_pos' ); webgl.posBuffer = gl.createBuffer(); gl.enableVertexAttribArray( webgl.posAttribLoc ); gl.bindBuffer( gl.ARRAY_BUFFER, webgl.posBuffer ); gl.vertexAttribPointer( webgl.posAttribLoc, 2, gl.FLOAT, false, 0, 0 ); webgl.resUniformLoc = gl.getUniformLocation( webgl.shaderProgram, 'u_res' ); webgl.paramsUniformLoc = gl.getUniformLocation( webgl.shaderProgram, 'u_params' ); gl.viewport( 0, 0, w, h ); gl.uniform2f( webgl.resUniformLoc, w, h ); gl.blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA ); gl.enable( gl.BLEND ); gl.lineWidth( opts.dropWidth ); webgl.posData = []; webgl.clear = function(){ webgl.posData = [ 0, 0, w, 0, 0, h, 0, h, w, 0, w, h ]; gl.uniform2f( webgl.paramsUniformLoc, 0, 1 ); webgl.draw( gl.TRIANGLES ); webgl.posData.length = 0; } webgl.draw = function( glType ){ gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( webgl.posData ), gl.STATIC_DRAW ); gl.drawArrays( glType, 0, webgl.posData.length / 2 ); } function Drop( x ){ this.x = x; this.reset(); this.y = Math.random() * h; } Drop.prototype.reset = function(){ this.y = 0; this.vy = opts.dropBaseSpeed + opts.dropAddedSpeed * Math.random(); } Drop.prototype.step = function(){ if( this.y > h ){ if( Math.random() < opts.dropRespawnChance ) return this.reset(); else return 0; } var ny = this.y + ( this.vy += opts.acc ); webgl.posData.push( this.x, this.y, this.x, ny ); this.y = ny; } var drops = [] , tick = 0; createDrops(); function createDrops(){ drops.length = 0; for( var i = 0; i < w; i += opts.dropSpacing ){ for( var j = 0; j < opts.dropsParColumn; ++j ) drops.push( new Drop( i ) ); } } function anim(){ window.requestAnimationFrame( anim ); tick += opts.tickSpeed; webgl.clear(); gl.uniform2f( webgl.paramsUniformLoc, tick, 0 ); drops.map( function( drop ){ drop.step(); } ); webgl.draw( gl.LINES ); } anim(); window.addEventListener( 'resize', function(){ w = c.width = window.innerWidth; h = c.height = window.innerHeight; gl.viewport( 0, 0, w, h ); gl.uniform2f( webgl.resUniformLoc, w, h ); createDrops(); })
Modifié le 8 mai 2019 à 17:41
Mon fichier HTML : "page1.html" / CSS : "JEU.css" / JAVASCRIPT : "test.js"
8 mai 2019 à 17:45
Heu.... ajouté quel code ???
celui que je viens de te poster ??
Ce code là.. c'est le code COMPLET d'une page html.
Tu le prends et tu l'enregistres sous le nom test.html (par exemple) .. puis tu l'ouvres dans ton navigateur.... et ..oh miracle.. ça fonctionne (enfin.. normalement :-) )
Et sinon j'en reviens à ma précédente question....
Me donner le Nom des fichiers c'est bien.....
Me donner leur contenu COMPLET c'est mieux....
Il serait bien également de me préciser sous quel navigateur tu fais tes tests .... Edge ? Chrome ? Firefox ? Opera ? autre ???
8 mai 2019 à 18:16
8 mai 2019 à 19:38
8 mai 2019 à 21:34