Как сделать несколько пикселей бесцветными

У меня есть код, который включает в себя 2 слоя на дисплее, и мне нужно сделать некоторые пиксели переднего слоя бесцветными для появления фоновых пикселей. Я не мог найти способ сделать пиксели невидимыми. В связи с этим я постарался создать лицевой слой по форме. Основная проблема этого решения в том, что оно очень медленное и требует много ресурсов процессора. Мой код в следующем:

import processing.video.*;
import SimpleOpenNI.*;
int[] userMap;
PShape Stencil,pix;
SimpleOpenNI kinect;
 void setup(){
   size(640,480,P2D);
 kinect = new SimpleOpenNI(this);
 kinect.enableDepth();
  kinect.enableUser();
   Stencil=createShape(GROUP);
  }


  void draw(){
     background(255);
  loadPixels();
  kinect.update();
  userMap =null;
  userMap = kinect.userMap();
for (int y=0; y<480; y++) {
      for (int x=0; x<640; x++) {
        int index = x + y * 640;
        if (userMap[index] == 0) {
          pix = createShape(ELLIPSE, x, y,1,1);
  color col=color(0,0,255);
    pix.setFill(col);
  pix.setStroke(false);
 Stencil.addChild(pix);
        }
       }
    }

    shape(Stencil);
} 

Не могли бы вы помочь мне скрыть или сделать некоторые пиксели невидимыми?

1 ответ

Решение

Дайте им цвет с альфа-значением. Просто добавьте 4-й параметр в любую цветовую функцию:

color(0, 0, 0, 0); //transparent
color(0, 0, 0, 128); //half transparent
color(0, 0, 0, 255); //opaque (default)
Другие вопросы по тегам