Irrlicht + Winkel + Vektorrechnung

  • Hallo Leute.
    Wie ihr wisst arbeite ich an meinem Projekt Flutch

    Ich will, dass meine Kamera um einen Bestimmten Punkt kreist.
    Aber ich will sie während der While beinflussen können. (Das geht mit _IrrAddFlyCircleAnimator() nicht!
    Da es keine Funktionen in Irrlicht gibt die ich für diese Aufgabenstellung brauche habe ich mir selbst eine Berechnung gemacht..
    Ich habe sie auskommentiert da ansonsten mir wahrscheinlich niemand folgen kann..
    Das Problem seht ihr eindeutig wenn ihr das Script laufen lässt:

    Spoiler anzeigen
    [autoit]

    #include "../au3Irrlicht2.au3"
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    opt("MustDeclareVars", True)
    HotKeySet("{ESC}", "_exit")

    [/autoit] [autoit][/autoit] [autoit]

    Global $BSPMesh, $BSPNode, $Camera, $chrMesh, $chrNode
    Global $screen_width, $screen_height
    Global $aMousePos[2], $aPoint[3], $aDirect[3], $aCamPos[3], $aSpeed, $aAnimator
    Global $bAlpha, $bBeta, $bVektorL, $bVekXL, $bVekYL, $bVekX[2], $bVekY[2]

    [/autoit] [autoit][/autoit] [autoit]

    $screen_width = 800
    $screen_height = 600

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $pi = 3.14159265358979

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _IrrStart( $IRR_EDT_OPENGL, $screen_width, $screen_height, $IRR_BITS_PER_PIXEL_32, _
    $IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, _
    $IRR_VERTICAL_SYNC_OFF )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetWindowCaption( "Irrlicht Tutorial" )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrAddZipFile( "../media/map-20kdm2.pk3", $IRR_IGNORE_CASE, $IRR_IGNORE_PATHS )

    [/autoit] [autoit][/autoit] [autoit]

    $BSPMesh = _IrrGetMesh( "20kdm2.bsp" )

    [/autoit] [autoit][/autoit] [autoit]

    $BSPNode = _IrrAddMeshToSceneAsOcttree( $BSPMesh )

    [/autoit] [autoit][/autoit] [autoit]

    $aPoint[0] = 1900.0
    $aPoint[1] = 150.0
    $aPoint[2] = 1400.0

    [/autoit] [autoit][/autoit] [autoit]

    $aCamPos[0] = 1750.0
    $aCamPos[1] = 149.0
    $aCamPos[2] = 1369.0

    [/autoit] [autoit][/autoit] [autoit]

    $Camera = _IrrAddCamera( $aCamPos[0], $aCamPos[1], $aCamPos[2], $aPoint[0], $aPoint[1], $aPoint[2] )

    [/autoit] [autoit][/autoit] [autoit]

    $aDirect[0] = $aPoint[0] - $aCamPos[0]
    $aDirect[1] = $aPoint[1] - $aCamPos[1]
    $aDirect[2] = $aPoint[2] - $aCamPos[2]

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $alength = ($aDirect[0]^2 + $aDirect[1]^2 + $aDirect[2]^2)^(1/2)

    [/autoit] [autoit][/autoit] [autoit]

    _IrrHideMouse()

    [/autoit] [autoit][/autoit] [autoit]

    WHILE _IrrRunning()
    _IrrBeginScene( 255,255,255 )

    [/autoit] [autoit][/autoit] [autoit]

    ;Um es einfacher zu machen hab ich mich fürs erse auf die 2-dimensionale Ebene beschränkt

    [/autoit] [autoit][/autoit] [autoit]

    ; Winkel berechnung "0.05" soll später die Bewegung des Mauszeigers in die X-Richtung sein,
    ; $alength ist der Radius, Alpha ist der Winkel der für die Bogenlänge des zurückgelegten Weges
    ; der Kamera entspricht
    $bAlpha = ATan(0.05 / $alength)
    ; Wenn man es von oben betrachtet sieht man nun ein Dreieck bestehend aus dem Vektor den die
    ; Kamera zurücklegen soll und zweimal dem Radius (= $alength) dadurch entstehen zwei weitere
    ; gleichgroße Wikel (= $bBeta)
    $bBeta = ($pi-$bAlpha) / 2

    [/autoit] [autoit][/autoit] [autoit]

    ; Jetzt zeichnen wir eine Höhe auf einem dem Vektor ein, die die Kamera zurücklegen soll
    $bVektorL = 2 * cos($bBeta) * $alength
    ; Nun wird der X und der Y Wert des Vektors bestimmt, bezogen auf den Radius-Vektor auf
    ; Auf dem wir die Höhe gezeichnet haben (Radius-Vektor = $aDirect)
    $bVekXL = sin($bBeta) * $bVektorL
    $bVekYL = cos($bBeta) * $bVektorL

    [/autoit] [autoit][/autoit] [autoit]

    ; um das ganz nun auf das echte Koordinatensystem zu beziehen holen wir uns den Einheitsvektor
    ; vom Radiusvektur und Multiplizieren ihn mit der X-Wert ([0]=X, [1]=Y)
    $bVekX[0] = $aDirect[0] / $alength * $bVekXL
    $bVekX[1] = $aDirect[1] / $alength * $bVekXL

    [/autoit] [autoit][/autoit] [autoit]

    ; Das selbe mit dem Y-Wert. aber dazu müssen wir einen Einheitsvektor nehmen der orthogonal
    ; zum anderen Einheitsvektor stehe, da ja das Koordinatensystem auch orthogonal zueinander
    ; steht ([0]=X, [1]=Y)
    $bVekY[0] = -$aDirect[1] / $alength * $bVekYL
    $bVekY[1] = $aDirect[0] / $alength * $bVekYL

    [/autoit] [autoit][/autoit] [autoit]

    ; nun werden die ergebnise in X und in Y Richtung zur Kameraposition dazu gerechnet
    $aCamPos[0] += $bVekX[0] + $bVekY[0]
    $aCamPos[1] += $bVekX[1] + $bVekY[1]

    [/autoit] [autoit][/autoit] [autoit]

    ; $aDirect aktualisieren, da es sich ändert, weil es ja der Vektor vom Punkt zur Position
    ; der Kamera ist
    $aDirect[0] = $aPoint[0] - $aCamPos[0]
    $aDirect[1] = $aPoint[1] - $aCamPos[1]
    $aDirect[2] = $aPoint[2] - $aCamPos[2]

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetNodePosition( $Camera, $aCamPos[0], $aCamPos[1], $aCamPos[2] )
    _IrrSetCameraTarget( $Camera, $aPoint[0], $aPoint[1], $aPoint[2] )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrDrawScene()

    [/autoit] [autoit][/autoit] [autoit]

    _IrrEndScene()
    WEND

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    _IrrStop()
    Exit
    EndFunc ; _exit

    [/autoit]

    Zum Besseren Verständnis hab ich noch zwei Bilder gezeichnet

  • Edit: Sry, Ich dachte, bei Irrlicht war da ein Beispiel dabei, dem ist wohl nicht so.

    Einmal editiert, zuletzt von progandy (11. August 2011 um 15:07)

  • Danke für die Antworten

    Nein RapIt das wars nicht ganz.. ;)
    Zur Erinnerung: ich will nicht, dass sich der Körper dreht sondern die Kamera Kreisfürmig um den Körper wandert.

  • Du hast nicht in den Quellcode geguckt, oder? :huh: Die Kamera dreht sich doch um den Würfel! Es hat natürlich den Effekt, dass man den Würfel von allen Seiten betrachten kann, aber die Kamera dreht sich um den Würfel. Du musst nur bedenken, dass du immer die Sicht der Kamera hast! :)
    Das als kleines Beispiel:

    Die Kamera bewegt sich hier von links und nach rechts, (F10+F11), somit kann man beide Seiten vom Würfel betrachten, nur die hintere nicht, denn egal wie lange man sich vom Würfel wegbewegt (er wird immer kleiner) kann man ja nicht auf die hintere Fläche "gucken".

    [autoit]

    #include "au3Irrlicht2.au3"

    [/autoit][autoit][/autoit][autoit]

    _IrrStart()
    HotKeySet("{F10}","_l")
    HotKeySet("{F11}","_r")
    $x=0
    local $nodeCamera = _IrrAddCamera($x,0,50, 0,0,0 )
    local $nodeTest = _IrrAddTestSceneNode()
    _IrrSetNodeMaterialTexture( $nodeTest, _IrrGetTexture(".\media\au3irr2_logo.jpg"), 0)
    _IrrSetNodeMaterialFlag( $nodeTest, $IRR_EMF_LIGHTING, $IRR_OFF )

    [/autoit][autoit][/autoit][autoit]

    ;_IrrAddFlyCircleAnimator($nodeTest, 0, 0, 0, 5, 0.005)

    [/autoit][autoit][/autoit][autoit]

    WHILE _IrrRunning()
    _IrrBeginScene(0, 0, 0)
    _IrrDrawScene()
    _IrrEndScene()
    WEND

    [/autoit][autoit][/autoit][autoit]

    _IrrStop()

    [/autoit][autoit][/autoit][autoit]

    Func _l()
    $x-=5
    _IrrSetNodePosition($nodeCamera,$x,0,50)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _r()
    $x+=5
    _IrrSetNodePosition($nodeCamera,$x,0,50)
    EndFunc

    [/autoit]


    Ich stell mir das immer so vor, dass der Würfel z.B der Mittelpunkt eines Kreises ist und du (die Kamera) sich als Punkt auf der Oberfläche des Kreises frei bewegen kann...
    Du kannst ja mal den Würfel anstatt die Kamera bewegen lassen, vielleicht ist das der Effekt, den du dir wünschst? Probiers aus!

    Eigentlich müsste das das richtige sein...
    Ich hoffe ich konnte helfen
    RapIt

  • Ich hab mich ein deinem Script verloren...
    Soweit ähnlich ist es bei meiner Berechnung auch aber ich will nicht, dass man sich dann vom würfel entfernt...
    Kann man das irgendwie ändern?

  • Hier die Rotation. Kann es sein, dass bei _IrrSetNodePosition die Reihenfolge der Parameter falsch ist? Mit x, z, y komme ich auf gute Ergebnisse, mit x, y, z nicht. Mit F8/F9 kann die Höhe der Kamera auf der Kugel festegelegt werden, mit F10/F11 die Drehung.

    Spoiler anzeigen
    [autoit]


    #include "au3Irrlicht2.au3"

    [/autoit] [autoit][/autoit] [autoit]

    $degree = -180
    $degZ = 45

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStart()
    HotKeySet("{F8}","_u")
    HotKeySet("{F9}","_d")
    HotKeySet("{F10}","_l")
    HotKeySet("{F11}","_r")
    $x=0
    local $nodeCamera = _IrrAddCamera($x,0,0, 0,0,0 )
    local $nodeTest = _IrrAddTestSceneNode()
    _IrrSetNodeMaterialTexture( $nodeTest, _IrrGetTexture(".\media\default_texture.png"), 0)
    _IrrSetNodeMaterialFlag( $nodeTest, $IRR_EMF_LIGHTING, $IRR_OFF )

    [/autoit] [autoit][/autoit] [autoit]

    ;_IrrAddFlyCircleAnimator($nodeTest, 0, 0, 0, 5, 0.005)

    [/autoit] [autoit][/autoit] [autoit]

    WHILE _IrrRunning()
    _IrrBeginScene(0, 0, 0)
    _IrrDrawScene()
    _IrrEndScene()
    WEND

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStop()

    [/autoit] [autoit][/autoit] [autoit]

    Func _u()
    If $degZ > 1 Then $degZ -= 1
    move()
    EndFunc
    Func _d()
    If $degZ < 179 Then $degZ += 1
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _l()
    $degree += 5
    If $degree >= 180 Then $degree = -180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _r()
    $degree -= 5
    If $degree <= -180 Then $degree = 180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func move()
    Local Const $pi = 3.14159265358979323846264338327950288419716939937510582097
    Local Const $deg2rad = $pi/180
    Local $rad = $degree * $deg2rad
    Local $x = 50 * Sin($degZ * $deg2rad) * Cos($rad)
    Local $y = 50 * Sin($degZ * $deg2rad) * Sin($rad)
    Local $z = 50 * Cos($degZ * $deg2rad)

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetNodePosition($nodeCamera, $x, $z, $y)
    EndFunc

    [/autoit]


    http://de.wikipedia.org/wiki/Kugelkoordinaten

  • @Schnacko: Was ist jetzt der Unterschied? Guckst du in Z. 770. von der Main begegnest du dem zufälligerweise auch ;) Suchen hilft :D Aber is ja im Prinzip das selbe.

    @progandy: Irrlicht verwendet die x und y Achse wie im 2d System und dann nur die z Achse nach "oben", anstatt es wie im herkömmlichen 3-D Koordinatensystem zu machen.
    In deinem Wikipedia-Artikel ist das anders, ich denke, es könnte daran liegen, hab das aber jetzt nicht genau überprüft.

  • So .. jetzt muss ich nur noch schaffen, dass die Kamera um den richtigen Punkt kreist, ansonsten funkt es schon ganz gut..
    Hat jemand eine Idee wie ich das jetzt noch hinbringe?

    &quot;Kreisbewegung&quot;
    [autoit]

    #include "../au3Irrlicht2.au3"
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    opt("MustDeclareVars", True)
    HotKeySet("{ESC}", "_exit")

    [/autoit] [autoit][/autoit] [autoit]

    Global $degree = -180
    Global $degZ = 45

    [/autoit] [autoit][/autoit] [autoit]

    Global $BSPMesh, $BSPNode, $Camera, $chrMesh, $chrNode
    Global $screen_width, $screen_height
    Global $aMousePos[2], $aPoint[3], $aDirect[3], $aCamPos[3], $aSpeed, $aAnimator
    Global $bAlpha, $bBeta, $bVektorL, $bVekXL, $bVekYL, $bVekX[2], $bVekY[2]

    [/autoit] [autoit][/autoit] [autoit]

    $screen_width = 800
    $screen_height = 600

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStart( $IRR_EDT_OPENGL, $screen_width, $screen_height, $IRR_BITS_PER_PIXEL_32, _
    $IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, _
    $IRR_VERTICAL_SYNC_OFF )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetWindowCaption( "Irrlicht Tutorial" )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrAddZipFile( "../media/map-20kdm2.pk3", $IRR_IGNORE_CASE, $IRR_IGNORE_PATHS )

    [/autoit] [autoit][/autoit] [autoit]

    $BSPMesh = _IrrGetMesh( "20kdm2.bsp" )

    [/autoit] [autoit][/autoit] [autoit]

    $BSPNode = _IrrAddMeshToSceneAsOcttree( $BSPMesh )

    [/autoit] [autoit][/autoit] [autoit]

    $aPoint[0] = 1900.0
    $aPoint[1] = 150.0
    $aPoint[2] = 1400.0

    [/autoit] [autoit][/autoit] [autoit]

    $aCamPos[0] = 1750.0
    $aCamPos[1] = 149.0
    $aCamPos[2] = 1369.0

    [/autoit] [autoit][/autoit] [autoit]

    $Camera = _IrrAddCamera( $aCamPos[0], $aCamPos[1], $aCamPos[2], $aPoint[0], $aPoint[1], $aPoint[2] )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrHideMouse()
    MouseMove( @DesktopWidth/2, @DesktopHeight/2, 0 )
    $aMousePos[0] = 0.0
    $aMousePos[1] = 0.0

    [/autoit] [autoit][/autoit] [autoit]

    WHILE _IrrRunning()
    _IrrBeginScene( 255,255,255 )

    [/autoit] [autoit][/autoit] [autoit]

    $aMousePos = MouseGetPos()
    MouseMove( @DesktopWidth/2, @DesktopHeight/2, 0 )
    $aMousePos[0] -= @DesktopWidth/2
    $aMousePos[1] -= @DesktopHeight/2

    [/autoit] [autoit][/autoit] [autoit]

    If $aMousePos[0] < 0 Then
    _l()
    ElseIf $aMousePos[0] > 0 Then
    _r()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $aMousePos[1] < 0 Then
    _d()
    ElseIf $aMousePos[1] > 0 Then
    _u()
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _IrrSetCameraTarget( $Camera, $aPoint[0], $aPoint[1], $aPoint[2] )

    [/autoit] [autoit][/autoit] [autoit]

    _IrrDrawScene()

    [/autoit] [autoit][/autoit] [autoit]

    _IrrEndScene()
    WEND

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    _IrrStop()
    Exit
    EndFunc ; _exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _u()
    If $degZ > 1 Then $degZ -= 1
    move()
    EndFunc
    Func _d()
    If $degZ < 179 Then $degZ += 1
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _l()
    $degree += 5
    If $degree >= 180 Then $degree = -180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _r()
    $degree -= 5
    If $degree <= -180 Then $degree = 180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func move()
    Local Const $pi = 3.14159265358979323846264338327950288419716939937510582097
    Local Const $deg2rad = $pi/180
    Local $rad = $degree * $deg2rad
    Local $x = 50 * Sin($degZ * $deg2rad) * Cos($rad) + $aCamPos[0]
    Local $y = 50 * Sin($degZ * $deg2rad) * Sin($rad) + $aCamPos[2]
    Local $z = 50 * Cos($degZ * $deg2rad) + $aCamPos[1]

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetNodePosition($Camera, $x, $z, $y)
    EndFunc

    [/autoit]
  • Die Kugel wird um den Ursprung berechnet. Nun einfach noch eine einfache Vektoraddition mit dem Mittelpunkt zum verschieben durchführen ;)

    RapIt: Nein, der Wikipedia mach das auch so. x,y ist die horizontale Ebene und z die vertikale Achse. Das ist in Mathe Standard.
    Es gibt nur einen Unterschied: Irrlicht verwended ein Linksystem, mathematisch wird meist ein Rechtsystem verwendet.
    Edit: Ich habe aber den Grund gefunden. Die z-Achse steht bei Irrlicht orthogonal zum Bildschirm usw. Die Umrechnung von Raumkoordinaten in Bildschirmkoordinaten ist also so etwas:
    Bildschrim_x = Raum_X
    Bildschirm_Z = - Raum_Y
    Bildschirm_Y = Raum_Z

    2 Mal editiert, zuletzt von progandy (11. August 2011 um 19:44)

  • Wo siehts du, dass es sich um den Mittelpunkt kreist, sprich wo steht um welchen punkt sich die Kamera dreht?
    Das muss ich wissen um den Punkt zu verändern.. irgendwie bin ich grad blind.. ^^

  • In move werden die Koordinaten für eine Kugel um den Mittelpunkt berechnet. Diese musst du nun einfach noch verschieben. Wenn du den Punkt 1,2,3 als Mittelpunkt willst, also $x+1, $y+2, $z+3.

  • Edit: Mir fehlen ein paar Texturen für dein Skript...
    Du musst immer die Raumkoordinaten in Bildschirmkoordinaten umrechen. Dann bekomme ich eine saubere Darstellung.

    Spoiler anzeigen
    [autoit]

    #include "au3Irrlicht2.au3"

    [/autoit] [autoit][/autoit] [autoit]

    $degree = -180
    $degZ = 45

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStart()
    HotKeySet("{F8}","_u")
    HotKeySet("{F9}","_d")
    HotKeySet("{F10}","_l")
    HotKeySet("{F11}","_r")
    $x=0
    Global $aNode[3] = [23, 12, -20]
    local $nodeCamera = _IrrAddCamera($x,0,0, 0,0,0 )
    local $nodeTest = _IrrAddTestSceneNode()
    _IrrSetNodeMaterialTexture( $nodeTest, _IrrGetTexture(".\media\default_texture.png"), 0)
    _IrrSetNodeMaterialFlag( $nodeTest, $IRR_EMF_LIGHTING, $IRR_OFF )
    _IrrSetNodePosition($nodeTest, $aNode[0], $aNode[2], -$aNode[1])

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetCameraTarget( $nodeCamera, $aNode[0], $aNode[2], -$aNode[1] )

    [/autoit] [autoit][/autoit] [autoit]

    move()
    ;_IrrAddFlyCircleAnimator($nodeTest, 0, 0, 0, 5, 0.005)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    WHILE _IrrRunning()
    _IrrBeginScene(0, 0, 0)
    _IrrDrawScene()
    _IrrEndScene()
    WEND

    [/autoit] [autoit][/autoit] [autoit]

    _IrrStop()

    [/autoit] [autoit][/autoit] [autoit]

    Func _u()
    If $degZ > 1 Then $degZ -= 1
    move()
    EndFunc
    Func _d()
    If $degZ < 179 Then $degZ += 1
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _l()
    $degree += 5
    If $degree >= 180 Then $degree = -180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _r()
    $degree -= 5
    If $degree <= -180 Then $degree = 180
    move()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func move()
    Local Const $pi = 3.14159265358979323846264338327950288419716939937510582097
    Local Const $deg2rad = $pi/180
    Local $rad = $degree * $deg2rad
    Local $x = 50 * Sin($degZ * $deg2rad) * Cos($rad) + $aNode[0]
    Local $y = 50 * Sin($degZ * $deg2rad) * Sin($rad) + $aNode[1]
    Local $z = 50 * Cos($degZ * $deg2rad) + $aNode[2]

    [/autoit] [autoit][/autoit] [autoit]

    _IrrSetNodePosition($nodeCamera, $x, $z, -$y)
    EndFunc

    [/autoit]

    Edit: Du willst die Kamera um einen Punkt herumkreisen lassen. Der Mittelpunkt deiner Kugel ist der PUnkt, an dem du deinen Knoten anzeigst, also musst du diesen Wert dazuaddieren. Der Punkt $aCamPos in deinem Beispiel ist unnötig und zerstört den Effekt.

    Einmal editiert, zuletzt von progandy (11. August 2011 um 20:10)

  • Das selbe hab ich auch.. aber es dreht sich irgendwie immer noch um den Ursprung..
    Dir fehlen Texturen? Die sind in Irrlicht integriert..
    Wie meinst du dass mit den Koordinaten.. ich habs theoretisch genau wie deins..

  • In move() addierst du den falschen Punkt. Der Mittelpunkt ist nicht der ursprüngliche Kamerapunkt.

  • @progandy:
    Achso... Ein normales 3d-Koordinatensystem sollte doch eigentlich so richtig sein:
     [Blockierte Grafik: http://dl.dropbox.com/u/24291162/0.png]

    Und ich dachte, in Irrlicht wäre das wie das 2d-Koordinatensystem mit z als Raumachse, also so, dann käme nämlich alles hin.:
     [Blockierte Grafik: http://dl.dropbox.com/u/24291162/2.png]


    Aber das. was du sagst klingt plausibel und ich hab auch nicht so viel Plan davon... ;)