Я учусь сглаживанию, и лучший способ сделать это — поиграться с обработкой. Моя конечная цель — создать что-то, что имитирует эстетику Возвращение Обры Динн.
На данный момент мой код выполняет 2 вещи:
обнаруживает края и меняет цвет краевых пикселей на белый
полное сглаживание по Байеру (хотя я думаю, что, возможно, я сделал это немного иначе, чем настоящее сглаживание по Байеру. но это не моя проблема, я в порядке). как это есть, и изучаю это самостоятельно).
Проблема, с которой я столкнулся, заключается в том, что пиксели белого края не отображаются. Если я удалю все части сглаживания Байера в функции рисования, она будет рисовать правильно. Однако при байеровском дизеринге оно исчезает. Я чувствую, что это связано с порядком рендеринга, но не могу понять, что мне следует изменить.
До сих пор я пробовал перемещать элементы в функции рисования так, чтобы вся часть изменения ребер происходила в конце функции рисования, а не в начале. Я также попытался добавить оператор if, чтобы любые белые пиксели на img пропускаются при прохождении циклов сглаживания. Может я неправильно загружаю и обновляю пиксели?
PImage img;
color white= color(255);
color black=color(0);
IntList seed;
int starter=0;
int z=0;
int v= 0;
int gCols=0;
int gRows=0;
int [][]gMatrix;
color light= #e5ffff;
color dark= #333319;
float pRound= 0;
float gRound=0;
void setup (){
size (800,500);
img= loadImage("nosferatu.jpg");
noLoop();
img.loadPixels();
seed= new IntList(0,32,8,40,2,34,10,42,48,16,56,24,50,18,58,26,12,44,4,36,14,46,6,38,60,28,52,20,62,30,54,22,3,35,11,43,1,33,9,41,51,19,59,27,49,17,57,25,15,47,7,39,13,45,5,37,63,31,55,23,61,29,53,21);
for (int k=0; k
Подробнее здесь: [url]https://stackoverflow.com/questions/79838187/how-to-prevent-pixels-from-overwriting-each-other-in-processing[/url]
Я учусь сглаживанию, и лучший способ сделать это — поиграться с обработкой. Моя конечная цель — создать что-то, что имитирует эстетику Возвращение Обры Динн. На данный момент мой код выполняет 2 вещи: [list] [*]обнаруживает края и меняет цвет краевых пикселей на белый [*]полное сглаживание по Байеру (хотя я думаю, что, возможно, я сделал это немного иначе, чем настоящее сглаживание по Байеру. но это не моя проблема, я в порядке). как это есть, и изучаю это самостоятельно). [/list] Проблема, с которой я столкнулся, заключается в том, что пиксели белого края не отображаются. Если я удалю все части сглаживания Байера в функции рисования, она будет рисовать правильно. Однако при байеровском дизеринге оно исчезает. Я чувствую, что это связано с порядком рендеринга, но не могу понять, что мне следует изменить. До сих пор я пробовал перемещать элементы в функции рисования так, чтобы вся часть изменения ребер происходила в конце функции рисования, а не в начале. Я также попытался добавить оператор if, чтобы любые белые пиксели на img пропускаются при прохождении циклов сглаживания. Может я неправильно загружаю и обновляю пиксели? [code]PImage img; color white= color(255); color black=color(0); IntList seed; int starter=0; int z=0; int v= 0; int gCols=0; int gRows=0; int [][]gMatrix; color light= #e5ffff; color dark= #333319; float pRound= 0; float gRound=0;
void setup (){ size (800,500); img= loadImage("nosferatu.jpg"); noLoop(); img.loadPixels(); seed= new IntList(0,32,8,40,2,34,10,42,48,16,56,24,50,18,58,26,12,44,4,36,14,46,6,38,60,28,52,20,62,30,54,22,3,35,11,43,1,33,9,41,51,19,59,27,49,17,57,25,15,47,7,39,13,45,5,37,63,31,55,23,61,29,53,21); for (int k=0; k