Page 29 sur 48

Publié : dim. 05/juil./2009 12:30
par Backup
vous etes en train de nous préparer un beau jouet là ! :)

Publié : dim. 05/juil./2009 18:28
par Anonyme
Recoucou

comment je peut utilisé ceci :
; TEXTURE CLAMP
#ETC_REPEAT = 0
#ETC_CLAMP=1
#ETC_CLAMP_TO_EDGE=2
#ETC_CLAMP_TO_BORDER=3
#ETC_MIRROR=4

Publié : dim. 05/juil./2009 19:20
par Anonyme
Suggestion :

Code : Tout sélectionner

*Scene = iLoadLightMappingScene("medias/SimpleBox.m3d")


  Global ab.AABBOX
  iNodeBoundingBox(*Scene,  @ab)
; set global physical dimension scene 
  iSetWorldSize(ab\MinEdge\x, ab\MinEdge\y, ab\MinEdge\z, ab\MaxEdge\x, ab\MaxEdge\y, ab\MaxEdge\z)

Debug ab\MinEdge\x
End 

*Scene est un pivot parent de plusieurs meshs
ce pivot me donne accès à la scene complete
peut on pour n'importe quelle fonction du moteur parcourir les enfants
et appliquer les modifications ou avoir accès au données ?
(ici la AABB)

Publié : dim. 05/juil./2009 20:01
par tmyke
Cpl.Bator a écrit :Recoucou

comment je peut utilisé ceci :
; TEXTURE CLAMP
#ETC_REPEAT = 0
#ETC_CLAMP=1
#ETC_CLAMP_TO_EDGE=2
#ETC_CLAMP_TO_BORDER=3
#ETC_MIRROR=4
J'avais un peu omis l'instruction qui est associée. J'ai mis à jour les archives de la version 12, et ecris un
petit exemple qui est dedans (le 049) pour illustrer cela.
Cpl.Bator a écrit :Suggestion :

Code : Tout sélectionner

*Scene = iLoadLightMappingScene("medias/SimpleBox.m3d")


  Global ab.AABBOX
  iNodeBoundingBox(*Scene,  @ab)
; set global physical dimension scene 
  iSetWorldSize(ab\MinEdge\x, ab\MinEdge\y, ab\MinEdge\z, ab\MaxEdge\x, ab\MaxEdge\y, ab\MaxEdge\z)

Debug ab\MinEdge\x
End 

*Scene est un pivot parent de plusieurs meshs
ce pivot me donne accès à la scene complete
peut on pour n'importe quelle fonction du moteur parcourir les enfants
et appliquer les modifications ou avoir accès au données ?
(ici la AABB)
Il suffit de parcourir l'arbre hiérarchique que tu créé, avec les instructions:

Code : Tout sélectionner

iNodeNumChildren()
iNodeChildren()
si j'ai bien compris le sens de ta question ;)

Publié : dim. 05/juil./2009 20:17
par Anonyme
Impec ^^

Par contre ( je vais publier une archive dans les minutes qui suivent )
j'ai essayé d'appliquer xeffect avec le lightmapping , mais c'est noir ^^
rien qui s'affiche.

Publié : lun. 06/juil./2009 13:17
par Anonyme
j'avais oublié de mettre le dossier des shaders... :/

par contre impossible de déplacer une shadowlight ?

Publié : lun. 06/juil./2009 14:28
par Anonyme
j'ai toujours le même soucis pour avoir une caméra sans projection 3D.

Publié : lun. 06/juil./2009 14:58
par Anonyme
iPickCamera() ne marche pas correctement lorsque le viewport est redimensionné.

Publié : lun. 06/juil./2009 19:36
par tmyke
Cpl.Bator a écrit :j'avais oublié de mettre le dossier des shaders... :/

par contre impossible de déplacer une shadowlight ?
Il n'y a pas d'instruction pour cela, mais je vais voir pour en créer une. Les XEffect méritent de murir
et il y a pas mal de boulot dessus en fait, mais le potentiel est là ;)

Cpl.Bator a écrit :iPickCamera() ne marche pas correctement lorsque le viewport est redimensionné.
Je vais corriger, en effet cela ne prend pas en compte le redimensionnement éventuel.
Cpl.Bator a écrit :j'ai toujours le même soucis pour avoir une caméra sans projection 3D.
Un petit code, pour tester et voir comment arriver au resultat et debbuguer éventuellement ;)

