JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Lichtprobleme

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



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 15:05    Titel: Lichtprobleme Antworten mit Zitat

Hi,

also ich habe aus 3DS Max ein *.x exportiert und in ein Programm eingebunden.
Jedoch wenn ich kein Licht anhabe ist das Ding schwarz, bei Ambienten Licht weiß und bei directionalem Lich sieht man mal kurz die Farben, wenn man in Licht arme Bereich dreht.

Im Mesh Viewer von DirectX sieht das aber gut aus.

Woran kann sowas liegen?

Meine Lichter (in Managed DirectX)

Code:

         direct3D.Device.Lights[0].Type = LightType.Directional;
         direct3D.Device.Lights[0].Diffuse = Color.White;
         direct3D.Device.Lights[0].Direction = new Vector3(1, 1,0);
         direct3D.Device.Lights[0].Enabled = true;   

   
         direct3D.Device.Lights[1].Type = LightType.Directional;
         direct3D.Device.Lights[1].Diffuse = Color.White;
         direct3D.Device.Lights[1].Direction = new Vector3(-1, 1,0);
         direct3D.Device.Lights[1].Enabled = true;



Meine Draw aufrufe:

Code:

            direct3D.BeginScene();

         egret.Draw(direct3D.Device, Matrix.Translation(8.5f,10.25f,8.5f)*Matrix.RotationY(angle));
         egret.Draw(direct3D.Device, Matrix.Translation(-3.0f,10.75f,8.5f)*Matrix.RotationY(angle));
         egret.Draw(direct3D.Device, Matrix.Translation(9.5f,13.5f,3.5f)*Matrix.RotationY(angle));
         cage.Draw(direct3D.Device, Matrix.RotationY(angle));
         

            direct3D.EndScene();


Kamera:
Code:

 direct3D.Device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1.0f, 200.0f);
            direct3D.Device.Transform.View = Matrix.LookAtLH(new Vector3(0,0, 50.0f), new Vector3(), new Vector3(0,1,0));

_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 15:07    Titel: Antworten mit Zitat

Wo ist das Material?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 15:21    Titel: Antworten mit Zitat

Die Aufrufe werden innerhalb der einzelnen Klassen gemacht:

Draw-Methode:

Code:

      public void Draw(Device device, Matrix world)
      {
         device.Transform.World = Matrix.Scaling(scaling)* world;
         for (int i = 0; i < meshMaterials.Length; i++)
         {
            device.Material = meshMaterials[i];
            mesh.DrawSubset(i);
         }
      }



Achja X-File Loader:

Code:

protected Mesh LoadMesh(string file)
      {
         ExtendedMaterial[] mtrl;

         // Load our mesh
         Mesh temp = Mesh.FromFile(file, MeshFlags.Managed, device, out mtrl);

         // If we have any materials, store them
         if ((mtrl != null) && (mtrl.Length > 0))
         {
            meshMaterials = new Material[mtrl.Length];
            meshTextures = new Texture[mtrl.Length];

            // Store each material and texture
            for (int i = 0; i < mtrl.Length; i++)
            {
               meshMaterials[i] = mtrl[i].Material3D;
               if ((mtrl[i].TextureFilename != null) && (mtrl[i].TextureFilename != string.Empty))
               {
                  // We have a texture, try to load it
                  meshTextures[i] = TextureLoader.FromFile(device, @"..\..\" + mtrl[i].TextureFilename);
               }
            }
         }
         return temp;
      }


Also die Materials sind gefüllt. Man sieht es ja auch teilweise. Aber es scheint einfach das Licht zu hell zu sein! (Wenn man das mit der Realität vergleicht). Also es ist ab und zu gelb und braun sichtbar, wenn der Übergang zwischen Licht und Dunkel kommt!
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 15:32    Titel: Antworten mit Zitat

jo, hatte ich auchmal, das Licht war bei mir direkt bie der Kamera, bin ich einfach etwas weiter weg gefahren, da war es geshceit. hat mich mit dem Licht aber auch rigendwie sehr gestörrt.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 15:40    Titel: Antworten mit Zitat

Muss man denn bei Directionalem Licht ne Position angeben?
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 26.04.2005, 16:02    Titel: Antworten mit Zitat

Nein, directionales Licht scheint ja in eine Richtung mit konstanter Intensität, Spotlights sowie Pointlights sind da etwas anderes.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 16:08    Titel: Antworten mit Zitat

So hatte ich mir das auch gedacht. Naja, ich denke fast, dass das was mit dem Konvertieren von 3Ds zu *.x zu tun hat. Dasselbe sieht nämlich mit Java3D wesentlich besser aus.
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 26.04.2005, 16:14    Titel: Antworten mit Zitat

jo, ich hatte mir auch von 3dcafe.com n paar 3ds runtergeladne und in .x umgewnadelt, dabei war das bei mir auch so hell
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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