![]() ![]() ![]() |
|
![]() |
|
![]() |
![]() ![]() ![]() ![]() |
Mit der Klasse tDXSkybox können Sie erstellen Sie im handumdrehen eine kegelartige Skybox. Eine Skybox ist ein 3D-Körper, der immer von innen gerendert wird. Da beim Rendervorgang der Z-Buffer ausgeschaltet wird, werden Objekte, die sich ausserhalb der Skybox befinden, auch angezeigt. Verwenden Sie eine Skybox, wenn Sie einen Himmel anzeigen wollen. Beachten Sie jedoch, dass es einen Boden in dieser Skybox nicht gibt. Schauen Sie also nach unten, dann sehen Sie nichts von der Skybox.
Der Screenshot zeigt eine Blume von schrägunten. Die Kamera ist nach oben gerichtet. Perspektivisch korrekt wird der Himmel in Form einer Textur angezeigt.
Mit TDXSkyBox.Create erstellen Sie die Skybox:
constructor Create( _pdevice : IDirect3DDevice8; _textur : string ); |
_pdevice: Das Direct3DDevice, unter dem die Skybox später angezeigt werden soll.
_textur: Der Dateiname (mit Pfad) einer Textur, die angezeigt werden soll.
Der Destructor der Skybox. Wenn Sie die Skybox freigeben wollen, dann sollten Sie jedoch in jedem Fall TDXSkybox.Free verwenden, da diese Funktion automatisch kontrolliert, ob überhaupt die jeweilige Instanz erstellt wurde und dann automatisch Destroy aufruft.
destructor Destroy; |
Rufen Sie die Draw-Prozedur der Skybox vor allen anderen Rendervorgängen auf. Damit stellen Sie sicher, dass nachher auch alle Objekte angezeigt werden, denn beim Rendern der Skybox wird der Z-Buffer ausgeschaltet. Das heisst, alle Tiefeninformationen werden nicht beachtet. Damit die Skybox perspektivisch korrekt angezeigt wird, müssen Sie der Prozedur noch ein paar Parameter übergeben.
procedure Draw( _pos, _dest, _up: TD3DVector ); |
_pos, _dest, und up sind die drei Vektoren, die Sie auch verwenden, um die Kameraeinstellungen vorzunehmen. Diese müssen der .Draw-Prozedur übergeben werden, damit die Skybox auch richtig angezeigt werden kann.