Publié : lun. 06/juil./2009 19:41
par Anonyme
Bien sur :
ligne 241.

Code : Tout sélectionner

IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"
IncludePath "./"

ExamineDesktops()
Global W.i = DesktopWidth(0)
Global H.i = DesktopHeight(0)
; 
; 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, "Collector", -1, #True, #True)
  iAddItem_GUIContexMenu(*menu, "A propos", -1, #True, #True)
  
    *submenu=iGUIContexMenu_SubMenu(*menu, 0)
    iAddItem_GUIContexMenu(*submenu, "Ouvrir", 101)
    iAddItem_GUIContexMenu(*submenu, "Sauvegarder", 102)
    iAddItem_GUIContexMenu(*submenu, "Quitter", 103)
  
    *submenu=iGUIContexMenu_SubMenu(*menu, 2)
    iAddItem_GUIContexMenu(*submenu, "Importer un mesh", 501)
    iAddItem_GUIContexMenu(*submenu, "Ouvrir la bibliotheque", 502)
    iAddItem_GUIContexMenu(*submenu, "Importer une bibliotheque", 503)


;iAddWindowGUI(0,42,256,H,"Texture",#True)

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

Procedure Interface_DrawXYGrid(Size.l=100)
     For y = -Size/2 To Size/2
      For x = -Size/2 To Size/2
           iDrawLine3D(x,y,0,x+1,y,0,$505050) 
           iDrawLine3D(x,y,0,x,y+1,0,$505050)        
      Next 
     Next  
     iDrawLine3D(Size/2+1,Size/2+1,0,-Size/2,Size/2+1,0,$505050) 
     iDrawLine3D(Size/2+1,Size/2+1,0,Size/2+1,-Size/2,0,$505050) 
EndProcedure

Procedure Interface_DrawYZGrid(Size.l=100)

EndProcedure

  
Procedure ContextMenu()
  *menu =iAddContexMenuGUI(iGetMouseX(),iGetMouseY(), 350,  250, #Null, 49)
  iAddItem_GUIContexMenu(*menu, "text1",50)
  iAddItem_GUIContexMenu(*menu, "text2",51)
  iAddSeparator_GUIContexMenu(*menu)
  iAddItem_GUIContexMenu(*menu, "text3", 52, #True, #True, #False )
  iAddItem_GUIContexMenu(*menu, "text4", 55)
    ; sub menu
    *submenu=iGUIContexMenu_SubMenu(*menu, 3)
    iAddItem_GUIContexMenu.l(*submenu, "subText31", 53, #True, #False, #True )
    iAddItem_GUIContexMenu.l(*submenu, "subText32", 54)
EndProcedure
  

Procedure Interface_TextureMenu()


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

Structure rect_render
  min.VECTOR2
  max.VECTOR2
EndStructure







iSetAntiAlias(#True)
*app = iCreateGraphics3D(W,H,32,1)

;-----------------------------------
; load font png
iLoadFont("font.png")
Global *font.IGUIFont = iGetFont()



Global view_xyz.rect_render
VECTOR2_(view_xyz\min,(W/2)+5,(H/2)+5)
VECTOR2_(view_xyz\max,W-2,H-2)


Global view_xz.rect_render
VECTOR2_(view_xz\min,2,42)
VECTOR2_(view_xz\max,(W/2)-5,(H/2)-5)

Global view_xy.rect_render
VECTOR2_(view_xy\min,(W/2)+5,42)
VECTOR2_(view_xy\max, W-2, (H/2)-5)


Global view_yz.rect_render
VECTOR2_(view_yz\min,2,(H/2)+5)
VECTOR2_(view_yz\max, (W/2)-5, H-2)







Inteface_CreateMenu()


iGUIEventCallBack(@GUIEventCallBack())
  

;-----------------------------------------
; APPLICATION CAMERA 
;-----------------------------------------
Global *cam3D.ICamera = iCreateCamera( )
iPositionNode(*cam3D, 10,10,10)
iPointTargetNode(*cam3D,  0,0,0)

Global *camXZ.ICamera = iCreateCamera( )
Mat.MATRIX
iPositionNode(*camXZ, 0,20,0)
iPointTargetNode(*camXZ,  0,0,0)


Global *camXY.ICamera = iCreateCamera( )
iPositionNode(*camXY, 0,0,-20)
iPointTargetNode(*camXY,  0,0,0)

Global *camYZ.ICamera = iCreateCamera( )
iPositionNode(*camYZ, 0,0,-20)
iPointTargetNode(*camYZ,  0,0,0)






c=iCreateCube(1)
iScaleMeshBuffer(iMeshGeometry(c),10,1,10)



iColorGUI(2,$FFCACACA)
iColorGUI(1,$FFCACACA)

iColorGUI(5,$FFCACAFF)


Repeat


;   If iGetMouseEvent(#MOUSE_BUTTON_RIGHT)
;     ContextMenu()
;   EndIf 
 


  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 iGetMouseX()>W/2+5 And iGetMouseY()>H/2+5
If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
   iTurnNode(*cam3D, iGetDeltaMouseY()*0.5, iGetDeltaMouseX()*0.5,0)
EndIf 



  If iGetMouseEvent(#MOUSE_BUTTON_RIGHT)
     iMoveNode(*cam3D,iGetDeltaMouseX()*0.2,0,0)
  EndIf 
EndIf 
  
  iBeginScene(0,0,0)
      

   
    iSetViewPort(view_xyz\min\x,view_xyz\min\y,view_xyz\max\x,view_xyz\max\y)
    iActiveCamera(*cam3D)
    iDrawScene()
    Interface_DrawGroundGrid(50)
    
  
    iSetViewPort(view_xz\min\x,view_xz\min\y,view_xz\max\x,view_xz\max\y)
    iActiveCamera(*camXZ)
    iDrawScene()
    Interface_DrawGroundGrid(50)
    
    iSetViewPort(view_xy\min\x,view_xy\min\y,view_xy\max\x,view_xy\max\y)
    iActiveCamera(*camXY)
    iDrawScene()
    Interface_DrawXYGrid(50)
   
    Mat.MATRIX
    iProjectionMatrixOrthoLH(W,H,@Mat,0.01,1000)
    iProjectionMatrixCamera(*camYZ,@Mat,#True) 
    iSetViewPort(view_yz\min\x,view_yz\min\y,view_yz\max\x,view_yz\max\y)
    iActiveCamera(*camYZ)
    iDrawScene()
    
    iSetViewPort( 0,0,W,H)
    
    
    iDrawRectangle2D((W/2)-5,42,(W/2)+5,H,$FFCACACA,$FFCACACA,$FFCACACA,$FFCACACA)
    iDrawRectangle2D(0,(H/2)-5,W,(H/2)+5,$FFCACACA,$FFCACACA,$FFCACACA,$FFCACACA)
    
    iDrawGUI()
    
  iEndScene()      
    

Until Quit=1
iFreeEngine()

Publié : lun. 06/juil./2009 20:02
par tmyke
En fait c'est parce-que tu as un petit point en guise de représentation sur l'écran an bas à gauche ?

Par exemple remplace W et H par W/60 et H/60 par exemple.

Publié : mar. 07/juil./2009 7:08
par Anonyme
ca marche , par contre la caméra ne se comporte plus comme une caméra 3D , mais je vais pouvoir me débrouillé.

- ivisiblenode(), désactive l'affichage , mais aussi le body de newton si il y en a un , un flag pour avoir le choix ?

- Commandes pour avoir une representation fillaire d'un node ( avec ou sans back face culling )


@+

Publié : mar. 07/juil./2009 11:52
par djes
Ici, ça ne fonctionne pas du tout. J'ai une carte NVidia Quadro NVS 55/280 PCI. Même si c'est peu courant, en général, je n'ai aucun souci.
J'ai l'erreur "L'application n'a pas réussi à s'initialiser correctement (0xc0150002)" sur tous les exemples.

Publié : mar. 07/juil./2009 12:32
par dakota
@djes

J'ai eu le meme problème, chez moi c'était l'antivirus "Norton Antivirus".
pour info j'ai eu le prolème au boulot cette fois avec "McAfee".
Enfin ,moi je dis ça des fois que ...

Publié : mar. 07/juil./2009 13:16
par djes
Merci pour l'info, je vais essayer. J'ai désactivé MacAfee... Mais je ne peux pas le désinstaller ici... C'est curieux quand même!