Estoy tratando de dibujar un campo de estrellas (entre otras cosas) usando p5.js.
Recibo este error cuando creo mi lienzo usando WEBGL, pero el error desaparece cuando no lo uso. Sin embargo, necesito el lienzo para usar WEBGL para otros aspectos del proyecto. Claramente me estoy perdiendo algo aquí.
var CANVAS_SIZE = 600; var starfield; function setup() { createCanvas(CANVAS_SIZE, CANVAS_SIZE, WEBGL); noStroke(); buildStarfield(); // noprotect } function buildStarfield() { starfield = createImage(CANVAS_SIZE,CANVAS_SIZE); starfield.loadPixels(); var starThreshold = 205; //threshold to weed out "less bright" stars for (var i = 0; i < CANVAS_SIZE; i++) { for (var j = 0; j < CANVAS_SIZE; j++) { // generate a noise map on which to base the starfield var c = 255 * noise(0.1 * i, 0.1 * j, random(0,1)); // if c > starThreshold the draw a star else draw empty space if (c>starThreshold) { starfield.set(i, j, color(255,255,255,1)); } else { starfield.set(i, j, color(0,0,0,10)); } } } starfield.updatePixels(); } function draw() { background(starfield); }Aquí es donde estoy probando, si importa:
Cualquier idea de por qué esto createCanvas(CANVAS_SIZE, CANVAS_SIZE); trabajo, pero no createCanvas(CANVAS_SIZE, CANVAS_SIZE, WEBGL); ¿este?
¿Cómo puedo hacer que funcione usando WEBGL?
Puede ser un error temporal con background() y WEBGL .
Mientras eso se arregla, puedes usar:
image(starfield,-starfield.width / 2, -starfield.height / 2); en lugar de background(starfield) para obtener el mismo resultado visual usando WEBGL (funcionará como image(startfield, 0, 0); si no está usando WEBGL )