Tracé de courbes en 3D

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

Enfin un log. Il ne contient pas d'erreur et tu dois être capable de faire fonctionner un code 3D.

Essayons d'y aller progressivement.

Un code qui permet uniquement de vérifier les fonctionnalités de base sans utiliser les fonctionnalités liées au mesh, material et entité. Pourrais tu le tester SANS CRÉER D'EXECUTABLE.
Tu devrais avoir uniquement un fond bleu.

Code : Tout sélectionner

Enumeration
  #Mainform
EndEnumeration

Global WWIdth, WHeight
Global Event

If Not InitEngine3D(#PB_Engine3D_DebugLog)
  MessageRequester("Information", "InitEngine3D() Erreur")
  End
EndIf

If Not InitSprite()
  MessageRequester("Information","InitSprite() Erreur")
  End
EndIf

InitKeyboard()
InitMouse()

OpenWindow(#Mainform,0,0, 0, 0, "", #PB_Window_SystemMenu | #PB_Window_Maximize)
WWidth = WindowWidth(#Mainform, #PB_Window_InnerCoordinate)
WHeight = WindowHeight(#Mainform, #PB_Window_InnerCoordinate)
OpenWindowedScreen(WindowID(#Mainform),0,0,WWIdth,WHeight,0, 0, 0)

KeyboardMode(#PB_Keyboard_International)
 
;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(Camera, RGB(145, 182, 201))

MoveCamera(Camera, 2, 5, 15, #PB_Absolute)  
CameraLookAt(Camera, 0,0,0)   

Repeat
  Repeat
    Event  = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
        
    EndSelect
  Until Event = 0
  
  If ExamineKeyboard()
    
    If KeyboardPushed (#PB_Key_Escape)
      Break
    EndIf
  EndIf
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld(80)
  FlipBuffers()  
  
ForEver
Dernière modification par falsam le jeu. 22/mai/2014 10:40, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Re: Tracé de courbes en 3D

Message par sospel »

@falsam

j'ai lancé ton code, mais j'ai immédiatement eu un plantage, avec un écran totalement gris et LE message qui tue :

" PB.Compilation0.exe a rencontré un problème et doit fermer (....) . envoyer le rapport ? "

Pas d'écran bleu :(
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Tracé de courbes en 3D

Message par Backup »

m'etonne pas , tu n'as pas de carte Graphique 3D dans ton "Truc"

oublie la 3D ou va t'acheter un ordinateur .... (un vrais) :mrgreen:

le GMA 3100 qui equipe ton "truc" sert juste a decompresser du Mpeg-2
voir tableau ici : (d'ailleurs ils ne citent meme pas le 3100 mais le 3150 qui est deja une amélioration )

http://fr.wikipedia.org/wiki/Intel_GMA

les réponses sont éloquentes ici :
http://www.jeuxvideo.com/forums/1-6-108 ... me-gpu.htm


je sais bien que le marketing aime mettre "3D" partout , mais franchement sur du GMA ... c'est chaud
trouve toi eventuellement les derniers Drivers

mais franchement a ta place, je changerai de carte Graph (ou d'ordi si tu ne peux pas ajouter )
Dernière modification par Backup le jeu. 22/mai/2014 10:02, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

Ayant vérifier les caractéristiques, la puce graphique du portable de Sospel est compatible avec ogre pour des petits projets.

Le log est normal mais je pense qu'il y a soit un problème hard soit un souci de driver vidéo.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Tracé de courbes en 3D

Message par Backup »

falsam a écrit :Ayant vérifier les caractéristiques, la puce graphique du portable de Sospel est compatible avec ogre pour des petits projets.

Le log est normal mais je pense qu'il y a soit un problème hard soit un souci de driver vidéo.

oui , peut être, puisque j'arrive a faire tourner des jeux 3D (DX 7...) sur mon NC10
je suppose , que cela "pourrai" tourner
mais le ChipSet seul ne suffit pas , a justifier que ça va le faire
l'architecture global dans lequel il est inséré a son importance
type de Ram ,combien est attribuée pour le GMA , le Processeur (qui va en fait se taper le gros du travail sur ce type de config )

bref .... les appareils a base de ce genre de Chipset, sont surtout fait pour passer de la Video
a l’époque c’était (c'est encore) l'argument numéro un des NetBook , pouvoir regarder un Film !

les appareils basés sur les GMA ne sont pas des Ordis Gamer ... loin de là :)
alors la 3D c'est plutot Gadget la dessus


@Sospel , a tout hasard, met a jour ton Driver .....
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

le processeur de Sospel
20:23:45: CPU Identifier & Features
20:23:45: -------------------------
20:23:45: * CPU ID: GenuineIntel: Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
20:23:45: * SSE: yes
20:23:45: * SSE2: yes
20:23:45: * SSE3: yes
20:23:45: * MMX: yes
20:23:45: * MMXEXT: yes
20:23:45: * 3DNOW: no
20:23:45: * 3DNOWEXT: no
20:23:45: * CMOV: yes
20:23:45: * TSC: yes
20:23:45: * FPU: yes
20:23:45: * PRO: yes
20:23:45: * HT: no
Hormis le processeur qui est plus rapide (2.40), mon portable Duo CPU a les mêmes caractéristiques.

la carte graphique de Sospel (Intel® G35 Express Chipsets) utilise de 8 à 384 Mo (Sous XP) de mémoire partagée.
:?: @Sospel: La capacité mémoire est de combien sur ton pc ?

D'aprés Intel:
Intel® Graphics Media Accelerator 3100 : 3D enhancements enable greater flexibility And scalability And improved realism With support For Microsoft DirectX* 9.0c Shader Model 2.0, OpenGL* 1.4.
Le minimum vital est à priori présent.

:?: @Sospel : Pourrais tu exécuter le code que j'ai posté sur ce message. j'ai ajouté #PB_Engine3D_DebugLog à InitEngine3D()
http://www.purebasic.fr/french/viewtopi ... 32#p163232
Enregistre le au préalable dans un dossier afin de retrouver le log ogre et poste ce log. Merci.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Re: Tracé de courbes en 3D

Message par sospel »

@ falsam

1/ Taille mémoire = 1 Go

2/ J'ai exécuté ton code :

Code : Tout sélectionner

If InitEngine3D(#PB_Engine3D_DebugLog) = 0
    MessageRequester("Information", "Impossible d'initialiser InitEngine")
    End
EndIf
RunProgram("ogre.log")
Le fichier "ogre.log" donne alors ceci :

Code : Tout sélectionner

17:04:39: Creating resource group General
17:04:39: Creating resource group Internal
17:04:39: Creating resource group Autodetect
17:04:39: SceneManagerFactory for type 'DefaultSceneManager' registered.
17:04:39: Registering ResourceManager for type Material
17:04:39: Registering ResourceManager for type Mesh
17:04:39: Registering ResourceManager for type Skeleton
17:04:39: MovableObjectFactory for type 'ParticleSystem' registered.
17:04:39: OverlayElementFactory for type Panel registered.
17:04:39: OverlayElementFactory for type BorderPanel registered.
17:04:39: OverlayElementFactory for type TextArea registered.
17:04:39: Registering ResourceManager for type Font
17:04:39: ArchiveFactory for archive type FileSystem registered.
17:04:39: ArchiveFactory for archive type Zip registered.
17:04:39: ArchiveFactory for archive type EmbeddedZip registered.
17:04:39: DDS codec registering
17:04:39: FreeImage version: 3.10.0
17:04:39: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
17:04:39: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,koa,iff,lbm,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,dds,gif,g3,sgi,j2k,j2c,jp2
17:04:39: PVRTC codec registering
17:04:39: Registering ResourceManager for type HighLevelGpuProgram
17:04:39: Registering ResourceManager for type Compositor
17:04:39: MovableObjectFactory for type 'Entity' registered.
17:04:39: MovableObjectFactory for type 'Light' registered.
17:04:39: MovableObjectFactory for type 'BillboardSet' registered.
17:04:39: MovableObjectFactory for type 'ManualObject' registered.
17:04:39: MovableObjectFactory for type 'BillboardChain' registered.
17:04:39: MovableObjectFactory for type 'RibbonTrail' registered.
17:04:39: *-*-* OGRE Initialising
17:04:39: *-*-* Version 1.8.2 (Byatis)
17:04:39: D3D9 : Direct3D9 Rendering Subsystem created.
17:04:39: D3D9: Driver Detection Starts
17:04:39: D3D9: Driver Detection Ends
17:04:39: Particle Emitter Type 'Point' registered
17:04:39: Particle Emitter Type 'Box' registered
17:04:39: Particle Emitter Type 'Ellipsoid' registered
17:04:39: Particle Emitter Type 'Cylinder' registered
17:04:39: Particle Emitter Type 'Ring' registered
17:04:39: Particle Emitter Type 'HollowEllipsoid' registered
17:04:39: Particle Affector Type 'LinearForce' registered
17:04:39: Particle Affector Type 'ColourFader' registered
17:04:39: Particle Affector Type 'ColourFader2' registered
17:04:39: Particle Affector Type 'ColourImage' registered
17:04:39: Particle Affector Type 'ColourInterpolator' registered
17:04:39: Particle Affector Type 'Scaler' registered
17:04:39: Particle Affector Type 'Rotator' registered
17:04:39: Particle Affector Type 'DirectionRandomiser' registered
17:04:39: Particle Affector Type 'DeflectorPlane' registered
17:04:39: PCZone Factory Type 'ZoneType_Default' registered
17:04:39: CPU Identifier & Features
17:04:39: -------------------------
17:04:39:  *   CPU ID: GenuineIntel: Intel(R) Core(TM)2 Duo CPU     E4500  @ 2.20GHz
17:04:39:  *      SSE: yes
17:04:39:  *     SSE2: yes
17:04:39:  *     SSE3: yes
17:04:39:  *      MMX: yes
17:04:39:  *   MMXEXT: yes
17:04:39:  *    3DNOW: no
17:04:39:  * 3DNOWEXT: no
17:04:39:  *     CMOV: yes
17:04:39:  *      TSC: yes
17:04:39:  *      FPU: yes
17:04:39:  *      PRO: yes
17:04:39:  *       HT: no
17:04:39: -------------------------
17:04:39: D3D9 : Subsystem Initialising
17:04:39: Registering ResourceManager for type Texture
17:04:39: Registering ResourceManager for type GpuProgram
17:04:39: ***************************************
17:04:39: *** D3D9 : Subsystem Initialised OK ***
17:04:39: ***************************************
17:04:39: SceneManagerFactory for type 'OctreeSceneManager' registered.
17:04:39: SceneManagerFactory for type 'BspSceneManager' registered.
17:04:39: Registering ResourceManager for type BspLevel
3/ Je ne sais pas si cela a un rapport avec mon problème, mais le programme : " OpenGL.pb " qui est donné en exemple dans le répertoire " Sources - Advanced " de PB fonctionne parfaitement .

Cordialement,
Sospel
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

Alors encore un test avec l'option OpenGl

■ Enregistre ce code minimal dans un dossier afin de mieux retrouver le log ogre.

Code : Tout sélectionner

Enumeration
  #Mainform
EndEnumeration

Global WWIdth, WHeight
Global Event

If Not InitEngine3D(#PB_Engine3D_DebugLog)
  MessageRequester("Information", "InitEngine3D() Erreur")
  End
EndIf

If Not InitSprite()
  MessageRequester("Information","InitSprite() Erreur")
  End
EndIf

InitKeyboard()
InitMouse()

OpenWindow(#Mainform,0,0, 0, 0, "", #PB_Window_SystemMenu | #PB_Window_Maximize)
WWidth = WindowWidth(#Mainform, #PB_Window_InnerCoordinate)
WHeight = WindowHeight(#Mainform, #PB_Window_InnerCoordinate)
OpenWindowedScreen(WindowID(#Mainform),0,0,WWIdth,WHeight,0, 0, 0)

KeyboardMode(#PB_Keyboard_International)

;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)

;
; Une camera 
Camera = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(Camera, RGB(145, 182, 201))

MoveCamera(Camera, 2, 5, 15, #PB_Absolute)  
CameraLookAt(Camera, 0,0,0)   

Repeat
  Repeat
    Event  = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
        
    EndSelect
  Until Event = 0
  
  If ExamineKeyboard()
    
    If KeyboardPushed (#PB_Key_Escape)
      Break
    EndIf
  EndIf
  
  ; Affiche le rendu de la scène
  ClearScreen(RGB(0, 0, 0))
  RenderWorld(80)
  FlipBuffers()  
  
ForEver
■ Active l'option OpenGl dans les options du compilateur. (Compilateur --> Option du compilateur)

Image

■ Maintenant tu peux exécuter ton code.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Re: Tracé de courbes en 3D

Message par sospel »

@falsam

Magnifique, ça ne plante plus ! Si le but est toujours d'avoir une fenêtre "plein écran" bleue, c'est gagné :D

Est-ce que cela implique que je peux programmer du 3D sous OPENGL, en l'occurence mes courbes dans l'espace ?

En prime, voici le fichier "ogre.log" :

Code : Tout sélectionner

17:17:24: Creating resource group General
17:17:24: Creating resource group Internal
17:17:24: Creating resource group Autodetect
17:17:24: SceneManagerFactory for type 'DefaultSceneManager' registered.
17:17:24: Registering ResourceManager for type Material
17:17:24: Registering ResourceManager for type Mesh
17:17:24: Registering ResourceManager for type Skeleton
17:17:24: MovableObjectFactory for type 'ParticleSystem' registered.
17:17:24: OverlayElementFactory for type Panel registered.
17:17:24: OverlayElementFactory for type BorderPanel registered.
17:17:24: OverlayElementFactory for type TextArea registered.
17:17:24: Registering ResourceManager for type Font
17:17:24: ArchiveFactory for archive type FileSystem registered.
17:17:24: ArchiveFactory for archive type Zip registered.
17:17:24: ArchiveFactory for archive type EmbeddedZip registered.
17:17:24: DDS codec registering
17:17:24: FreeImage version: 3.10.0
17:17:24: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
17:17:24: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,koa,iff,lbm,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,dds,gif,g3,sgi,j2k,j2c,jp2
17:17:24: PVRTC codec registering
17:17:24: Registering ResourceManager for type HighLevelGpuProgram
17:17:24: Registering ResourceManager for type Compositor
17:17:24: MovableObjectFactory for type 'Entity' registered.
17:17:24: MovableObjectFactory for type 'Light' registered.
17:17:24: MovableObjectFactory for type 'BillboardSet' registered.
17:17:24: MovableObjectFactory for type 'ManualObject' registered.
17:17:24: MovableObjectFactory for type 'BillboardChain' registered.
17:17:24: MovableObjectFactory for type 'RibbonTrail' registered.
17:17:24: *-*-* OGRE Initialising
17:17:24: *-*-* Version 1.8.2 (Byatis)
17:17:24: OpenGL Rendering Subsystem created.
17:17:24: Particle Emitter Type 'Point' registered
17:17:24: Particle Emitter Type 'Box' registered
17:17:24: Particle Emitter Type 'Ellipsoid' registered
17:17:24: Particle Emitter Type 'Cylinder' registered
17:17:24: Particle Emitter Type 'Ring' registered
17:17:24: Particle Emitter Type 'HollowEllipsoid' registered
17:17:24: Particle Affector Type 'LinearForce' registered
17:17:24: Particle Affector Type 'ColourFader' registered
17:17:24: Particle Affector Type 'ColourFader2' registered
17:17:24: Particle Affector Type 'ColourImage' registered
17:17:24: Particle Affector Type 'ColourInterpolator' registered
17:17:24: Particle Affector Type 'Scaler' registered
17:17:24: Particle Affector Type 'Rotator' registered
17:17:24: Particle Affector Type 'DirectionRandomiser' registered
17:17:24: Particle Affector Type 'DeflectorPlane' registered
17:17:24: PCZone Factory Type 'ZoneType_Default' registered
17:17:24: CPU Identifier & Features
17:17:24: -------------------------
17:17:24:  *   CPU ID: GenuineIntel: Intel(R) Core(TM)2 Duo CPU     E4500  @ 2.20GHz
17:17:24:  *      SSE: yes
17:17:24:  *     SSE2: yes
17:17:24:  *     SSE3: yes
17:17:24:  *      MMX: yes
17:17:24:  *   MMXEXT: yes
17:17:24:  *    3DNOW: no
17:17:24:  * 3DNOWEXT: no
17:17:24:  *     CMOV: yes
17:17:24:  *      TSC: yes
17:17:24:  *      FPU: yes
17:17:24:  *      PRO: yes
17:17:24:  *       HT: no
17:17:24: -------------------------
17:17:24: *** Starting Win32GL Subsystem ***
17:17:24: Registering ResourceManager for type Texture
17:17:24: SceneManagerFactory for type 'OctreeSceneManager' registered.
17:17:24: SceneManagerFactory for type 'BspSceneManager' registered.
17:17:24: Registering ResourceManager for type BspLevel
17:17:24: GLRenderSystem::_createRenderWindow "PureBasic Ogre", 1280x1005 windowed  miscParams: FSAA=0 displayFrequency=0 externalWindowHandle=1966746 vsync=true 
17:17:24: GL_VERSION = 1.4.0 - Build 7.15.10.5218
17:17:24: GL_VENDOR = Intel
17:17:24: GL_RENDERER = Intel Bear Lake B
17:17:24: GL_EXTENSIONS = GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_shadow GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_env_crossbar GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_cull_vertex GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_lod_bias GL_EXT_texture_filter_anisotropic GL_EXT_texture3D GL_3DFX_texture_compression_FXT1 GL_IBM_texture_mirrored_repeat GL_NV_blend_square GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_WIN_swap_hint 
17:17:24: Supported WGL extensions: WGL_ARB_buffer_region WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_pixel_format WGL_ARB_pbuffer WGL_EXT_extensions_string WGL_EXT_swap_control 
17:17:24: ***************************
17:17:24: *** GL Renderer Started ***
17:17:24: ***************************
17:17:24: Registering ResourceManager for type GpuProgram
17:17:24: GL: Using PBuffers for rendering to textures
17:17:24: RenderSystem capabilities
17:17:24: -------------------------
17:17:24: RenderSystem Name: OpenGL Rendering Subsystem
17:17:24: GPU Vendor: intel
17:17:24: Device Name: Intel Bear Lake B
17:17:24: Driver Version: 1.4.0.0
17:17:24:  * Fixed function pipeline: yes
17:17:24:  * Hardware generation of mipmaps: no
17:17:24:  * Texture blending: yes
17:17:24:  * Anisotropic texture filtering: yes
17:17:24:  * Dot product texture operation: yes
17:17:24:  * Cube mapping: yes
17:17:24:  * Hardware stencil buffer: yes
17:17:24:    - Stencil depth: 8
17:17:24:    - Two sided stencil support: yes
17:17:24:    - Wrap stencil values: yes
17:17:24:  * Hardware vertex / index buffers: yes
17:17:24:  * Vertex programs: yes
17:17:24:  * Number of floating-point constants for vertex programs: 96
17:17:24:  * Number of integer constants for vertex programs: 0
17:17:24:  * Number of boolean constants for vertex programs: 0
17:17:24:  * Fragment programs: yes
17:17:24:  * Number of floating-point constants for fragment programs: 24
17:17:24:  * Number of integer constants for fragment programs: 0
17:17:24:  * Number of boolean constants for fragment programs: 0
17:17:24:  * Geometry programs: no
17:17:24:  * Number of floating-point constants for geometry programs: 8240
17:17:24:  * Number of integer constants for geometry programs: 8312
17:17:24:  * Number of boolean constants for geometry programs: 14388
17:17:24:  * Supported Shader Profiles: arbfp1 arbvp1
17:17:24:  * Texture Compression: yes
17:17:24:    - DXT: yes
17:17:24:    - VTC: no
17:17:24:    - PVRTC: no
17:17:24:  * Scissor Rectangle: yes
17:17:24:  * Hardware Occlusion Query: no
17:17:24:  * User clip planes: yes
17:17:24:  * VET_UBYTE4 vertex element type: yes
17:17:24:  * Infinite far plane projection: yes
17:17:24:  * Hardware render-to-texture: yes
17:17:24:  * Floating point textures: no
17:17:24:  * Non-power-of-two textures: no
17:17:24:  * Volume textures: yes
17:17:24:  * Multiple Render Targets: 1
17:17:24:    - With different bit depths: no
17:17:24:  * Point Sprites: no
17:17:24:  * Extended point parameters: yes
17:17:24:  * Vertex texture fetch: no
17:17:24:  * Number of world matrices: 0
17:17:24:  * Number of texture units: 16
17:17:24:  * Stencil buffer depth: 8
17:17:24:  * Number of vertex blend matrices: 0
17:17:24:  * Render to Vertex Buffer : no
17:17:24:  * GL 1.5 without VBO workaround: no
17:17:24:  * Frame Buffer objects: no
17:17:24:  * Frame Buffer objects (ARB extension): no
17:17:24:  * Frame Buffer objects (ATI extension): no
17:17:24:  * PBuffer support: yes
17:17:24:  * GL 1.5 without HW-occlusion workaround: no
17:17:24:  * Separate shader objects: no
17:17:24: DefaultWorkQueue('Root') initialising on thread main.
17:17:24: Particle Renderer Type 'billboard' registered
17:17:24: Texture: spot_shadow_fade.png: Loading 1 faces(PF_R8G8B8,128x128x1) with 7 generated mipmaps from Image. Internal format is PF_X8R8G8B8,128x128x1.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

sospel a écrit :Est-ce que cela implique que je peux programmer du 3D sous OPENGL, en l'occurence mes courbes dans l'espace ?
Oui avec cette option OpenGl effectivement. Mais ça voudrait peut être dire aussi que ta version de directx est soit altéré soit pas à jour.

Même si ça fonctionne avec l'option OpenGl tu pourrais peut être faire une mise à jour de directx.

:arrow: http://www.microsoft.com/fr-fr/download ... x?id=34429

J'ai bien senti une certaine frustration devant cet écran bleu.

Un code (Pas de moi) un peu plus conséquent qui te permettra de voir si tout va bien en OpenGl:)

Code : Tout sélectionner

; this code depends on Frenet square approximation from Relsoft Rel.Betterwebber.com
                    
#manyPi = 10 * #PI    ;PI For rotation 

#NUM_RINGS = 360
;#NUM_RINGS = 70
#NUM_BANDS = 32
;#RING_RAD  = 2.0
#BAND_RAD  = 0.5 ; thickness of the tube
#plane = 9
#ball = 10
Global stop = 1
Global.f rot = 1

Structure vector3d
  x.f
  y.f
  z.f
EndStructure
    

Declare DrawTube (Rings.l, Bands.l, BandRadius.f)


Quit.b = #False
ExamineDesktops()
OpenWindow(3, 0, 0, DesktopWidth(0), DesktopHeight(0), "tubes , press right, Left  to toggle rotation clockwise/ anticlockwise ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

;Initialize environment
InitEngine3D()
InitSprite()
OpenWindowedScreen(WindowID(3), 0, 0, DesktopWidth(0), DesktopHeight(0), 0, 0, 0)
InitKeyboard()
SetFrameRate(60)
Add3DArchive(".", #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Textures", #PB_3DArchive_FileSystem)

CreateMaterial(1, LoadTexture(1, "Dirt.jpg"))
CreatePlane(#plane, 10, 10, 1, 1, 1, 1)
CreateEntity (#plane, MeshID(#plane), MaterialID(1))
MoveEntity(#plane,0,-3,0)
EntityPhysicBody(#plane, #PB_Entity_StaticBody)

CreateLight(0,RGB(255,255,255),-100,40,30)
AmbientColor(RGB(100,100,100))

CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 4, 12)
CameraLookAt(0, 0, 2, 0)

RotateCamera(0, -15, 0, 0)
CreateMaterial(0, LoadTexture(0, "terrain_texture.jpg"))
MaterialCullingMode(0, #PB_Material_NoCulling)
MaterialShadingMode(0, #PB_Material_Wireframe)
DisableMaterialLighting(0, 1)
CreateMesh(1, #PB_Mesh_TriangleList, #PB_Mesh_Static )
SetMeshMaterial(1, MaterialID(0))

DrawTube (#NUM_RINGS, #NUM_BANDS, #BAND_RAD)
NormalizeMesh(1)
FinishMesh(1)

CreateEntity(1, MeshID(1), MaterialID(0))
MoveEntity(1,0,4,-2)
EntityPhysicBody(1, #PB_Entity_StaticBody  ,0.1)
RotateEntity(1,90,250,0)
CreateSphere(#ball,2)
CreateEntity(#ball,MeshID(#ball),#PB_Material_None )
ScaleEntity(#ball, 0.2,0.2,0.2)
MoveEntity(#ball, -0.3,4,-1.1)
EntityPhysicBody(#ball, #PB_Entity_SphereBody   ,1,0.01,2)
y.f

ExamineKeyboard()

Repeat
  Event = WindowEvent()
  If KeyboardReleased(#PB_Key_Left)  ; rotate left
    stop ! 1 : rot = 1
  ElseIf  KeyboardReleased(#PB_Key_Right) 
    stop ! 1 : rot = -1
  EndIf  
   If stop = 0 
    y+rot
    RotateEntity(1,90,-y+250,0)
   EndIf
   RenderWorld()
   FlipBuffers()
   
   ExamineKeyboard()
   If KeyboardPushed(#PB_Key_Escape)
      Quit = #True
    EndIf
Until Quit = #True Or Event = #PB_Event_CloseWindow


Procedure vector_cross(*v1.vector3d, *v2.vector3d, *vout.vector3d)
    *vout\x = (*v1\y * *v2\z) - (*v2\y * *v1\z)
    *vout\y = (*v1\z * *v2\x) - (*v2\z * *v1\x)
    *vout\z = (*v1\x * *v2\y) - (*v2\x * *v1\y)
EndProcedure

Procedure.f vector_magnitude(*v.vector3d)
    mag.f
    mag = Sqr(*v\x * *v\x + *v\y * *v\y + *v\z * *v\z)
    If mag = 0:mag = 1:EndIf
    ProcedureReturn mag
EndProcedure

Procedure vector_normalize (*v.vector3d)
    mag.f
    mag = vector_magnitude(*v)
    *v\x = *v\x / mag
    *v\y = *v\y / mag
    *v\z = *v\z / mag
EndProcedure


Procedure vector_add (*v1.vector3d, *v2.vector3d, *vout.vector3d)
    *vout\x = *v1\x + *v2\x
    *vout\y = *v1\y + *v2\y
    *vout\z = *v1\z + *v2\z
EndProcedure

Procedure vector_sub (*v1.vector3d, *v2.vector3d, *vout.vector3d)
    *vout\x = *v1\x - *v2\x
    *vout\y = *v1\y - *v2\y
    *vout\z = *v1\z - *v2\z
EndProcedure





Procedure  DrawTube (Rings.l, Bands.l, BandRadius.f)

  x.f: y.f: z.f
   op.f = 1
   txu.f : txv.f
   For i = 0 To rings + 1
          current_point.vector3d
        next_point.vector3d
        T.vector3d
        B.vector3d
        N.vector3d
        p.f
        
        ;center point
        p = op * i * #manyPi / rings
        current_point\x = Cos(p) 
        current_point\y = Sin(p)
        current_point\z = 0.2 * p

        ;next point For Frenet square
        p = op * (i + 1) * #manyPi / rings
        next_point\x = Cos(p)
        next_point\y = Sin(p) 
        next_point\z = 0.2 * p

        ;T  = P' - P
        vector_sub(next_point, current_point, T)

        ;N = P' + P
        vector_add(next_point, current_point, N)

        ;B = T x N
        vector_cross(T, N, B)

        ;N = B x T
        vector_cross(B, T, N)

        ;Normalize vectors Or Else it won't work
        vector_normalize(B)
        vector_normalize(N)
        
        For j = 0 To bands - 1
              new_point_x.f
              new_point_y.f
              
              ;rotate around the current point using normal rotation makes bands
            new_point_x = Sin(j * 2*#PI / bands) * #BAND_RAD
            new_point_y = Cos(j * 2*#PI / bands) * #BAND_RAD
            
                ;this is the coords of our point along the curve
            x = N\x * new_point_x + B\x * new_point_y + current_point\x
            y = N\y * new_point_x + B\y * new_point_y + current_point\y
            z = N\z * new_point_x + B\z * new_point_y + current_point\z
            
                MeshVertexPosition(x, y, z)
                MeshVertexTextureCoordinate(txu, txv)
                MeshVertexNormal(x, y, z)
                txv = txv + 1/bands
                         
         Next 
         txv = 0
         ;txu = txu + 1/rings 
         txu = txu + 1/bands 
      Next 
      
      v.l
       For i = 0 To rings - 1
      For j = 0 To bands - 1
          MeshFace(v,v+1,v + bands+1)
          MeshFace(v + bands+1,v + bands+2,v+1 )
          
          v + 1   
          
     Next
     
   Next  


  EndProcedure
 
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
sospel
Messages : 56
Inscription : ven. 05/déc./2008 21:47

Re: Tracé de courbes en 3D

Message par sospel »

@falsam

Bon, là, je pense que grâce à tes conseils, mon problème est en passe d'être résolu !

J'ai téléchargé la version de DirectX pour XP dont tu me donnes le lien ( la 9) et j'ai pu pu lancer
ton spectaculaire exemple aussi bien avec DirectX par défaut qu'avec OpenGL.
Je peux donc maintenant passer à la visualisation en 3D des trajectoires engendrées par un attracteur
et essayer de "tourner autour" pour varier le point de vue !

Il me reste à te remercier chaleureusement - ainsi que Comtois, graph100 et kelebrindae - pour vos
amicaux conseils qui m'ont appris plusieurs aspects de la 3D avec Purebasic.

Je vais donc considérer ce post comme terminé ... avant d'en ouvrir éventuellement un autre si je
bute sur une nouvelle difficulté ;)

Cordialement ,
Sospel
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Tracé de courbes en 3D

Message par falsam »

Et bien voila un souci résolu. Allez ...... avec plaisir à un prochain post :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre