Camera rotating around a pivot
Blitz3D Forums/Blitz3D Beginners Area/Camera rotating around a pivot
| ||
I have toyed around with it a bit but once again I am stuck :/ How can you rotate an object(ie the camera) while still keeping the view on another object(the pivot or 0,0,0 in world space) So basically a kind of orbiting effect. any help is appreciated, Thanks |
| ||
Use PointEntity() |
| ||
PointEntity() - You don't need to use it in the main loop though (just in case you are or were going to) - Once you've set the pointing up, just TurnEntity (for example) the camera pivot. |
| ||
puki huh? as far as I know you will HAVE to point the camera to the object every loop. At least this is the easiest way. while not keydown(1) a#(a#+1) mod 360 positionentity camera, sin(a#)*20, 0, cos(a#)*20 pointentity camera,center_object renderworld() flip wend |
| ||
Yeah, PointEntity must be called every loop. PointEntity just points an entity at an Entity's position. It's basically a rotation command. If the entity being pointed at moves, the camera will remain at it's rotation. :) |
| ||
Another option is Create a pivot where you want the camera to be looking. Look=CreatePivot() Entity point the camera at it, then parent the camera to it. PointEntity Camera,Look EntityParent Camera,Look Turnentity the pivot now makes the camera orbit around it. Turnentity Look,0,0.1,0 |
| ||
I'm going to conceed - but I was sort of right - you can do it without the PointEntity in the main loop |
| ||
This is how I have found to do it - it's kind of cheap (it isn't technically orbiting as such) - I know, but the PointEntity isn't called in the main loop: Graphics3D 800,600,16 SetBuffer BackBuffer() cpiv=CreatePivot() camera=CreateCamera(cpiv) PositionEntity camera,0,-4,0 block=CreateCube() PointEntity camera,block While Not KeyHit(1) TurnEntity cpiv,0,0,0.5 UpdateWorld RenderWorld Flip Wend Forget the PositionMesh that I had in there, I've edited it out - it wasn't meant to be there |
| ||
Puki, try moving the block to co-ords (-5,0,0). It won't point at it. Only reason it's pointing at it, is cause thats the centre that the camera is rotating round :) |
| ||
I am such a doughnut! - Hey, but it visually works! |
| ||
Yeah :D |
| ||
as far as I know you will HAVE to point the camera to the object every loop ahh.. that would be my problem :) Thanks for all the help! |
| ||
Sorry "BlueWolf" - my way just 'visually' does it - I will be punished. |
| ||
Yeah, you will! *takes off belt* ;) |
| ||
I was just trying to help in my usual bumbling way - don't beat me daddy, please. |