Danke für das Programm!
Tatsächlich wird dort ein schöner Lichtradius angezeigt, wenn man world.setAmbientLight(0, 0, 0) setzt.
Auch verdeutlicht das Programm sehr gut das Phenomen, das auftritt, wenn die Polygonanzahl der Plane zu gering ist.
Genau das war mein Problem. Habe das jetzt bei meinem Programm angepasst und es schaut besser aus!
Allerdings ist das Problem mit dem Lichtradius dadurch bei meinem Programm nicht behoben. Ich habe alle Lichtquellen ausgeschaltet zum Test, danach war der gesamte Bildschirm schwarz, beziehungsweise nur noch das Menuobjekt zu sehen.
Danach habe ich das Licht eingeschaltet, welches an den Charakter gebunden wird:
characterlight = new Light(world);
characterlight.setIntensity(255, 255, 255);
characterlight.setAttenuation(200);
Dieses wird bei jedem Loop aktualisiert:
SimpleVector vec = character.getTransformedCenter();
vec=new SimpleVector(vec.x, vec.y-40, vec.z);
characterlight.setPosition(vec);
Leider wird dabei die komplette Landschaft erhellt.
Im Hintergrund ist die Lichtintesität zwar nicht so stark, trotzdem bekommt man nicht den Eindruck vermittelt, der Charakter würde eine Fackel mit sich tragen und nur die 2 Meter um sich herum erhellen. Komischerweise tritt das nur bei der Plane und den Bäumen auf, das Feuer ist tatsächlich nicht mehr sichtbar, wenn der Charakter sich zu weit davon entfernt.
Auf dem ersten angehangenen Bild ist das hoffentlich recht gut zu erkennen.
--------------------------------------------------------
Füge ich nun folgendes ein...
characterlight.setDiscardDistance(75f);
...wird die Plane komplett unsichtbar, wenn man 3 Schritte gelaufen ist.
Die Bäume werden dann entweder ganz sichtbar oder sind überhaupt nicht zu sehen, man hat nicht das Gefühl das sie langsam vom Lichtradius erfasst werden, wenn der Charakter sich ihnen nähert. Ich hoffe das zweite Bild verdeutlicht diese Problematik recht deutlich.
---------------------------------------------------------
Und nun nochwas zur Ausrichtung des Lichts. Dass das Licht nach allen Seiten hin ausgebreitet wird stimmt nicht so ganz.
Wenn ich mittels light.rotate(vector1, vector2) das Licht rotiere, so wird die Lichtintensität in manchen Bereichen grösser. Ich habe das getestet. Zwar wird alles ausgeleuchtet, aber nicht gleichermassen. Möchte man jedoch, dass das Licht zu allen Seiten hin gleichermassen ausgesendet wird, lässt man light.rotate(vector1, vector2) am besten unangetastet? In
welche Richtung zeigt denn dann das Licht standartmässig, nach oben oder nach unten?P.S.: Ups.. ich habe gerade gesehen, dass man gar keine Attachments anfügen kann. Ich werde das dann später von zu Hause aus machen und hier editieren. Ich kann dir die Screenshots aber auch gerne per Mail zukommen lassen wenn du magst, Egon. Schick mir in diesem Fall doch einfach ne PM. Danke!
Edit: So hier die versprochenen Screenshots: