Fading CurveVertex () тянется, используя значение непрозрачности фона, не работает - PullRequest
1 голос
/ 02 февраля 2020

Использование FX2D.

Привет, в настоящее время я рисую линию в каждом кадре, используя функцию curveVertex (). Каждая линия остается на эскизе добровольно, не сбрасывая фон на каждом шаге, что оставляет эффект следа.

Но я бы хотел, чтобы эти следы со временем исчезали. Я попытался сбросить фон в функции draw (), присвоив ему небольшое значение непрозрачности, но он очищает все трейлы одновременно.

Сейчас у меня могут быть только все трейлы или нет трейлов.

  //background(0, 0, 0, 10); // Reset background every time
  stroke(255, 255, 255, 10); // Draw Line between all nodes
  curveVertex(nodes.get(fixId(i)).position.x, nodes.get(fixId(i)).position.y);

со следами

1 Ответ

1 голос
/ 02 февраля 2020

background() не просто устанавливает цвет фона, он очищает все окно. Он не предназначен для использования background в beginShape() / endShape() последовательностях.

Что можно сделать, нарисовав rect() с blendMode(DIFFERENCE) во всем окне, в начале кадра. Например:

void draw() {

    // "fade" the entire view 
    blendMode(DIFFERENCE);
    fill(1, 1, 1, 255);
    rect(0, 0, width, height);

    blendMode(ADD);

    // draw shape
    // [...]

}

См. также ответ на Обработка - рендеринг фигур .

...