JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6806f53c9d83832a926dc02cdf1dd4c1Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bild in C++ manipulieren?
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 14:47    Titel: Bild in C++ manipulieren? Antworten mit Zitat

Hi,

wie kann ich ein Sprite immer mehr in den Hintergrund übergehen lassen, also immer mehr Alpha hinzufügen? Das wäre ein guter einblendungs/ausblende Effekt.

MfG

Philipp Böing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 14:50    Titel: Antworten mit Zitat

Da musst du eben, wie schon in mehreren Threads hier im Forum besprochen, die Pixel einzeln mischen(falls du DirectDraw verwendest). Bei D3D kann ich dir leider nicht helfen.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 14:58    Titel: Antworten mit Zitat

leider benutze ich D3D Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 15:08    Titel: Antworten mit Zitat

Da du vorhin von Sprites geredet hast, nehme ich mal an, dass es um eine ALphaBlendung im 2D Bereich geht.

@The Lord of Programming:
Warum sollte das in D3D, wenn ich das richtig verstehe mit DX9 nicht gehen?

AlphaBlending kann man immer einsetzen, wenn man direkten Zugriff auf Oberflächen erlangen kann. Und das geht in DX7/DX8 sowie auch in DX9.

@philipp_boeing:
Am besten du schaust dir den ALphaBlending Thread an. Du musst dort nur den Pixelzugriff von DX7/DX8 auf DX9 umstellen und das sind nur gerinfügige Änderungen. Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 15:11    Titel: Antworten mit Zitat

Er benutzt doch D3D? Dann kann man das doch einfach über Renderstates machen, oder irre ich mich da?
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 15:20    Titel: Antworten mit Zitat

Wo ist denn der AlphaBlending Thread?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 15:35    Titel: Antworten mit Zitat

Den brauchst du nicht. Du mußt dafür sorgen, dass die Alphawerte in der Textur gespeichert sind. Danach muss du noch den Renderstate (D3DRS_ALPHABLENDENABLE, zwei Blendstates - danach such mal im Forum) aktivieren und alles sollte gehen.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 15:39    Titel: Antworten mit Zitat

irgendwie verstehe ich das nicht... Question Question Question

Wäre jemand so freundlich mir mal einen code zu geben in dem steht wie man ein sprite (png) sichtbar und unsichtbar machen kann? Mit DX9.

Danke im Vorraus

MfG

Philipp Böing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 16:22    Titel: Antworten mit Zitat

Okay, hatte ich falsch verstanden. Das Anzeigen des Sprites klappt also schon. Dann muss du noch dafür sorgen, das Sprite Stufenweise aus/einzublenden. Dazu kannst du z.B. die Alphawerte der Pixel ändern. D.h. Surface der Textur locken, durch die Pixel laufen und den Alphawert erhöhen.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 16:29    Titel: Antworten mit Zitat

wie gehe ich denn durch die pixel und erhöhe die alphawerte? hat denn niemand ein Codebeispiel???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 21:22    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
@The Lord of Programming:
Warum sollte das in D3D, wenn ich das richtig verstehe mit DX9 nicht gehen?

AlphaBlending kann man immer einsetzen, wenn man direkten Zugriff auf Oberflächen erlangen kann. Und das geht in DX7/DX8 sowie auch in DX9.

Ich hab nicht gesagt, dass es nicht geht. Ich hab nur gesagt, dass ich ihm nicht helfen kann(, weil ich mich noch nicht mit DXGrafics9 beschäftigt habe).
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 21:47    Titel: Antworten mit Zitat

Du muss dir das Surface der Textur holen, sperren (LockRect) und dann kannst du auf die Pixel zugreifen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 21:59    Titel: Antworten mit Zitat

und wie hole ich mir das surface des sprites?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 47
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 22:14    Titel: Antworten mit Zitat

Ich habe mal nachgeschaut (das solltest du mit der DX-Doku aber auch schaffen Wink). Es gibt eine Methode LockRect() direkt als Methode der Textur. Also ungefähr so:

Code:

HRESULT LockRect(          UINT Level,
    D3DLOCKED_RECT *pLockedRect,
    CONST RECT *pRect,
    DWORD Flags
);

D3DLOCKED_RECT LockRect;
m_lpTexture->LockRect(0,&LockRect,0,D3DLOCK_DISCARD)

// jetzt ist in LockRect.pBits ein Zeiger auf die Pixel - Pitch muss du auch beachten

... // Alphawerte verändern


m_lpTexture->UnlockRect(0);

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
philipp_boeing
JLI'ler


Alter: 34
Anmeldedatum: 26.07.2003
Beiträge: 188

Medaillen: Keine

BeitragVerfasst am: 07.09.2003, 23:15    Titel: Antworten mit Zitat

allen bemühungen zum trotze komme ich nicht weiter. vielleicht sollte ich die frage etwas anders formulieren: wie müsste eine funktion aussehen z.b. void SetAlpha(int Alpha) um so einem Sprite komplett diesen alpha wert zu geben (ich benutze die sprite klasse des beispielprogrammes astoroids buch 2) Ich hoffe, dass die frage so verständlicher ist.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum