Zweiseitige Beleuchtung



  • Hallo zusammen!

    Ich habe das Problem, dass meine Lichter ein Modell, dass ich erstellt habe, nicht korrekt beleuchten.
    Mein Modell ist ein Würfel mit einem transparentem Fenster. Die Unterseite des Würfels ist rot, damit man durch das Fenster den Boden vom Rest unterscheiden kann.
    Nun will ich das Innere beleuten (also wie ein Raum), jedoch kann ich mit meinem Point-Light nur die äußeren Wände beleuchten.

    So sieht mein Licht aus:

    light.Type = D3DLIGHT_POINT;
    light.Position = pos;
    light.Range = 1000.f;
    light.Diffuse = Diffuse;  //Weiß
    light.Specular = Specular;  //Weiß
    light.Ambient = Ambient;   //Ganz dunkel eingestellt (0.05, 0.05, 0.05)
    
    light.Attenuation0 = 0.f;
    light.Attenuation1 = 0.01f;
    light.Attenuation2 = 0.f;
    

    Im Würfel befindet sich auch ein Modell, damit ich weiß, wo das Licht sich befindet. Das Modell wird natürlich beleuchtet, der Raum (die Innenwände) aber nicht.

    Hoffe, ich konnte genug erklären. Vielleicht weiß jemand eine Lösung für das Problem.

    Nebenbei...das Modell selbst wurde mit Blender erstellt..

    Danke im Voraus!


  • Mod

    du musst in blender vermutlich die normalen flippen. die normale auf einer ebene gibt an was vorne und was hinten ist. wenn diese nach aussen zeigen bei deinem wuerfel, wird eine lichtquelle im wuerfel quasi immer auf die rueckseite leuchten und du willst normalerweise nicht, dass eine lichtquelle von der rueckseite die flaeche ausleuchtet.

    also, normale flippen. wie das geht? da musst du leider googlen, hab kein blender;)



  • rapso schrieb:

    du musst in blender vermutlich die normalen flippen. die normale auf einer ebene gibt an was vorne und was hinten ist. wenn diese nach aussen zeigen bei deinem wuerfel, wird eine lichtquelle im wuerfel quasi immer auf die rueckseite leuchten und du willst normalerweise nicht, dass eine lichtquelle von der rueckseite die flaeche ausleuchtet.

    also, normale flippen. wie das geht? da musst du leider googlen, hab kein blender;)

    Danke, auf diese Idee kam ich auch, als ich mit den Export-Funktionen von Blender gespielt habe. Das Ergebnis war folgendes:
    http://i.min.us/ib0xXBIBEvY3LV.jpg

    Das Modell wird nun zwar auch von innen beleuchtet, doch komischerweise werden die (Außen-) Wände mit beleuchtet, wenn sie nicht in der Nähe des Lichtquelle (die blasse Kugel in der Mitte) kommen.

    Habe ich vielleicht einen Denkfehler oder könnte es doch eher am Blender-Modell selbst liegen?



  • Ok, eine andere (vielleicht einfachere) Frage: Was muss ich tun, um einen Raum zu haben, der nur von innen beleuchtet wird?
    Ich habe weder Ambient-Light noch irgendwelche Lichter, sondern will wirklich nur Licht im "Bunker" haben., d.h. ich müsste erst mit der Kamera im Raum sein, bevor ich überhaupt was sehe..
    Danke für eure Geduld. Ich bin relativ neu in der Grafikprogrammierung..



  • Meloen schrieb:

    Ok, eine andere (vielleicht einfachere) Frage: Was muss ich tun, um einen Raum zu haben, der nur von innen beleuchtet wird?
    Ich habe weder Ambient-Light noch irgendwelche Lichter, sondern will wirklich nur Licht im "Bunker" haben., d.h. ich müsste erst mit der Kamera im Raum sein, bevor ich überhaupt was sehe..
    Danke für eure Geduld. Ich bin relativ neu in der Grafikprogrammierung..

    Kann mir keiner denn eine Idee bieten, wie ich das realisiere?
    Ich möchte, dass Licht meinen Raum nicht beleuchtet, solange das Licht nicht aus dem Inneren kommt.


  • Mod

    dann schalte das licht nicht ein, solange es ausserhalb vom raum ist oder implementier einen schatten algorithmus.



  • Dreiecke werden glaube ich von beiden Seiten beleuchtet oder garnicht. Du wirst für dein Raum als Außen- UND Innenwände brauchen, um dein Licht nur innen sehen zu können.



  • Der kleine Helfer schrieb:

    Dreiecke werden glaube ich von beiden Seiten beleuchtet oder garnicht. Du wirst für dein Raum als Außen- UND Innenwände brauchen, um dein Licht nur innen sehen zu können.

    Wie sich nach tiefer Recherche herausgestellt hat, kann man mit DX nicht beidseitig beleuchten ("Two-sided lighting").

    Was mein Problem betrifft, habe ich meinen Denkfehler nun erfasst. Sobald die Normalen der Wand in einem Winkel < 90° zum Licht stehen, werden diese beleuchtet. Daher werden also meine Seitenwände mitbeleuchtet -.-

    Vielen Dank an alle!


Anmelden zum Antworten