2 votes

Aframe: Comment obtenir des pixels à partir du canevas

Je veux lire et traiter les données de pixel rendues en a-frame. J'ai essayé le code ci-dessous

var canvas = document.querySelector('canvas'),
params = {
    preserveDrawingBuffer: true,
},
gl = canvas.getContext('experimental-webgl', params);
var pixels = new Uint8Array(canvas.width * canvas.height * 4);
gl.readPixels(
    0,
    0,
    canvas.width,
    canvas.height,
    WebGLRenderingContext.RGBA,
    WebGLRenderingContext.UNSIGNED_BYTE,
    pixels
    );

Mais le tableau de pixels était laissé à 0, 0, 0, 0 Comment puis-je lire les données de pixel sur le canvas? Je vous serais reconnaissant si vous pouviez répondre à ce problème

1voto

emackey Points 6360

Dans la démo que vous avez postée, trouvez et placez un point d'arrêt sur la ligne qui dit:

    _gl = _context || _canvas.getContext( 'webgl', attributes )

Jetez un œil à attributes, c'est un objet d'options, et parmi d'autres paramètres, il contient cette option:

    preserveDrawingBuffer: false

Bien que votre message d'origine montre que vous définissez manuellement cette option à true, votre option n'a pas été prise en compte dans la démo que vous avez postée. Si vous pouvez faire en sorte que cette option prenne effet, vous devriez pouvoir lire les pixels de retour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X