Page 13 sur 14

Publié : mer. 29/mars/2006 16:49
par Progi1984
Pour des collisions non glissantes, il faut augmenter la friction.

Publié : sam. 01/avr./2006 12:47
par comtois
Une nouvelle version de TempleComplet avec les sources est dispo.
Elle inclut la gestion de plateformes , et d'ascenseurs.

Ce n'est pas fini , pour éviter de rester coller à la plateforme dans certains cas , j'ai supprimé certains calculs, du coup la plateforme peut vous rentrer dedans si vous n'allez pas dans la même direction.

J'ai ajouté des sphères à détruire , ça permet de tester la gestion du tir.
ça fonctionne au pixel près et en tenant compte des obstacles :)

Par contre j'ai un souci avec la matière des triangles créés lors d'une explosion , ils devraient prendre la matière de la sphère explosée ,ça fonctionne pour certains, mais d'autres sont noirs ? bug dans mon code ? bug dans PureBasic ? Problème de drivers ? vous constatez la même chose ?
autre truc curieux , c'est le faisceau (laser) qui normalement devrait être détruit immédiatement et remplacé par des triangles, or j'ai l'impression que le mesh n'est pas détruit et est utilisé pour générer certains triangles ?
J'utilise #PB_any pour les meshs et les entitys , là j'ai du mal à dire ce qu'il se passe , j'ai essayé de pister les valeurs de retour des meshs et des entitys , mais en vain , je n'ai rien trouvé d'anormal :?

http://perso.wanadoo.fr/comtois/sources ... pletV2.zip

