|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 26.04.2005, 15:05 Titel: Lichtprobleme |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 26.04.2005, 15:21 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.04.2005, 15:32 Titel: |
|
|
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 |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 26.04.2005, 15:40 Titel: |
|
|
Muss man denn bei Directionalem Licht ne Position angeben? _________________ "Dispatcher und Scheduler sind wie Brüder, bloß anders" |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 26.04.2005, 16:02 Titel: |
|
|
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 |
|
|
Catscratch1 Junior JLI'ler
Anmeldedatum: 20.01.2005 Beiträge: 98
Medaillen: Keine
|
Verfasst am: 26.04.2005, 16:08 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 26.04.2005, 16:14 Titel: |
|
|
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 |
|
|
|
|
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
|