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

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

1

27.01.2004, 16:39

Direct 3D Surfaces

Hi ,

ich hab mal ne Frage, wie kann man Surfaces erstellen bzw. zeichnen. Dragonmaster hat mir zwar schon etwas dazu erzähle aber naja. :) für welche Gebiet setzt man diese ein... (bzw. hat man füher eingesetzt und so...) ihr wisst schon ;). Es wäre auch schön, wenn ihr ein paar Code sniplets mal posten könntet... ich glaube nicht das die in Davids Buch behandelt werden, und wenn den nur wie man einen Screen macht, oder?

Zitat

Zitat

Zitat:
ist ein Surface so etwas wie ein Rechtck mit einer Textur drauf - also rein 2D??? Muss man das Bild wie eine Textur behandeln

Ganz falsch. Was du meinst sind Texturen die auf einem Viereck gerendert werden. Wie spielt keine Rolle. Ein Surface ist einfach nur ein Container fuer ein Bild. Z.B. kannst du da deine Urlaubsbilder hineinkopieren und dann darstellen.

Zitat

Zitat: wozu sind surfaces eigentlich gut?

Seit DX8 haben die Surfaces etwas an Bedeutung verloren. Die meisten verwenden Surfaces dafuer um den BackBuffer auszulesen um z.B. ScreenShots zu realisieren.

2

28.01.2004, 19:39

Zitat

wie kann man Surfaces erstellen bzw. zeichnen
Erstellen kannst du ein Surface über IDirect3DDevice::CreateOffscreenPlainSurface(). Zeichnen geht glaub ich nicht mehr. Jedenfalls nicht direkt über Direct3D, da ja alle 2D Funktionene (DirectDraw) entfernt wurden. Aber man kann es ja immer noch Manuell machen (memcpy).

Zitat

für welche Gebiet setzt man diese ein... (bzw. hat man füher eingesetzt und so...)
Eingesetzt wurden sie natuerlich fuer die 2D Programmierung. Heute werden sie eigentlich gar nicht mehr benutzt.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

28.01.2004, 20:27

... und wenn man ein Hintergrund zeichnen will, "baut" man sich ein Rechteck aus den Vertizes und füllte es mit einer Textur, oder geht das schneller? Ich find das nämlich etwas umständlich... dachte mit Surfaces geht das schneller :huhu:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

28.01.2004, 20:39

In dem Fall sind Surfaces hilfreich. Aber viel komplizierter ist die 2-Dreiecks-Methode auch nicht.

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

29.01.2004, 07:15

ja, als "kompliziert" meinte ich das ja auch nicht, aber ich hab ein Bild (ca. 475x300), das will ich als Hintergrund zeichnen.. und nach deinem Buch sind da Texturen denkbar ungeeignet :), was ja auch logisch ist (ich mein das mit der zweier Potenz und den Quadratischen Formaten) :). So jetzt dachte ich das Surfaces mit da helfen könnten.. ;D

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

29.01.2004, 13:56

wieso sollen Texturen schlecht dafür sein? Nimm nen PixelShader oder stretch die Textur einfach und fädisch ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

29.01.2004, 13:58

Einen Pixelshader?!
Nur wegen einem blöden Hintergrundbild würdest Du 75% aller Leute sitzen lassen, die keine Pixelshader-Grafikkarte haben?

koschka

Community-Fossil

  • »koschka« ist der Autor dieses Themas

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

29.01.2004, 16:39

naja, laut David's Buch können Graphikkarten unter Umständen Texturen nicht darstellen (z.B. wenn die Graphikkarte nur Quadratische Texturen unterstützt). -- oder die Größe der Textur nicht einen Potenz von zwei ist, also 1, 2, 4, 8, 16, 32, 64, 128, 256....

deswegen dachte ich ja da smit den Surfaces....

und wie kann man Texturen stretchen :) :huhu:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

29.01.2004, 16:42

Zitat von »"koschka"«

und wie kann man Texturen stretchen :) :huhu:

Das tut man doch ganz automatisch, wenn man sie auf ein Dreieck spannt, welches nicht exakt dieselben Seitenverhältnisse wie die Textur hat.

10

29.01.2004, 16:47

Dein Bild kannst du doch einfach mit nem Bildbearbeitungsprogramm stretchen und auf eine schoenne groesse, sagen wir mal von deinen 475x300 auf 512x512. Falls die Graka das nicht kann, kannst du dir einen einfachen Algo selbst schreiben der die Textur dann auf 256x256 verkleinert. Der Algo ist nicht schwer umzusetzen. Damit verlirst du aber keine Qualität bei deinem Bild.

Zitat

und wie kann man Texturen stretchen
Gar nischt. Das macht die Hardware für dich ;) Du erstellst dann einfach ein Viereck (Fächerverwenden: D3DPT_TRIANGLEFAN. Indices sind da einfach zu aufwändig) in der passenden größe (in deinem Fall also komplett von X:-1 - 1; Y: -1 - 1) fertig.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige