processing / processing/processing4

Double precision support for all fundamental geometry classes (PShape, PVector ...)

Ouverte
#893 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement help wanted
Langage dominant
Java
Étoiles
494
Forks
183
Merge moyen
4 h 39 min
PR mergées (30 j)
3

Description

Relevant sub-area for this feature?

Core/Environment/Rendering

Feature description

When using PShape and PVector calculations alongside with native Path2D.Double objects (using various conversions) there are obvious, randomly appeared but systematic rendering artifacts - rounding errors (same result when using same parameter values) upon all kinds of calculations, transformations etc. With all that CPU processing power around, I guess there is no practical reason of not adding Double coordinate support for all classes without braking compatibility with existing projects.

Benefits

Use PShape and PVector classes alongside with other classes that support natively double precision coordinates like Path2D without precision errors. Future proof Processing projects.

Possible challenges

I do not have a clue what might be the impact in codebase. I guess there should be a compatibility code care for all existing projects and default will be Float.

Additional context

An Article about the precision artifacts: https://blog.generativedarkroom.com/why-i-switched-from-processing-to-openrndr-b50c931d21ae

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencer par examiner les classes PShape et PVector et comparer leurs chemins de coordonnées et de calcul avec des objets Path2D.Double natifs. Déterminer l’étendue de la prise en charge de la double précision dans les classes fondamentales de géométrie et la manière dont la compatibilité avec les projets existants basés sur float serait conservée ; la tâche sera considérée comme terminée lorsqu’une conception approuvée et un comportement cohérent en matière de précision seront établis, sans les artefacts de rendu signalés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
computer-graphics
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.