JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Materialien Licht und Texturen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 30.01.2007, 17:40    Titel: Materialien Licht und Texturen Antworten mit Zitat

Ich hab ein kleines Test Programm gebaut um mich mal mit Licht auseinander zu setzen.

Als erstes hab ich nun einen Einfachen Raum gebaut mit einem Dreieck als Spieler.
http://home.arcor.de/faller2/Licht%20mit%20Texturen.JPG

Dann habe ich eine Lichtquelle hinzugefügt und erst mal die Texturen weggelassen.
http://home.arcor.de/faller2/licht%20ohne%20material.JPG

Das funktioniert ja nicht schlecht und nun wolte ich mich an die Materialien arbeiten und fügte diese wie im Buch beschrieben ist.

http://home.arcor.de/faller2/licht%20mit%20material.JPG

1 Egal welche Farbe ich einstelle beim Material (es bleibt rot)
2 Die Materialien kommen erst zum sehen wenn ich na ranfahre(bewegung mit Pfeiltasten)
3 die Materialien werden nicht richtig beleuchtet (die Lichtquelle wurde nicht verändert)

Trotzdem das die Materialien nicht richtig funktionieren hab ich um es mal zu testen wieder Texturen drübergelegt.

http://home.arcor.de/faller2/materialien%20mit%20Textur.JPG

Was ja überhaubt nicht hinhaut

Das Programm falls es jemand sehen möchte gibt es hier.
http://home.arcor.de/faller2/ die 2 Datei
Licht Materialien und texturen.rar

Es ist nicht mit Klassen gemacht da es ein Übungs Programm werden solte.

Ich würde gerne Wissen wo ich was falsch gemacht habe um in mein Richtiges Prog (was ihr hier auch downloaden könnt (Auchtung erst server starten und dann noch ip ändern in 127.0.0.1)) es Richtig einzubauen.

Hoffe man versteht alles
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

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

Ok ich habs endlich raus wiso es funst hier mal ein neues Bild
http://home.arcor.de/faller2/Materialien.JPG

so dabei entsteht eine neue Frage die Texturen die ich dadrauf lege Passen jetze zwar.
Werden aber bei der Licht berechnung net mit einbezogen.

Wie mache ich das sie der Helligkeit oder Dunkelheit angepasst werden???
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Otscho
Super JLI'ler


Alter: 36
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 16:42    Titel: Antworten mit Zitat

Faller hat Folgendes geschrieben:

so dabei entsteht eine neue Frage die Texturen die ich dadrauf lege Passen jetze zwar.
Werden aber bei der Licht berechnung net mit einbezogen.

Wie mache ich das sie der Helligkeit oder Dunkelheit angepasst werden???


Bist du dir auch sicher, dass du eine Punktlichtquelle verwendest und nicht nur ein ambientes Licht. Bei ambientem Licht ist nämlich die Lichtreflxion überall gleich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 17:21    Titel: Antworten mit Zitat

Hast du die nötigen Renderstates für Lichtberechnungen aktiviert?

Zeig doch am besten mal ein bisschen Code Wink
_________________
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
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 17:34    Titel: Antworten mit Zitat

Also ich benutze folgenden Code um mein Licht zu definieren
CPP:
ZeroMemory(&Light,sizeof(D3DLIGHT9));

    // bei der Lichtquelle soll es sich um eine
    // Punktlichtquelle handeln
    Light.Type = D3DLIGHT_POINT;
   
    // die Lichtfarbe wird auf Weiß gesetzt
    Light.Diffuse.r = 1.0f;
    Light.Diffuse.g = 1.0f;
    Light.Diffuse.b = 1.0f;
   
    // das Licht soll eine Reichweite von 1000 haben
    Light.Range = 120.0f;
   
    // das Licht wird an der gleichen Stelle positio-
    // niert, an der sich auch unsere Kamera befindet
    Light.Position = D3DXVECTOR3(45.0f, 90.0f, -60.0f);
   
    // das Element Attenuation0 bestimmt, wie stark die
    // Lichtstärke mit der Entfernung abfällt   
    // 1.0 bedeutet dabei keinen Abfall der Lichtstärke
    Light.Attenuation0 = 1.0f;

    // das definierte Licht bekommt die Nummer 0
    lpD3DDevice->SetLight(0,&Light);
   
    // Lichtquelle anschalten
    lpD3DDevice->LightEnable(0,TRUE);

   // Licht einschalten
    lpD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE);


um mein Material zu bestimmen nutze ich diesen code
CPP:
ZeroMemory( &MaterialBlue, sizeof(MaterialBlue) );

   MaterialBlue.Diffuse.r = MaterialBlue.Ambient.r = 0.5f;
    MaterialBlue.Diffuse.g = MaterialBlue.Ambient.g = 0.0f;
    MaterialBlue.Diffuse.b = MaterialBlue.Ambient.b = 0.5f;
    MaterialBlue.Diffuse.a = MaterialBlue.Ambient.a = 1.0f;

   // Material setzen
    lpD3DDevice->SetMaterial( &MaterialBlue );


und um die Textur zu setzen
lpD3DDevice->SetTexture(0,holz);

was sind Renderstates im Buch habe ich dazu nichts gefunden.
Ich werde mal bei google suchen

ok hab mich schlau gemacht übers Rendern so und wie mache ich das nun wie und wo muss ich jetze was ändern
könnte jemand das mal an nem mini Tutorial erklären
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 22:01    Titel: Antworten mit Zitat

In Kapitel 27 und 28 sollte dazu was stehen (SetRenderState() und SetTextureStageState()). Es ist eine Punktlichtquelle, ansonsten gäbe es keinen dunklen Stellen (auf den gleichen Seiten der Objekte).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 23:04    Titel: Antworten mit Zitat

Faller hat Folgendes geschrieben:
CPP:
// Licht einschalten
    lpD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE);

Hier setzt du doch schon ein Renderstate Wink
Insofern müsste es auch funktionieren, falls du sonst nichts "exotisches" gemacht hast.

Hmm...woran erkennst du denn, dass die Lichtberechnung nicht mit einbezogen wird? Auf dem Screenshot siehts doch eigentlich schon so aus - die Kugeln sind zur Kamera hin dunkler als an anderen Stellen...

Noch was: Hast du in deiner FlexibleVertexFormat-Definition(setzt du irgendwo mit SetFVF()) einen Normalenvektor miteinbezogen? Ohne die wird die Lichtberechnung nicht funktionieren Wink
_________________
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
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 01.02.2007, 15:17    Titel: Antworten mit Zitat

MMh eigentlich ist das Bild nur von den Materialien und die Texturen sollen dadrauf aber trotzdem sollen die Materialien durchschauen und ich habe vergessen diesen Befehl heraus zunehmen
lpD3DDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
was nadürlich dazuführte das ich nimals beleuchtete Bilder sah

und damit
*Close*
Denn jetze funst es he he
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
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