Load Scene (Projet avorté !)

Généralités sur la programmation 3D
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Load Scene (Projet avorté !)

Message par falsam »

PB 5.31 x(86)

J'ai codé un petit éditeur de scène ainsi qu'un loader de scène.

Image

L'éditeur de scènes.
Son fonctionnement en l'état est simple.
- On clique dans un espace 3D.
- On pose un cube, un cylindre, une sphère, un cone mais aussi un mesh après importation de celui çi.
- Un inspecteur permet de définir la position, la taille, les angles, la texture et de dire si l'entité est static ou pas.
- Des combinaison de touches permettent aussi de de procéder à ces modification.

Le tout est sauvegardé dans un fichier JSON.

Le loader de scène.
Le loader de scène permet de lire ce fichier JSON et de créer la scène.

Le principe est simple

Code : Tout sélectionner

;Load Scene
SceneLoad("demo0.json")
Voir le code demo.pb pour le fonctionnement

Un projet avorté.
En l'état ce projet est avorté car la taille du JSON résultant est énorme. De plus des fonctionnalités comme CatchTexture() ou CatchMesh() n'éxistant pas, je suis obligé de récréer les fichiers puis de les charger à nouveau pénalisant ainsi le chargements de ces datas.

C'est pour ces raisons que je ne vous présenterais pas l'éditeur de scènes. Je dois revoir ma copie.

Par contre je vous présente une démonstration que j'avais l'intention de présenté hors concours à l’occasion du 15eme anniversaire de PureBasic. La scène est un peu sobre car loin d'être terminée.

:arrow: http://falsam.com/download/purebasic/serenity.zip (70 Mo environ - 2 ou 3 minutes de download)

Il n'y a pas d’exécutable.

N'oubliez pas de mettre un peu de son :wink:

Petite FAQ.
Comment je fais pour lancer la démo. ?
Chargez demo.pb dans votre éditeur et exécutez le.

Comment je me déplace ?
Utilisez les flèches de votre clavier pour vous déplacer.

Le code crash sous Windows 8 et Windows 10 ?
Si vous êtes sous Windows 8 ou Windows 10, il est possible que le code crash. Dans ce cas là, ajouter OpenGl dans les options de compilation.
- Meu Compilateur -> Options de compilation -> Bibliothéque sous-systéme: Tapez OpenGL - > Ok

Est ce que ce code est compatible avec la version 5.40 Beta ?
Non si vous utilisez une version Beta 1,2,3,4,5,6 et 7. Le code n'est pas compatible car la fonction EntityPhysicBody() n'existe plus dans ces versions que j'ai cité.
Dans ce cas il faut chercher EntityPhysicBody et remplacer chaque terme par CreateEntityBody

Si vous utilisez La version 5.40 Beta 8 alors le code fonctionne. Vous aurez quelques warning d'avertissement.

Puis je utiliser un pc en carton ?
Quelques lenteurs seront surement perceptibles et pourquoi pas des erreurs lors du chargement des datas.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Load Scene (Projet avorté !)

Message par G-Rom »

Pas mal , 90mo de json quand même ^^
Pour les catch manquant, pourquoi ne pas créer une seule fois ce qu'il te faut , par exemple un mesh puis de faire :
CopyMesh(Reference, Nouveau) ?
idem pour les textures et tout le reste. il te faut un "ressource manager" digne de se nom, une scène comme cela se charge en 2 secondes normalement ^^
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Load Scene (Projet avorté !)

Message par falsam »

G-Rom a écrit :90mo de json quand même ^^
Tu l'as dit, c'est beaucoup trop pour une si petite scène. Copie à revoir.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre