Ja, es sind Stencil-Shadows. Und ja, sie scheinen leider durch Wände hindurch. frown
Ist momentan keine optimale Lösung. Ich hoffe, dass es später mal bessere Schatten geben wird.

Momentan gibt es dieses Problem aber sowieso nur bei den Pfeilen (NPCs werfen ihre Schatten ja immer nur auf den Boden, da die Sonne direkt von oben kommt. Da gibt es also keine Probleme mit dem Hindurchscheinen der Schatten).

Und bei den Pfeilen mache ich es so, dass sie generell nicht immer einen Schatten werfen. Sie werfen nur dann einen Schatten, wenn sie in bestimmten Models (wie z.B. in der Hausfassade) steckenbleiben. An der Vorderseite des Palisadenzauns werfen sie gar keine Schatten.

Ich werde auch viel mit UNSICHTBAREN Models arbeiten. Also für das eigentliche Haupt-Model eines Hauses (das sehr viele Polygone hat) wird es gar keine Kolliossionsprüfung, etc., geben. Um das Haus herum sind aber unsichtbare Models "montiert", und die Pfeile bleiben eigentlich in diesen unsichtbaren Models stecken. Jedes dieser Models hat dann bestimmte Materialeigenschaften, und deckt mit seinen Polygonen bestimmte Teile der Textur des Haupt-Models ab. Und die Eigenschaften des Dummy-Models, in dem der Pfeil stecken bleibt, steuern dann, ob ein Pfeil abprallt oder steckenbleibt, oder ob der Pfeil einen Schatten wirft oder nicht. In schattigen Bereichen einer Textur muss der Pfeil ja gar keinen Schatten werfen.

Aber da muss ich noch ein wenig herumexperimentieren. Hat momentan für mich keine so hohe Priorität. Und ich hoffe, dass es später mal bessere Engine-Schatten geben wird.

Zu den Pfeilen muss ich noch sagen, dass diese während dem Flug ebenfalls aus 2 Models bestehen. Dem eigentlichen Pfeil, und einem unsichtbaren Model, das sozusagen als "Späher" vorausfliegt. Dieses unsichtbare Späher-Model wird für mehere Dinge benötigt:

1.) Für den Sound. Beim Sound eines herbeizischenden Pfeiles hört man ja zunächst den Pfeil aus der Ferne, und dann zischt der Pfeil vorbei. Es gibt nunmal keinen realistisch klingenden Endlos-Flug-Sound für Pfeile, den ein Pfeil während dem Flug in einer Endlosschleife abspielen könnte. Daher muss mein Programm schon vorher wissen, wann ein Pfeil in der Nähe des Players vorbeifliegen wird. Es muss also in die Zukunft schauen können, um rechtzeitig den Sound starten zu können. Und das mache ich mit Hilfe dieses vorausfliegenden unsichtbaren Dummy-Pfeils.

2.) Auch für die Prüfung, ob der Pfeil ein Objekt trifft, auf das er einen Schatten werfen soll, verwende ich diesen vorauseilenden "Späher"-Pfeil. Damit der Schattenwurf schon kurz vor dem Einschlag eingeschaltet wird.

3.) In manchen Fällen muss die Flugbahn des Pfeiles ein wenig verändert werden, damit keine unerwünschten Ziele getroffen werden. Auch dafür verwende ich den "Späher".