Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

91

12.01.2014, 18:04

die Farbe aus der 2D Array der Texture

Ich Weiß das eine Texture eine 2D Array ist.

Offenbar nicht...

Weißt du eigentlich was ein 2D-Array überhaupt ist?

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

92

12.01.2014, 18:16

Ja eine Array die wie ein Koordinatensystem funktioniert.
Wie komme ich an sie heran?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sebastian Müller« (12.01.2014, 18:29)


  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

93

13.01.2014, 15:54

Könnten wir Bitte das Rätsel um die 2D-Array vielleicht auflösen, denn ich möchte langsam mit Terrain-Rendering fertig sein. und endlich weiter machen.
Sonst wird mein Projekt nie fertig.

Es hängt nur an der Kollisionserkennung. Ich glaube wir reden aneinander vorbei, oder ich denke zu kompliziert.

Wie würde das den im pseudo-Code ungefähr aussehen? eine Texture ist eine 2D-Array. Wie kann man eine Texture (dessen 2D-Array) für die Kollisionserkennung benutzen?

Ich möchte keinen Druck machen und finde es wirklich sehr sehr sehr neet das ihr alle mir helft, jedoch würde ich gerne weiter machen. und das geht nur,
wenn Terrrain-rendering fertig ist. Es fehlt nur die Kollisionserkennung. Der Rest ist Fertig.

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

94

13.01.2014, 16:09

Du hast eine Heightmap. Diese ist eine Textur und somit ein 2D-Array.
Nehmen wir an du hast an der Stelle [10][10] der Heightmap eine Höhe von 3.
Etwas ist über dem Terrain wenn die Y-Position des Objekts an der Position [10][10] höher als 3 ist. Dann soll Gravitation wirken, ansonsten gibt es eine Kollision.
Zwischen den Punkten der Heightmap wird dann interpoliert, diese Methode nennt sich Heightmap Interpolation Technique.
Das wäre eine ziemlich einfachere Variante die für einen Charakter gut funktioniert, jedoch nicht für "realistische" physikalische Objekte wie Rigidbodys.

Woran liegt das Problem?

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

95

13.01.2014, 16:14

Das Probelem ist die Praxis.

Ich weiß wie es theoretisch funktioniert, jedoch nicht mit der 2D-Array im Code. Wie benutzt man eine Texture im Code zur Kollisionserkennung?

Ich habe eine Texture (Heighmap)

C-/C++-Quelltext

1
PDIRETC3DTEXTURE9   TEX;



Wie kann ich sie im Code zur Kollisionserkennung nutzten. Wie klappt das mit der 2D-Array genau.

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

96

13.01.2014, 16:29

http://www.gamedev.net/topic/508563-lpdi…ure9-get-pixel/
Warum verwendest du eigentlich LPDIRECT3DTEXTURE9 und nicht Array[][]? Oder eine Map?

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

97

13.01.2014, 16:42

Genau danach habe ich Gesucht.



Danke :)

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

98

13.01.2014, 17:42

Nein.
So sollte man es nicht machen.

Du lädst erst eine Texture in den Grafikspeicher der GPU damit die Grafikkarte schnell darauf zugreifen kann und holst dann die Daten mühsam wieder zurück.
Die Daten jetzt dauernd wieder von der Grafikkarte zurück zu lesen, ist keine gute Idee.
Das sollte die Performance unverhältnismäßig drücken.

Behalte die Daten auf der CPU und greife direkt darauf zu, da ich sehe das Problem nicht?
Ich sehe nur ein Problem, wenn du jetzt anfängst die Daten von der Grafikkarte zurück zu ordern.
Außerdem ist es auch ein Designfehler, wenn die Spielberechnungen Zugriff auf die Textur brauchen

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

99

13.01.2014, 17:53

Ich sag doch er sollte sich die Heightmap in einen 2D-Vector/Array oder Map speichern.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cranberry« (13.01.2014, 18:18)


100

13.01.2014, 18:27

Naja, auf einer DX Textur Kollisionserkennung zu machen ist nicht so cool.

Vielleicht ist es einfacher, die Textur von Hand zu laden. Danach erstellst du daraus dann eine DX-Textur oder du lädst sie einfach nur für die Kollisionserkennung nochmal extra.

Bilder laden kannst du beispielsweise mit FreeImage:
http://freeimage.sourceforge.net/index.html

Danach könntest du dann z.B. das hier benutzen:
http://freeimage.sourceforge.net/fip/cla…8e134479f315e53

Du könntest auch nach einer DX Funktion suchen um die Textur wieder in den RAM zu kopieren. Aber ich habe lange nichts mehr mit DX gemacht, von daher kann ich dir damit nicht helfen.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige