| 
 Immediate 
  Mode: Camera Setup 
By: Jack Hoxley 
Written: August 2000 
  Download: 
  IM_Camera.Zip 
  (14kb)    
 
Moving the camera - essential 
  and easy; but it still confuses some of you.... 
Moving the camera is very simple 
  as long as you can get the hang of where it is, and where it's looking at. You'll 
  use vectors to define a point in 3D space that represents the source of the 
  camera, and a second point to define where it is looking at. 
The code for this looks like: 
                                        
                                          
                                          
                                            
                                              
                                                
                                                  
                                                    
                                                      
                                                        
                                                          
                                                            
                                                              
                                                                
                                                                  
                                                                    
                                                                      
                                                                        'The Basic Variables 
        Dim vFrom As D3DVECTOR, vTo As D3DVECTOR, vUp As D3DVECTOR, matView As 
        D3DMATRIX 
        dx.IdentityMatrix matView 'Initialise our Matrix 
         
        'This is where you are looking at.. 
        vTo.X = 0 
        vTo.y = 0  
        vTo.z = 0  
         
        'This is where the player is sitting (or standing) 
        vFrom.X = vTo.X - 5: vFrom.y = 4: vFrom.z = vTo.z - 5 
        'This defines what direction up is - in this case 
        [0,1,0] is up in the real world 
        vUp.X = 0: vUp.y = 1: vUp.z = 0 
         
        'Get DirectX to generate a matrix for us 
        Call dx.ViewMatrix(matView, vFrom, vTo, vUp, 0) 
         
        'Apply the camera changes to the world-view.... 
        Device.SetTransform D3DTRANSFORMSTATE_VIEW, matView  | 
                                                                       
                                                                    
                                                                   
                                                                 | 
                                                               
                                                            
                                                           
                                                         | 
                                                       
                                                    
                                                   
                                                 | 
                                               
                                            
                                           
                                          
                                         
Simple as that. If you were to 
  use this code, the camera would look at [0,0,0] from a little up and diagonally 
  across... 
This is so simple there is no 
  proper download - but there is a modified version of the character 
  movement demo where the character follows the player... You can grab it 
  from the top of the page, or from the downloads page... 
                                       |