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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

17.09.2009, 12:31

Zitat von »"LickyLicky"«

ich hab jetzt (leider) noch ein paar fragen zu DirectX hab jetzt angefangen alles zu initialisieren mit lpD3D und lpD3DDevice und so weiter. meine frage ist in einem buch wird mit lpD3D gearbeitet und im anderen mit pD3D ich versteh aber den unterschied net... im tutorial mit lpD3D wie ich es gemacht habe sagt er dann wenn ich mit lpD3D-> irgend ne funtkion aufrufen will meckert er das es kein pointer ist? aber ich dachte lp heißt longpointer?


lpD3D, pD3D, ... das ist doch nur der Name deines Zeigers auf dein Device bzw. Direct3D9 Objekt!? Ob du das Ding jetzt lpD3D oder Kurt nennst is komplett egal. Nur wenn dus mal Kurt genannt hast kannst dus nacher nicht mit Joshua anreden!?
Das gehört aber eigentlich zu den Grundlagen der Programmierung, die man im Schlaf beherrschen sollte bevor man mit so Sachen wie 3D Grafik anfängt ;)

Zitat von »"LickyLicky"«

und den unterschied zwischen Direct3D Surface und Sprites würd ich noch gern verstehen... das wird nämlich verschieden behandelt

Eine Surface ist nix andres als als ein 2D Bild im Speicher.
Ein Sprite is eben ein Sprite, im 3D Bereich üblicherweise dargestellt durch ein Quadrat auf das eine Textur gelegt wird...

http://en.wikipedia.org/wiki/Sprite_(computer_graphics)

12

20.09.2009, 21:33

lp-> long Pointer
p -> Pointer

Surface gleich Bitmap gleich Target. Es kommt nur drauf an ob in der CPU oder GPU. Ob read or write.
Die API ist möglichst auf schnelligkeit ausgelegt, da werden rumkopierereien und manipulationen von Texturinhalten stark verkompliziert.
So ist eine ReadOnly Textur nicht zu ändern, dafür aber sauschnell.

Schau dir doch vielleicht mal Direct2D an, das geht eigentlich leichter.
:lol:

LickyLicky

Frischling

  • »LickyLicky« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Nürnberg

Beruf: Realschüler

  • Private Nachricht senden

13

29.09.2009, 16:01

meine frage ist kann man mit DirectX9 wenn man die methode hier benutzt:
http://www.gamedev.net/reference/articles/article1972.asp

auch funktionen benutzen(wie in allegro) circlefill. also gibt es so ähnliche funktionen mit DX9 mit textured quads?
KAAAARL wieso liegt ein toter mensch in unserer wohnung...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

29.09.2009, 16:04

Nein, das gibt es mit purem d3d nicht so einfach. Natürlich kannst du dir selber eine funktion schreiben die dir einen Kreis malt etc. Aber das is natürlich mit entsprechendem Aufwand verbunden...

LickyLicky

Frischling

  • »LickyLicky« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Nürnberg

Beruf: Realschüler

  • Private Nachricht senden

15

29.09.2009, 21:50

und Das Gurke meint D3D ist geeignet für 2D.... ja das ist natürlich echt scheiße wenn das net funktioniert...
KAAAARL wieso liegt ein toter mensch in unserer wohnung...

16

29.09.2009, 22:05

wenn du kreise, ellipsen , linien oder rechtecke mit fuktionen zeichnen willst, kann man bei der dx programmierung die winapi zu hilfe nehmen. deren zeichenfunktionen können nämlich auch über dem dx fenster liegen, haben dadurch aber nichts mit dx direkt zu tun, mehr mit windows programmierung. allerdings ist es dann ganz einfach, das zu machen was du erreichen willst, da du keien geometrischen formen selbst erechen musst und das wolltest du ja haben.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

17

29.09.2009, 22:11

Von "nicht funktionieren" kann nicht so recht die Rede sein, gehen tut das schon ;) Ist aber zugegebenermaßen etwas aufwändiger, wann man das selber in Dreiecke runterbrechen muss.

Aber wenn du anscheinend Bedarf an grafischen Primitiven hast, würde ich mich auch nicht in Richtung der "konventionellen" 2D Rendering APIs umsehen, sondern zu etwas wie OpenVG greifen. Die werben zwar viel mit mobilen Geräten, es gibt aber auch PC taugliche Implementierungen.

Und anonsten würde ich dir empfehlen mit SFML zu arbeiten, wenn du was vergleichbares zu Allegro suchst, sollte das ziemlich exakt passen.

Und Bezüglich deiner "Beschwerde" mir gegenüber: Wer vage fragt kriegt vage Antworten ;) Hättest du drauf hingewiesen, dass du grafische Primitiven brauchst hätte ich dir kein pures D3D empfohlen.

Schau dir doch mal HGE an, wenn du schauen willst was mit D3D und 2D so alles geht.

LickyLicky

Frischling

  • »LickyLicky« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Nürnberg

Beruf: Realschüler

  • Private Nachricht senden

18

29.09.2009, 22:28

wollte dich damit nich angreifen Das Gurke ;) sorry

ok danke

ich möchte keine winapi benutzen da diese langsam ist und es nicht funktionieren wird mit mehreren layern. gibt es dann wenigstens eine funktion rectfill oder ist diese leichter zu implentieren als circlefill?

lg,
Tibo
KAAAARL wieso liegt ein toter mensch in unserer wohnung...

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

19

29.09.2009, 22:40

in d3d: orthogonale oder identitätsmatrix als viewmatrix setzen und mit ein bisschen trigonometrie und linien einen kreis annähern. voila. fang eben an zu schreiben. wenns dann probleme gibt kann dir hier geholfen werden.
"Don't trust your eyes: They are a hell of a lot smarter than you are"

20

30.09.2009, 18:23

Ptr´s sind SmartPointer deren Definitionen nur in DX10 vorhanden sind.
In DX9 mußt Du den Stern verwenden.
Circles und Lines usw. kannst Du mit Direct2D machen.
Wenn Du Dich mit den Samples im MSDN dafür nicht auskennst, kann ich dich gern jederzeit unterstützen.
I´m sorry ich benutze ausschließlich DX10 und D2D anstatt anderer Libraries.

Werbeanzeige