
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