processing / processing/libprocessing

Implement `Geometry` API Object

Offen
#9 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Rust
Sterne
69
Forks
14
Ø Merge
15 T. 22 Std.
Gemergte PRs (30 T.)
3

Beschreibung

We need to implement that basis for PShape. Let's steal the name from p5 and call this Geometry. Shape is kind of a weird term. Really, this is vertex data and we typically don't refer to 3d models as "shapes."

In Processing4, Shape contains Phong material info in its vertex layout. We definitely don't want to do this because we want to support materials as a first class API.

Steps:

  • Make it loadable as a Bevy Mesh.
  • Add lifecycle methods.
  • Build APIs for interacting with vertex layout, defining vertex attributes, etc.
  • Add support for modifying CPU side vertex data.
  • Add vertex buffer readback support. This is going to be a bit tricky as Bevy packs multiple meshes into vertex buffer slabs.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Das Issue nennt keine Dateien oder Tests; beginne damit, die in der Beschreibung erwähnte Processing PShape-Referenz und die Bevy Mesh-Integration zu prüfen. Die Arbeit ist abgeschlossen, wenn Geometry als Bevy Mesh geladen wird und APIs für Lebenszyklus, Vertex-Layout, CPU-seitige Daten und das Auslesen des Vertex-Buffers bereitstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
computer-graphics
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.