Suchergebnisse
Suchergebnisse 1-14 von insgesamt 14.
Zitat von »"unsigned long"« Warum machst du so einen Aufwand? ... Ich wüsste jetzt keinen Grund OpenGL UND Direct3D zu nehmen, außer es gäbe Geld dafür. Der Sinn dahinter beides zu unterstützen erschließt sich mir nicht ganz Na ich mache das eigentlich nur zu Forschungszwecken. Aber es gibt durchaus ein paar vernünftige Gründe das zu tun, z.B. um das fertige Programm dann auf möglichst vielen Systemen optimal nutzen zu können. Ich habe bemerkt dass bei vielen meiner Ex-Rechnern mit nur standard...
ja, das dachte ich mir schon, dass man das so in etwa anfangen muss. Aber gibt es zwischen den beiden APIs nicht doch sehr grosse Unterschiede (OpenGL verwendet ein rechtshändiges Koordinatensystem, DirectX ein linkshändiges, bei OpenGL gibt es Rect als Polygone als Basisprimitive, bei DirectX nur Dreiecke, etc). Ist es nicht sehr schwer all die Dinge in einer gemeinsamen API unter einen Hut zu bringen? Kennt jemand von euch eine fertige API zum anschauen, die das tut (und nur das)?
Hallo, in vielen Programmen oder Spielen kann man bei den Einstellungen wählen welchen der oben genannten 3DRenderer man verwenden möchte. Hat jemand von euch eine Ahnung wie die das in der Praxis bewerkstelligen? Wie kann ich Programme schreiben, die unabhängig von einem konkreten Renderer sind? greez Tschismo
ich werde es mal ausprobieren, ob das so funktioniert, vielen Dank dir also. kleiner Hinweis noch: -ich glaube in der getAngleWith() vermischt du ein wenig Radiants mit Grad, die acos liefert doch Radiant, während das andere 90 Grad sind. -Dabei fällt mir noch der Hinweis ein, dass es vernünftig ist den Maschinen- acos durch eine eigene acos zu ersetzen, weil: entsteht der Wert, von dem man den Arcus-Cosinus haben will aus einer float-Rechnung gibt es Rundungsfehler und das Ergebnis kann leicht ...
Zitat von »"Phil_GDM"« stimmt, man bekommt einen Vektor der zu den beiden anderen Vektoren im rechten Winkel steht. Zusätzlich kann man aber noch erwähnen, dass dieser Vektor mit den beiden anderen Vektoren immer ein rechtshändiges Koordinatensystem aufbaut. Deshalb kann ich mit dem Kreuzprodukt auch die Drehrichtung für meinen Vektor herausfinden z.B.: Vektor A soll immer an Vektor B angeglichen werden A=[0, 1, 0] B=[1,0,0]; crossp(A, B) = [0, 0, -1] die Z-Komponente ist negativ => Drehung nac...
Zitat von »"Anonymous"« Stimmt. Aber das Kreuzprodukt verwende ich auch nicht um die Winkel zu berechnen (falls du darauf anspielen wolltest), sondern um die Drehrichtung herauszufinden. Für die Berechnung der Winkel verwende ich folgende Formel: x = arccos A * B / (|A| * |B|). A * B ist ja das Skalarprodukt = Punktprodukt = dotproduct mfg Philipp Hi, kannst du das bitte erklären welche Information man mit dem Kreuzprodukt (und wie) genau gewinnt? mfg Tschismo
Danke Dir, das war genau das was ich wissen wollte. Leider habe ich als ich das Problem beschreiben wollte gemerkt, dass die Sache doch noch ein wenig komplexer ist als ich zuerst dachte (geht um eine möglichst realistische Physik-Simulation), und die Lösung dieses Problems erst die halbe Miete darstellt. Aber damit bin ich auf jeden Fall schon mal ein gutes Stück weiter. THX.
Gegeben ist ein Einheits-Richtungsvektor v. Gesucht: Rotationsmatrix R, wobei R folgende Eigenschaft haben soll: R*v=(0/0/1) In Worten: Gesucht ist die Rotationsmatrix R , die den Einheitsvektor v auf die z-Achse dreht. Lösungsvorschläge? greez an alle da draußen
war jetzt schon lange her als ich das Problem hatte, aber inzwischen habe ich es dann doch hingekriegt. Es lag schon an dem Problem, das Fabster beschrieben hat (Danke nochmals), ich habe es nur nicht gleich gerafft, wie man das ausbessert (habe nur den Quellcode geändert, ohne die Bibliothek neu zu erstellen)
Ich komm nicht drauf, kann mir denn keiner kurz helfen bei dem Problem? Die krummen Werte stammen aus meinem Protokoll und liefern mir eben bei einer Kamerabewegung, die sich auf der z-Achse weit hinter dem zu prüfenden Dreieck abspielt eine Kollsion. Zu Testzwecken rufe ich die Funktion direkt mit den entsprechenden Werten aus dem Protokoll auf: if(tbLineHitsTriangle(tbVector3(0,195,229),tbVector3(0,172,26,tbVector3(-50.000000f,-19.283627f,-22.981333f),tbVector3(-50.000000f,19.283627f,22.981333...
daran hats leider nicht gelegen. trotzdem danke für die Antwort. hat keiner sonst noch eine Erklärung?
Hallo, Warum liefter mir folgender Funktionsaufruf tbLineHitsTriangle(tbVector3(0,195,229),tbVector3(0,172,26,tbVector3(-50.000000f,-19.283627f,-22.981333f),tbVector3(-50.000000f,19.283627f,22.981333f),tbVector3(50.000000f,19.283627f,22.981333f),&vSchnittpunkt)); true zurück, mit dem angeblichen Schnittpunkt (0.000000/193.825256/230.991959), wo man doch schon an den z-Werten des Dreiecks und denen der Linie sehen kann, dass sich diese in weiter Entfernung voneinander befinden? mfg Jürgen
Hallo, Warum liefter mir folgender Funktionsaufruf tbLineHitsTriangle(tbVector3(0,195,229),tbVector3(0,172,26,tbVector3(-50.000000f,-19.283627f,-22.981333f),tbVector3(-50.000000f,19.283627f,22.981333f),tbVector3(50.000000f,19.283627f,22.981333f),&vSchnittpunkt)); true zurück, mit dem angeblichen Schnittpunkt (0.000000/193.825256/230.991959), wo man doch schon an den z-Werten des Dreiecks und denen der Linie sehen kann, dass sich diese in weiter Entfernung voneinander befinden? mfg Jürgen