Page 1 sur 1

CreateWater() et Sub System OpenGl

Publié : ven. 05/juil./2019 18:30
par falsam
Decidement je n'ai pas de chance avec le sous system OpenGL

La création de l'eau ne fonctionne pas si le sous system OpenGL est activé.

Le code test que j'utilise qui fonctionne bien sans le sous system OpenGL

Code : Tout sélectionner

EnableExplicit

Define Camera

InitEngine3D(#PB_Engine3D_DebugLog) 
InitSprite() 
InitKeyboard()

OpenWindow(0, 0, 0, 1024, 768, "Create Water", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 1024, 768, 0, 0, 0)

; On se sert des textures se trouvant dans le dossier d'installation de PureBasic
Add3DArchive(#PB_Compiler_Home + "Examples/3D/Data/Packs/desert.zip", #PB_3DArchive_Zip)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Water/", #PB_3DArchive_FileSystem)
Parse3DScripts()  

Camera = CreateCamera(#PB_Any, 0, 0, 100, 100) 
MoveCamera(Camera, 0, 100, 200)
CameraLookAt(Camera, 0, 70, 0)

CreateLight(#PB_Any, RGB(255, 255, 255), 1000, 1000, -500)

SkyBox("desert07.jpg")

; Création de l'eau: #PB_Shadow_TextureModulative ou #PB_Shadow_TextureAdditive obligatoire 
WorldShadows(#PB_Shadow_TextureAdditive, 1024, RGB(150, 150, 150))

CreateWater(Camera, 0, -17.5, 0, 0, #PB_World_WaterLowQuality | #PB_World_WaterSmooth | #PB_World_WaterSun)

; Boucle evenementielle  
Repeat
  ExamineKeyboard()   
  RenderWorld()  
  FlipBuffers()
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardReleased(#PB_Key_Escape)

Re: CreateWater() et Sub System OpenGl

Publié : ven. 05/juil./2019 18:36
par G-Rom
pas de solution miracle pour le coup :
19:34:17: OGRE EXCEPTION(2:InvalidParametersException): Parameter called uWorld does not exist. in GpuProgramParameters::_findNamedConstantDefinition at OgreGpuProgramParams.cpp (line 1451)
traduction :

shader "en dur" foireux.

Re: CreateWater() et Sub System OpenGl

Publié : ven. 05/juil./2019 18:43
par falsam
Merci pour ton implication G-Rom.

L'application finale fonctionnant sans le sous-system OpenGL, je crois que je vais continuer sans celui ci.
Il faudra installer DirectX9c end user pour que ça fonctionne sous Windows 10

J'ai vu une option de compilation avec le sous-system DirectX11 mais hélas c'est l'environnement 3D qui ne s'initialise pas !

Re: CreateWater() et Sub System OpenGl

Publié : ven. 05/juil./2019 18:57
par G-Rom
Mon point de vue est clair , j'avais eu un désaccord avec Fred à ce sujet , j'aurais voulu uniquement de l'opengl , l'utilisateur de PB s'en fou de directx, d'opengl , etc... c'est le résultat à l'écran qui compte.
opengl étant portable et à plus d'avenir que directx , y avais pas de doute sur l'implémentation à choisir.
ironiquement, toi qui te plaignait des dlls à coté des programmes .exe , là, faut installer un truc vieillot (dx9c) sur un pc next-gen... hahaha :).
A tout hasard , as tu essayé #PB_Engine3D_EnableCG avec InitEngine3D() ? il faut le toolkit de nvidia par contre...