Camera bewegung in 3D?
Übersicht

bruce85Betreff: Camera bewegung in 3D? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich möchte gerne in 3D etwas probieren, also ihr sieht doch in manchen Game wie die Camera alles zeigt, also vom Welt wo die Camera sich bewegt und die sich dann etwas dreht u.s.w. Wisst ihr vieleicht wie ich solche Puckte machen kann, bis wo die Camera gerade aus bewegt und ab bestimmte Punk sich die Camera etwas dreht und sich weiter nach vorne bewegt? Es wäre sehr nett, wenn mir einer ein beispiel posten könnt. Vielen Dank schonmal. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du es besonders schön machen willst, so kannst du dich mit Bezierkurven beschäftigen. Diese würde dir äusserst schöne übergänge zu Drehungen und Bewegungen der Kamera etc. ermöglichen...
Einfach währe es allerdings nicht besonders. |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir,
wie macht man eigentlich sowas, gibt es vieleicht Tutorials darüber? Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erklärung wie Bezierkurven funktionieren, findest du unter http://www.robsite.de/bbkurs2/index.htm
Ansonsten hier ein Ausschnitt dessen: Code: [AUSKLAPPEN] ; Rob´s BB-Kurs 2
; Robert Gerlach 11.2001 ; ; Bezier ; ---------------------------------------------- ; Zeichnet eine Bezierkurve die man mit der Maus steuern kann. ; Maussteuerung von mir. ; ; Original von: TheShadow ; www.blitzbase.de ; ; Graphics 640, 480, 16, 2 SetBuffer BackBuffer() ;Beispiel x1=50: y1=150 x4=100: y4=50 x2=150: y2=250 x3=200: y3=150 Repeat Cls x3 = MouseX() y3 = MouseY() Bezier x1,y1, x4,y4, x2,y2, x3, y3 Oval x1-5,y1-5,10,10,0 Oval x4-5,y4-5,10,10,0 Oval x2-5,y2-5,10,10,0 Oval x3-5,y3-5,10,10,0 Text 0,0,"Bezier-Demo" Flip Until KeyHit(1) End ;------------------------------------------------------------------ ;Diese Grafikfunktion zeichnet eine Kurve, die nur an den Start- ;und Endpunkten berührt wird. ; ;x1 = horizontale Startkoordinate ;y1 = vertikale Startkoordinate ;x2 = horizontale Ablenkkoordinate 1 ;y2 = vertikale Ablenkkoordinate 1 ;x3 = horizontale Ablenkkoordinate 2 ;y3 = vertikale Ablenkkoordinate 2 ;x4 = horizontale Endkoordinate ;y4 = vertikale Endkoordinate ;------------------------------------------------------------------ Function Bezier (x1, y1, x2, y2, x3, y3, x4, y4) cx# = 3 * (x2 - x1) bx# = 3 * (x3 - x2) - cx# ax# = x4 - x1 - cx# - bx# cy# = 3 * (y2 - y1) by# = 3 * (y3 - y2) - cy# ay# = y4 - y1 - cy# - by# For i# = 0 To 1.05 Step .05 x = ((ax# * i# + bx#) * i# + cx#) * i# + x1 y = ((ay# * i# + by#) * i# + cy#) * i# + y1 If i#>0 Then Line oldx,oldy,x,y oldx=x oldy=y Next End Function |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir,
das kann man aber nicht in 3D verwenden, da die Camera ja bewegt werden soll mit kurven u.s.w. in Robsite finde ich nix dazu... |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um die Funktion von Bezier mal kurz zu erläutern:
In der Funktion steht u.a.Code: [AUSKLAPPEN] For i# = 0 To 1.05 Step .05
was bedeutet, dass zwischen 0 und 1 eine gesammte Animationssequenz besteht. Wenn man nun in der 3D-Welt eine Abfrage macht alá MilliSecs()/1000 == Animationssequenz, dann hat man bereits das, was man haben will. Ist eine Animationssequenz aus dem Bereich verlassen worden, so muß die nächste mit 'Wertüberlauf' (zB Anim1 = 500ms, 650ms, 800ms, 950ms, 1050ms = > 1000 also Anim2 = 1050-1000 = 50ms, 200ms etc...) übernommen werden. Im Netz gibt es auch 3D-Bezierkurven, aber auch diese lässt sich für die 3D-Welt anwenden. zB Bezier1 X und Z -Achse, Bezier2 Y Achse und X Drehachse - als Beispiel. edit1: Ich sagte ja, dass es nicht grad einfach sei. Eventuell gibt es auch andere Möglichkeiten. |
||
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
waypoints
am besten denk ich mal mit types in denen gewünschte position und drehung der kamera an entsprechendem punkt gespeichert sind. und dann selbst ne funktionmachen die von einem zum anderen punkt nen sanften überganz macht. wie man ne camera/entity steuert solltest du wissen. und YAW,PITCH und ROLL auch kennen. |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group