Friday 27 January 2017

Xna Gleitender Durchschnitt

Ich habe einige Probleme mit einem rotierenden Marmor. Ive versuchte es mit Matrix. CreateFromYawPitchRoll und Matrix. CreateRotation aber es gab einige Probleme, ich denke, seine aufgrund der Gimbal Lock-Effekt. Also, Ive versucht mit Quaternionen statt, aber nichts verändert. Beim Bewegen nur eine Achse funktioniert es gut, aber wenn die Drehung auf zwei verschiedenen Achsen auftritt, dreht sich der Marmor immer noch auf falschen Achsen. In der Update-Methode: Und in der Draw-Methode: Was ist falsch Ist es falsch, Quaternion. CreateFromAxisAngle auf mehreren Achsen verwenden Ive versucht, Berechnung direkt die Rotationsachse von meinem Marmor, anstatt Kombination von mehreren Achsen: Winkel ist ein Schwimmer, der hält Spur der aktuellen Bewegung. Diese Lösung scheint nicht zu schaffen Gimbal Sperre. Aber Marmor rotations arent richtig, scheint es, dass die Drehzahl nicht konstant, sondern wurde schneller und langsamer im Laufe der Zeit, ich kann nicht verstehen, warum. Wenn ich die Quaternionen verketten, bekomme ich jeden Frame mit dem Gimbal Lock Effekt noch sichtbar. Heres, wie Ive angepackt, dass: Im Annahme, Geschwindigkeit ist ein Vektor, der die Richtung der Ball rollt und deren Größe die Rate ist es in dieser Richtung reisen. Dann können Sie das zu Ihrem qRotation verketten. Außerdem müssen Sie möglicherweise Ihre Quaternion nach der Verkettung normalisieren. Update: Die richtige Antwort auf diesen Fragebogen war die Umkehrung der Reihenfolge, dass quaternions verkettet in. In Bezug auf XNA, kombinieren Matrizen von links nach rechts, quaternions kombinieren von rechts nach links. QRotation scheint die aktuelle Orientierung von marble39s zu repräsentieren. Zu dieser Orientierung verbinden Sie nur die Rotation, die seit dem letzten Frame mit Ihrem Quaternion. CreateFrom aufgetreten ist. (). Also der Winkel in dem CreateFrom verwendet. Sollte nur die Winkelbewegung seit dem letzten Rahmen darstellen. Aber es Art von aussieht wie dein Winkel (mit dem) versucht, den Gesamtwinkel darzustellen, der doesn39t nach rechts schaut. Winkel sollte nur die Menge der Drehung seit dem letzten Frame. Ndash Steve H Oct 8 13 at 0:28 Sorry, wenn ich 39m aus der Strecke ein wenig. Ich habe nur realizedremembered beim Spielen mit ihm, dass Quaternions in umgekehrter Reihenfolge, dass Matrizen in Xna verkettet. Also, wo Sie eine Matrix wie Orientierung Orientierung rotationToAdd (oder) tun würde, würden Sie eine quaternion wie tun: Orientierung rotationToAdd Orientierung ndash Steven H Oct 8 13 am 12: 42Im gerade erst begonnen mit XNA und ich bin sicher, dass ich etwas sehr einfaches fehlt . Ich habe eine Quad-Ebene, die ich für den Boden zog. Auf dieser Ebene wickelte ich eine 2D-Textur. Die Textur sieht gut aus, aber als ich die Kamera bewegen, sehe ich ein paar weiße Artefakte auf dem ganzen Platz. Sie verschwinden, während ich ihnen nahe komme. Ich vermute, dies ist ein Sampling-Problem oder etwas ähnliches, aber ich bin stecken. Zuerst erstellte ich eine QuadDrawer Klasse, um das Flugzeug für mich zu zeichnen. Seine abgeleitet von DrawableGameComponent. Aus meiner Spielklasse Initialize () - Methode ich instanziiere einfach dieses Objekt und übergeben in der GameObject, Größe und den Textur Name, den ich verwenden möchte: Sobald das Objekt meiner Komponente hinzugefügt wird, wird die Draw-Methode meines QuadDrawer ruft angerufen und Alle sollten gut sein. Hier ist ein Bild von dem, was ich sehe. Beachten Sie, dass dies grau sein sollte mit hellen Farblinien in einem Gittermuster. Die weißen Artefakte scheinen sich zu bewegen, während Sie die Kamera um die Oberfläche bewegen, aber verschwinden, wenn Sie nahe kommen. Hier ist ein Bild, das die weißen Artefakte zeigt: Hier ist ein weiteres Bild, das zeigt, wie schlimm es aus der Ferne kommen kann: Und hier soll es aus der Ferne aussehen: Das Bild ist nicht das Beste, aber man kann sehen, worüber ich spreche . Wenn die Kamera bewegt, wird es wirklich schlecht. Ich habe gesehen, diese Textur in anderen Orten und es funktioniert gut. Jede Idee, was es sein könnte Id sein glücklich, mehr Informationen, wenn Sie es benötigen. Ich fügte ein anderes Bild, das es viel besser zeigt. Alle weißen Linien sind, was nicht dort sein sollte. In dem neuen Bild können Sie sehen, wie die weißen Rasterlinien zu wirbeln beginnen, wenn sie weiter von der Kamera kommen. Ich werde ein anderes Bild hochladen mit dem, was ich erwarte, dass es aussieht. By the way, dies geschieht mit jeder Textur, die ich anwenden, nicht nur diese. Thanks ndash Scott Jun 23 11 at 4:21 Es sieht aus wie ein anistropisches Filter-Problem. Ich bemerke, Sie haben GraphicsDevice. SamplerStates0 SamplerState. AnisotropicWrap verwendet wird. Ich würde vorschlagen, einen Blick auf Shawn Hargreaves Artikel über das Thema und speziell die folgenden Zeilen. Stellen Sie sicher, dass der Code zur richtigen Zeit als Effect. Begin eingestellt wird, um diese Filtereinstellungen zurückzusetzen. Ein weiteres Code-Snippet zu helfen. Code-Snippet dank Jeromy Wash über in AppHub Foren. Ein weiterer großartiger Ort, um Hilfe von den Meistern von XNA bekommen :) Ich glaube, 4.0 ging weg mit BasicEffect. Begin () und BasicEffectmitChanges (). Allerdings habe ich die Filter angewendet, die Sie oben vorgeschlagen (mit der 4.0-Syntax) und ich habe immer noch das gleiche Problem. Ich gehe zu ziehen alle meine Code aus der QuadDrawer-Klasse und addit direkt auf meine Game-Klasse zu sehen, ob es ein Problem mit dieser Klasse sein könnte. Danke für die Hilfe. Wenn Sie weitere Vorschläge haben. Ich würde gerne hören. Ndash Scott Jun 23 11 at 5:46


No comments:

Post a Comment