После многих лет работы с Processing IDE я слишком скучал по Intellij IDEA, поэтому вернулся к ней, но Processing остался :wink:
Однако нарисованные фигуры менее четкие, чем в реальном PDE, например, простой круг визуализируется по-разному, используя как последнюю доступную версию Processing 4.1.2, Java 17, тот же ПК и тот же монитор:
В ПДЭ:
public void setup() {
size(500, 500);
}
public void draw() {
background(40);
noStroke();
fill(255);
circle(width/2, height/2, 400);
saveFrame("./PDE.png");
noLoop();
}
и результат:
Однако с Intellij:
import processing.core.PApplet;
public class Main extends PApplet {
public void settings() {
size(500, 500);
}
public void draw() {
background(40);
noStroke();
fill(255);
circle(width/2, height/2, 400);
saveFrame("Intellij IDEA.png");
noLoop();
}
public static void main(String... args) {
Main pt = new Main();
PApplet.runSketch(new String[]{"testRendering"}, pt);
}
}
saveFrame() точно такой же, как и в Processing IDE, но реальный вид в скетче:
Я предполагаю, что это проблема рендерера, но я не могу изменить его, например, с помощью fullScreen(P2D)
, потому что он выдает ошибки.
Единственное решение, которое я нашел, - это использование Maven, но я не такой, поэтому я бы предпочел найти решение своей проблемы.
@Mruk У меня тоже нет проблем с IDE обработки… Думаю, настройки экрана не виноваты
IDE Processing игнорирует глобальные настройки Windows. Просто сделайте тест, как оно в Идее и напишите нам заключение.
Ок я этого не знал! Я попробую, я просто предположил, что это не так, потому что 2 изображения имеют одинаковый размер, хотя одно было получено через Intellij, а другое - с помощью Processing IDE.
У меня действительно масштабирование пользовательского интерфейса 1,25 в Windows, и установка его на 100% заставляет работать сглаживание! Однако можно ли поставить 100% только в Intellij и не повлиять на остальную часть моей Windows?
Кстати, где в структуре проекта вы импортировали processing.core?
Я импортировал Processing/core/library на вкладке библиотеки в структуре проекта, все компилируется, и импорт в моем коде хорошо распознается
Хорошо, вот рабочее решение для вашего вопроса: -Dsun.java2d.uiScale=1.0 (stackoverflow.com/a/48623068/4885365)
Эта проблема возникает из-за того, что окно масштабируется (в соответствии с настройками масштабирования Windows), но его содержимое не отображается в более высоком разрешении (отсюда и «зазубрины»).
Это проблема только с рендерером по умолчанию (Java AWT). Исправить это:
System.setProperty("sun.java2d.uiScale", "1")
перед PApplet.runSketch()
-- это предотвратит масштабирование окна.Альтернативным решением является использование средства визуализации JavaFX (size(500, 500, FX2D)
), которое, похоже, ведет себя правильно (контент отображается с более высоким разрешением).
Однако, если масштабирование с высоким разрешением не требуется с помощью средства визуализации FX2D
, вы можете вызвать System.setProperty("prism.allowhidpi", "false")
, чтобы отключить его.
Проверьте, есть ли у вас масштабирование пользовательского интерфейса 1.25 в настройках экрана Windows?