je l'avais déjà testé en plus...
je voulais dire cameras orthographique ( sans perspective quoi ).Oui aussi, les instruction Camera permettent à peut près tout, d'ailleurs
les exemples 033 et 034 sont une façon de définir des cameras orthogonales.
Tu passe par l'instruction iProjectionMatrixOrthoLH() par exemple pour définir tes paramètres,Cpl.Bator a écrit :je voulais dire cameras orthographique ( sans perspective quoi ).
Code : Tout sélectionner
IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"
IncludePath "./"
; IncludeFile "Interface.pbi.pb"
Procedure Inteface_CreateMenu()
*menu.IGUIContextMenu =iAddMenuGUI()
  iAddItem_GUIContexMenu(*menu, "Fichier", -1, #True, #True)
  iAddItem_GUIContexMenu(*menu, "Edition", -1, #True, #True)
  iAddItem_GUIContexMenu(*menu, "Vue", -1, #True, #True)
  iAddItem_GUIContexMenu(*menu, "A propos", -1, #True, #True)
  
    *submenu=iGUIContexMenu_SubMenu(*menu, 0)
    iAddItem_GUIContexMenu(*submenu, "Ouvrir", 101)
    iAddItem_GUIContexMenu(*submenu, "Sauvegardé", 102)
    iAddItem_GUIContexMenu(*submenu, "Quitter", 103)
  
    *submenu=iGUIContexMenu_SubMenu(*menu, 2)
    iAddItem_GUIContexMenu(*submenu, "Plan XY (Face)", 501)
    iAddItem_GUIContexMenu(*submenu, "Plan ZY (Coté)", 502)
    iAddItem_GUIContexMenu(*submenu, "Plan XZ (Dessus)", 503)
EndProcedure
  
Procedure Interface_DrawGroundGrid(Size.l=100)
     For z = -Size/2 To Size/2
      For x = -Size/2 To Size/2
           iDrawLine3D(x,0,z,x+1,0,z,$505050) 
           iDrawLine3D(x,0,z,x,0,z+1,$505050)        
      Next 
     Next  
     iDrawLine3D(Size/2+1,0,Size/2+1,-Size/2,0,Size/2+1,$505050) 
     iDrawLine3D(Size/2+1,0,Size/2+1,Size/2+1,0,-Size/2,$505050) 
EndProcedure
  
ProcedureC GUIEventCallBack(eventGUI.l, idGUI.l,  *GUIElement.IGUIElement) 
  If( eventGUI=#EGET_MENU_ITEM_SELECTED)
      idx.l = iGUIContexMenu_ItemSelected(*GUIElement)
      id.l  = iGUIContexMenu_ItemCommandId(*GUIElement,idx)
      
     
      Select id
        Case 103 : End 
      
      EndSelect
      
      
  EndIf
       
EndProcedure
ExamineDesktops()
W.i = DesktopWidth(0)
H.i = DesktopHeight(0)
iSetAntiAlias(#True)
*app = iCreateGraphics3D(W,H,32,1)
;-----------------------------------
; load font png
iLoadFont("font2.bmp")
Global *font.IGUIFont = iGetFont()
Inteface_CreateMenu()
iGUIEventCallBack(@GUIEventCallBack())
  
;-----------------------------------------
; APPLICATION CAMERA 
;-----------------------------------------
Global *cam3D.ICamera = iCreateCamera( )
iPositionNode(*cam3D, 10,10,10)
iPointTargetNode(*cam3D,  0,0,0)
Global *camXZ.ICamera = iCreateCamera( )
iPositionNode(*camXZ, 0,50,0)
iPointTargetNode(*camXZ,  0,0,0)
c=iCreateCube(4)
Repeat
  If iGetKeyDown(#KEY_ESCAPE)
    Quit=1
  EndIf
  If iGetKeyDown(#KEY_ARROW_UP)
    iMoveNode(*cam3D, 0,0,0.5)
  EndIf
  If iGetKeyDown(#KEY_ARROW_DOWN)
    iMoveNode(*cam3D, 0,0,-0.5)
  EndIf
If iGetMouseEvent(#MOUSE_BUTTON_MIDDLE)
   iTurnNode(*cam3D, iGetDeltaMouseY()*0.5, iGetDeltaMouseX()*0.5,0)
EndIf 
  iSetViewPort( 0,0,W,H)
  iBeginScene(192,192,192)
    
    
    
    
    
    iActiveCamera(*camXZ)
    iSetViewPort( 0,0,W/2,H/2)	
    Interface_DrawGroundGrid()
    iDrawScene()
    iActiveCamera(*cam3D)
		iSetViewPort( W/2,0,W,H/2)
		Interface_DrawGroundGrid()
    iDrawScene()
    
    iSetViewPort( 0,0,W,H)
    iDrawGUI()
  iEndScene()    
 
Until Quit=1
iFreeEngine()Code : Tout sélectionner
Mat.MATRIX
iProjectionMatrixOrthoLH(W,H,@Mat,0.01,1000)
iProjectionMatrixCamera(*cam3D,@Mat,#True)tmyke a écrit :Je viens de faire un test, pas de vrai soucis décelé. Si avec la dernière update tu as toujours leCpl.Bator a écrit :fait déconner cette fonction :Code : Tout sélectionner
iSetCollideForm(#COMPLEX_PRIMITIVE_SURFACE)
Code : Tout sélectionner
*resultat = iCollideRayCastAll(*A\x,*A\y,*A\z,*B\x,*B\y,*B\z, 1, @dist)
problème, alors dis le moi.
je regarde cela. Tu me donne plus de travail que je ne puis en absorber
 
