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
|
Verfasst am: 30.01.2007, 17:40 Titel: Materialien Licht und Texturen |
|
|
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 |
|
|
Faller Junior JLI'ler
Alter: 36 Anmeldedatum: 30.11.2006 Beiträge: 88 Wohnort: Dresden Medaillen: Keine
|
Verfasst am: 31.01.2007, 16:29 Titel: |
|
|
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 |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 31.01.2007, 16:42 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 31.01.2007, 17:21 Titel: |
|
|
Hast du die nötigen Renderstates für Lichtberechnungen aktiviert?
Zeig doch am besten mal ein bisschen Code _________________ 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 |
|
|
Faller Junior JLI'ler
Alter: 36 Anmeldedatum: 30.11.2006 Beiträge: 88 Wohnort: Dresden Medaillen: Keine
|
Verfasst am: 31.01.2007, 17:34 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 31.01.2007, 22:01 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 31.01.2007, 23:04 Titel: |
|
|
Faller hat Folgendes geschrieben: | CPP: | // Licht einschalten
lpD3DDevice->SetRenderState(D3DRS_LIGHTING,TRUE); |
|
Hier setzt du doch schon ein Renderstate
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 _________________ 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 |
|
|
Faller Junior JLI'ler
Alter: 36 Anmeldedatum: 30.11.2006 Beiträge: 88 Wohnort: Dresden Medaillen: Keine
|
Verfasst am: 01.02.2007, 15:17 Titel: |
|
|
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 |
|
|
|