Publié : sam. 01/avr./2006 13:33
par Polo
C'est super, bon, les plateformes ne marchent pas parfaitement, mais les collisions avec les objets satiques sont nickels !
Voila le fichier log car il y a l'air d'avoir des trucs pas très "safe" :)
14:29:32: Creating resource group General
14:29:32: Registering ResourceManager for type Material
14:29:32: Registering ResourceManager for type Mesh
14:29:32: Registering ResourceManager for type Skeleton
14:29:32: OverlayElementFactory for type Panel registered.
14:29:32: OverlayElementFactory for type BorderPanel registered.
14:29:32: OverlayElementFactory for type TextArea registered.
14:29:32: Registering ResourceManager for type Font
14:29:32: ArchiveFactory for archive type FileSystem registered.
14:29:32: ArchiveFactory for archive type Zip registered.
14:29:32: DevIL version: Developer's Image Library (DevIL) 1.6.7 Aug 15 2005
14:29:32: DevIL image formats: jpg jpe jpeg pcx png tga vda icb vst raw
14:29:32: Registering ResourceManager for type HighLevelGpuProgram
14:29:32: Direct3D7 Rendering Subsystem created.
14:29:32: ----- DirectDraw Detection Starts
14:29:32: Detected DirectDraw driver Pilote d'affichage principal
14:29:32: ----- DirectDraw Detection Ends
14:29:32: Particle Emitter Type 'Point' registered
14:29:32: Particle Emitter Type 'Box' registered
14:29:32: Particle Emitter Type 'Ellipsoid' registered
14:29:32: Particle Emitter Type 'Cylinder' registered
14:29:32: Particle Emitter Type 'Ring' registered
14:29:32: Particle Emitter Type 'HollowEllipsoid' registered
14:29:32: Particle Affector Type 'LinearForce' registered
14:29:32: Particle Affector Type 'ColourFader' registered
14:29:32: Particle Affector Type 'ColourFader2' registered
14:29:32: Particle Affector Type 'ColourImage' registered
14:29:32: Particle Affector Type 'ColourInterpolator' registered
14:29:32: Particle Affector Type 'Scaler' registered
14:29:32: Particle Affector Type 'Rotator' registered
14:29:32: TerrainSceneManager: Registered a new PageSource for type Heightmap
14:29:32: Registering ResourceManager for type BspLevel
14:29:32: *-*-* OGRE Initialising
14:29:32: *-*-* Version 1.0.7 (Azathoth)
14:29:32: ***************************************
*** Direct3D Subsystem Initialising ***
***************************************
14:29:32: *****************************************
14:29:32: *** Direct3D Subsystem Initialised Ok ***
14:29:32: *****************************************
14:29:32: Registering ResourceManager for type GpuProgram
14:29:32: ResourceBackgroundQueue - threading disabled
14:29:32: D3D7 : Created D3D7 Rendering Window 'PureBasic Ogre' : 1280x1024, 32bpp
14:29:32: Creating DirectDraw surfaces for window with dimensions:
14:29:32: FULLSCREEN w:1280 h:1024 bpp:32
14:29:32: Successfully created full screen rendering surface / flipping chain.
14:29:32: ----- Direct3D Detection Starts
14:29:32: Detected Direct3D Device Microsoft Direct3D RGB Software Emulation
14:29:32: Direct3D Device Capabilities:
14:29:32: Hardware Accelerated: 0
14:29:32: Mipmapping: 1
14:29:32: Bilinear Filtering: 1
14:29:32: Trilinear Filtering: 1
14:29:32: Hardware Transform & Light: 0
14:29:32: Max rendering colour depth: 32
14:29:32: Max single-pass texture layers: 8
14:29:32: Pixel fog supported: 256
14:29:32: Vertex fog supported: 128
14:29:32: This device needs a Z-Buffer
14:29:32: Detected Direct3D Device Microsoft Direct3D Hardware acceleration through Direct3D HAL
14:29:32: Direct3D Device Capabilities:
14:29:32: Hardware Accelerated: 1
14:29:32: Mipmapping: 1
14:29:32: Bilinear Filtering: 1
14:29:32: Trilinear Filtering: 1
14:29:32: Hardware Transform & Light: 0
14:29:32: Max rendering colour depth: 32
14:29:32: Max single-pass texture layers: 8
14:29:32: Pixel fog supported: 256
14:29:32: Vertex fog supported: 128
14:29:32: This device needs a Z-Buffer
14:29:32: Detected Direct3D Device Microsoft Direct3D Hardware Transform and Lighting acceleration capable device
14:29:32: Direct3D Device Capabilities:
14:29:32: Hardware Accelerated: 1
14:29:32: Mipmapping: 1
14:29:32: Bilinear Filtering: 1
14:29:32: Trilinear Filtering: 1
14:29:32: Hardware Transform & Light: 1
14:29:32: Max rendering colour depth: 32
14:29:32: Max single-pass texture layers: 8
14:29:32: Pixel fog supported: 256
14:29:32: Vertex fog supported: 128
14:29:32: This device needs a Z-Buffer
14:29:32: ----- Direct3D Detection Ends
14:29:32: Determining best 3D Device...
14:29:32: Best 3D Device is: Microsoft Direct3D Hardware Transform and Lighting acceleration capable device
14:29:33: Direct3D - Creating Z-Buffer
14:29:33: Depth-Buffer created (32-bit, 8-bit stencil)
14:29:33: Registering ResourceManager for type Texture
14:29:33: RenderSystem capabilities
14:29:33: -------------------------
14:29:33: * Hardware generation of mipmaps: no
14:29:33: * Texture blending: yes
14:29:33: * Anisotropic texture filtering: yes
14:29:33: * Dot product texture operation: yes
14:29:33: * Cube mapping: yes
14:29:33: * Hardware stencil buffer: yes
14:29:33: - Stencil depth: 8
14:29:33: - Two sided stencil support: no
14:29:33: - Wrap stencil values: yes
14:29:33: * Hardware vertex / index buffers: no
14:29:33: * Vertex programs: no
14:29:33: * Fragment programs: no
14:29:33: * Texture Compression: no
14:29:33: * Scissor Rectangle: no
14:29:33: * Hardware Occlusion Query: no
14:29:33: * User clip planes: no
14:29:33: * VET_UBYTE4 vertex element type: no
14:29:33: * Infinite far plane projection: no
14:29:33: * Hardware render-to-texture: no
14:29:33: * Floating point textures: no
14:29:33: * Non-power-of-two textures: no
14:29:33: * Volume textures: no
14:29:33: Particle Renderer Type 'billboard' registered
14:29:33: Added resource location './Temple/' of type 'FileSystem' to resource group 'General'
14:29:33: Added resource location './Sphere/' of type 'FileSystem' to resource group 'General'
14:29:33: Added resource location './Cube/' of type 'FileSystem' to resource group 'General'
14:29:33: Added resource location './Robot/' of type 'FileSystem' to resource group 'General'
14:29:33: Added resource location './Textures/' of type 'FileSystem' to resource group 'General'
14:29:33: Parsing scripts for resource group General
14:29:33: Parsing script Temple.material
14:29:33: Parsing script Robot.material
14:29:33: Finished parsing scripts for resource group General
14:29:33: Texture: Wall06.jpg: Loading 1 faces(PF_B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:33: Texture: RustySteel.jpg: Loading 1 faces(PF_B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:33: Texture: smoke.jpg: Loading 1 faces(PF_B8G8R8,64x64x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,64x64x1.
14:29:33: Mesh: Loading Temple.mesh.
14:29:33: Mesh: Loading Sphere.mesh.
14:29:33: Mesh: Loading Cube.mesh.
14:29:33: Texture: Wall12.jpg: Loading 1 faces(PF_B8G8R8,256x255x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:33: Texture: Wood01.jpg: Loading 1 faces(PF_B8G8R8,253x299x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x512x1.
14:29:33: Texture: Wall02.jpg: Loading 1 faces(PF_B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:34: Texture: Wood02.jpg: Loading 1 faces(PF_B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E2 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: Texture: Flare.png: Loading 1 faces(PF_B8G8R8,256x256x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
14:29:34: WARNING: Mesh instance 'M12394136' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12394248 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12394304' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12394416 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12394472' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12394584 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12394640' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12394752 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12394808' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12394920 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12394976' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395088 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12395144' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395256 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12395312' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395424 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12395480' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395592 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12395648' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395760 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: WARNING: Mesh instance 'M12395816' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
14:29:34: Can't assign material PorcelaineShader to SubEntity of E12395928 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: Can't assign material 1 - Default to SubEntity of E12395984 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: Can't assign material 1 - Default to SubEntity of E12396040 because this Material does not exist. Have you forgotten to define it in a .material script?
14:29:34: Creating viewport on target 'PureBasic Ogre', rendering from camera 'MyCam', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
14:29:34: Viewport for camera 'MyCam', actual dimensions L: 0 T: 0 W: 1280 H: 1024
14:29:34: Texture: spot_shadow_fade.png: Loading 1 faces(PF_B8G8R8,128x128x1) with 0 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
14:30:28: WARNING: Mesh instance 'M7' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.

Publié : dim. 02/avr./2006 9:08
par comtois
Can't assign material PorcelaineShader
Ah oui c'est vrai que j'avais supprimé le fichier PorcelaineShader.material,
mais c'est pas ça la source de mes ennuis :)

J'avais aussi modifié le mesh de la sphère pour utiliser PorcelaineShader, du coup je l'ai supprimé aussi et je n'ai plus ces messages.
Par contre les autres subsistes
WARNING: Mesh instance 'M12395648' was defined as manually loaded,
c'est pas vraiment une erreur , juste un avertissement et effectivement j'ai des meshes faites manuellement.


Sinon pour mon premier problème j'ai trouvé, c'est juste une histoire d'éclairage, en mettant l'éclairage ambiant à $FFFFFF ,les textures apparaissent correctement.

Par contre le deuxième problème je ne sais toujours pas comment le résoudre , il faudrait que je prenne le temps de faire un petit code qui reproduise le problème. Mais j'ai pas le courage de m'y coller en ce moment :)

Pour les collisions avec les objets dynamiques , je suis en train d'y réfléchir, ça risque de prendre encore quelques mois avant qu'il y ait du nouveau. Dans cette démo les plateformes sont simples , mais j'essaye de traiter le cas le plus général pour utiliser des objets de formes différentes par la suite.

Publié : dim. 02/avr./2006 11:03
par Sehka
Salut Comtois,
Très très joli travail... :o
J'imagine que cela te demande pas mal de temps pour programmer, non?
Concernant ma dll basée sur GLScene, je suis un peu en standby.
De plus l'arrivée des nouvelles fonctions 3d dans PureBasic me pousse à la laisser de côté pour plutôt m'investir dans les nouvelles commandes.
C'est pour cela que je suis de près tes travaux :D

Publié : dim. 02/avr./2006 12:09
par comtois
ça dépend ce que tu appelles pas mal de temps :)

j'avais déjà fait les fonctions fumée et explosion , un simple copier /Coller.
Les faisceaux c'était déjà fait aussi , j'ai juste ajouté la liste.

Pour les collisions dynamiques, j'y avais déjà réfléchi un peu avant , donc ça ne m'a pris que quelques heures , d'autant plus que c'est presque la même chose que les triangles statiques. La seule chose à laquelle je n'avais pas trop réfléchi c'est la gestion des collisions entre objets, et c'est ce qui merdouille :)
Mais je m'y attendais , je voulais surtout dans un premier temps valider le principe que j'utilise , à savoir , je ne calcule qu'une seule fois la position des triangles dynamiques dans la base de l'ellipsoide, ensuite je me contente de faire un changement de repère à l'ellipsoide pour travailler dans le repère de l'objet dynamique, l'avantage c'est qu'il y a beaucoup moins de calculs à faire. Et ensuite le test des collisions est identique.
C'est à partir de là qu'il va falloir que je réfléchisse !! il faut que je tienne compte des déplacements des deux objets pour savoir à quel moment a lieu la collision et où ! pour ensuite calculer les réponses. J'ai une vague idée de ce qu'il faut faire, mais je n'ai pas trop le temps de m'y coller :)

Publié : dim. 02/avr./2006 14:35
par Sehka
Ce que j'appelle pas mal de temps c'est quand on est absorbé par son développement au point de ne plus savoir combien de temps s'est écoulé...Exemple, lorsque l'on dit: " J'arrive dans 5 minutes ", tu vois ce que je veux dire Comtois, non ? 8)

Une question, comment obtiens tu ton "TempleTriangles.HD" :?:
Une dernière : tu as déjà fais du darkbasic pro :?:

C'est quand même mieux purebasic :)

Salutations,

Publié : dim. 02/avr./2006 15:33
par comtois
je me suis fait un petit code, il faut d'abord créer le fichier Xml avec OgreXMLConverter.exe

Code : Tout sélectionner

;Comtois 10/02/06
;PB4.0 Beta 7

Source$="D:\Ogre\OgreCommandLineTools-1.0.6\Temple.xml"               ; <<<< Fichier du mesh dans le format Xml
Destination$="D:\Ogre\OgreCommandLineTools-1.0.6\TempleTriangles.HD"  ; <<<< Fichier contenant la liste des triangles 
Structure s_Boite
  Xmini.f
  Ymini.f
  Zmini.f
  Xmaxi.f
  Ymaxi.f
  Zmaxi.f
EndStructure

Structure Face
  v1.l
  v2.l
  v3.l
EndStructure
Structure Point3D
	x.f
	y.f
	z.f
EndStructure
Structure Vecteur
	x.f
 	y.f
 	z.f
EndStructure

Structure Triangle 
	P1.Point3D
 	P2.Point3D
 	P3.Point3D
	Constante.f
 	Normale.Vecteur 
EndStructure


NewList Face.Face()
Global NewList ListTriangle.Triangle()
Global Boite.s_Boite

Procedure.s StringFieldPerso(T$,Index)
  Champ=0
  Deb=0
  Chaine$=""
  For i=1 To Len(T$)
    Car$=Mid(T$,i,1)
    If Car$=Chr(34)
      If Deb=0
        Deb=1
        Champ + 1
        Continue
      Else 
        Deb=0
      EndIf
    EndIf  
    If Champ=Index And Deb 
      Chaine$=Chaine$+Car$
    EndIf  
  Next i
  ProcedureReturn Chaine$
EndProcedure

OpenConsole()
SubMesh = 0

If OpenFile(0,Source$)
  
  PrintN("Ouverture du fichier Xml : " + Source$)
  
  While Eof(0)=0
    
    Ligne$=ReadString(0)
    If FindString(Ligne$,"<faces count=",1)
      Pos=FindString(Ligne$,"count=",1)
      Pos + 7
      NbFace=Val(Mid(Ligne$,Pos,Len(Ligne$)-Pos-1))
      SubMesh + 1
      PrintN("SubMesh No : " + Str(SubMesh))
      PrintN("Nombre de triangles : " + Str(NbFace))
      
      ;Lecture des Faces
      ClearList(Face())
      For i=1 To NbFace
        Ligne$=ReadString(0)
        AddElement(Face())
        Face()\v1=Val(StringFieldPerso(Ligne$,1))
        Face()\v2=Val(StringFieldPerso(Ligne$,2))
        Face()\v3=Val(StringFieldPerso(Ligne$,3))
      Next i  
    EndIf
    
    ;Cherche les vertices
    If FindString(Ligne$,"<geometry vertexcount=",1)
      Pos=FindString(Ligne$,"count=",1)
      Pos + 7
      NbVertex=Val(Mid(Ligne$,Pos,Len(Ligne$)-Pos-1))
      PrintN("Nombre de sommets : " + Str(NbVertex))
      Dim Vertex.Vecteur(NbVertex)
      Dim Normale.Vecteur(NbVertex)
    EndIf  
    
    If FindString(Ligne$,"<vertexbuffer",1)  
      Index=0
    EndIf
    
    ;Lecture des vertex
    If FindString(Ligne$,"<position",1)
      Vertex(Index)\x=ValF(StringFieldPerso(Ligne$,1))
      Vertex(Index)\y=ValF(StringFieldPerso(Ligne$,2))
      Vertex(Index)\z=ValF(StringFieldPerso(Ligne$,3))
      
      If Vertex(Index)\x < Boite\Xmini 
        Boite\Xmini = Vertex(Index)\x 
      ElseIf Vertex(Index)\x > Boite\Xmaxi   
        Boite\Xmaxi = Vertex(Index)\x 
      EndIf
      
      If Vertex(Index)\y < Boite\Ymini 
        Boite\Ymini = Vertex(Index)\y
      ElseIf Vertex(Index)\y > Boite\Ymaxi 
        Boite\Ymaxi = Vertex(Index)\y
      EndIf
      
      If Vertex(Index)\z < Boite\Zmini
        Boite\Zmini = Vertex(Index)\z
      ElseIf Vertex(Index)\z > Boite\Zmaxi  
        Boite\Zmaxi = Vertex(Index)\z
      EndIf    
        
    EndIf  
    ;Lecture des normales
    If FindString(Ligne$,"<normal",1)
      Normale(Index)\x=ValF(StringFieldPerso(Ligne$,1))
      Normale(Index)\y=ValF(StringFieldPerso(Ligne$,2))
      Normale(Index)\z=ValF(StringFieldPerso(Ligne$,3))
      Index + 1
    EndIf 
         
    ;On peut enregistrer ce submesh 
    If FindString(Ligne$,"</vertexbuffer>",1) 
       ForEach Face()
        AddElement(ListTriangle())
        ;v1
        ListTriangle()\P1\x=Vertex(Face()\v1)\x 
        ListTriangle()\P1\y=Vertex(Face()\v1)\y 
        ListTriangle()\P1\z=Vertex(Face()\v1)\z 
        ;v2
        ListTriangle()\P2\x=Vertex(Face()\v2)\x 
        ListTriangle()\P2\y=Vertex(Face()\v2)\y 
        ListTriangle()\P2\z=Vertex(Face()\v2)\z 
        ;v3
        ListTriangle()\P3\x=Vertex(Face()\v3)\x 
        ListTriangle()\P3\y=Vertex(Face()\v3)\y 
        ListTriangle()\P3\z=Vertex(Face()\v3)\z 
        ListTriangle()\Normale\x=(Normale(Face()\v1)\x + Normale(Face()\v2)\x +Normale(Face()\v3)\x)/3
        ListTriangle()\Normale\y=(Normale(Face()\v1)\y + Normale(Face()\v2)\y +Normale(Face()\v3)\y)/3
        ListTriangle()\Normale\z=(Normale(Face()\v1)\z + Normale(Face()\v2)\z +Normale(Face()\v3)\z)/3 
      Next
    EndIf    
  Wend  
  CloseFile(0)
  PrintN("Total triangles : " + Str(CountList(ListTriangle())))
EndIf


;Génère un fichier contenant la liste des triangles 
If CreateFile(0,Destination$)
  PrintN("Creation du fichier triangle : " + Destination$)
  WriteLong(0,CountList(ListTriangle()))
  WriteData(0,@Boite,SizeOf(s_Boite))
  ForEach ListTriangle()
    WriteData(0,@ListTriangle(),SizeOf(Triangle))
  Next
  CloseFile(0)
  PrintN("Operation terminee")
  PrintN("Pressez la touche [Entree] pour quitter")
EndIf
PrintN("MiniX = " + StrF(Boite\XMini,3))
PrintN("MaxiX = " + StrF(Boite\XMaxi,3))
PrintN("MiniY = " + StrF(Boite\YMini,3))
PrintN("MaxiY = " + StrF(Boite\YMaxi,3))
PrintN("MiniZ = " + StrF(Boite\ZMini,3))
PrintN("MaxiZ = " + StrF(Boite\ZMaxi,3))
Input()
CloseConsole()
End
J'ai commencé avec DarkBasic , ensuite j'ai acheté DB pro à alapage à 45 euros , et je n'ai jamais réussi à le faire tourner correctement , même les exemples fournis plantaient , du coup , je ne m'en suis jamais servi.
Et ça ne me manque pas du tout :)

Publié : dim. 02/avr./2006 20:14
par Sehka
Merci Comtois, c'est cool... :D
C'est très sympa de partager tes sources :)

Publié : mar. 04/avr./2006 13:38
par Progi1984
Salut, je viens de tester ta démo. Sympa

Bugs rencontrés :
* je rentre dans les plateformes
* quand une boule explose, j'ai des triangles qui parfois sont énormes (aléatoires ?)

Publié : mar. 04/avr./2006 20:52
par comtois
Progi1984 a écrit :Bugs rencontrés :
* je rentre dans les plateformes
oui j'ai prévénu, j'ai encore du boulot pour améliorer le truc :)
* quand une boule explose, j'ai des triangles qui parfois sont énormes (aléatoires ?)
J'ai aussi constaté ça , je ne sais si c'est un bug de PureBasic, il faudrait que je prenne le temps de faire un petit snippet pour le mettre en évidence.
Peut-être que c'est mon code , je ne peux encore rien affirmer.

Publié : mar. 04/avr./2006 22:31
par Progi1984
Concernant mes collisions via ODE, deux anglais m'ont expliqué qu'il faudra attendre la version complète de ODE pour pouvoir le faire. En attendant, je travaille sur le "Underwater effect" !

Publié : mer. 05/avr./2006 6:14
par comtois
ça confirme ce que je pensais alors :)

Alors du coup , je continue d'avancer sur mon système de collision.

Il y a aussi un gros travail à faire c'est la gestion des effets spéciaux.
Avec les particules, les billboard , les scripts material , ça fait pas mal de pistes à explorer pour se faire une biblio de fonctions, pour générer des explosions , des effets de pluie (Cederavic a déjà fait quelque chose à ce sujet).Bref pas mal d'effets à créer , et pas besoin d'Ode pour ça :)

Publié : mer. 05/avr./2006 6:43
par Progi1984
Par contre, tu le dis à personne, mais je bosse sur ca actuellement :P

Publié : sam. 05/avr./2008 6:28
par Anonyme
up de 2 ans et un jour :D

@Comtois , lorsque tu avais terminer cela , est ce que tu est toujours obligé de tricher avec le sol ?

j'ai vu aussi que vous parlez de problème de Texture (on voit les arrêtes ), c'est du au fait que c'est un traitement linéaire(pour une texture de 2x2pixel vous ne pouvez pas voir un damier net par exemple...) , pour les "opengl-iste" il faut "clampé" la texture :D
ex : les skybox...


ImageImage