PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

Pix3D 64-bit
Publié par Patrice TERRIER
dans la catégorie Graphisme
Nouveautés



Description
Ce projet WD17 64-bit, transforme n'importe quelle image 2D en un nuage de particules 3D.
Le nuage de particules est composé de 131072 points qui peuvent être animés en temps réel.

Vous pouvez choisir l'une des images dont le nom figure dans la liste qui se trouve en bas à droite.
Ou utiliser le tiré déplacé depuis l'explorateur, avec une image de type .png, .jpg, .gif, .tif, .bmp de n'importe quelle taille.

Le code WINDEV est l'exacte transposition d'un projet C++ écrit avec Visual Studio (source disponible sur demande).
Cependant comme le p-code WINDEV n'est pas assez rapide, l'animation du nuage de particules est effectuée par WDboost qui est une DLL 64-bit écrite en C++.
L'appel de la DLL se fait à partir de la procédure "gl_DrawScene".
J'ai laissé le code WINDEV correspondant, afin de vous permettre de comparer la vitesse (pour tester, mettre l'API WDboost en commentaire).

L'application est "skinnée" avec le thème "Scaff" de WinLIFT.

UTILISATION DU ZOOM :
Vous pouvez utiliser indifféremment la molète centrale de la souris, ou le potentiomètre vertical.

UTILISATION DE LA SOURIS :
Le bouton gauche permet de voir l'image sous tous les angles.
Le bouton droit permet d'effectuer une translation selon l'axe horizontal ou vertical.

CHANGEMENT DE PALETTE :
Choisir dans la liste l'un des noms préfixé par "pal_".
Sélectionner "pal_image.png" pour revenir aux couleurs d'origine de l'image.
Note : le changement de palette concerne uniquement le nuage de particules.

A PROPOS DU CODE SOURCE :
Il est destiné a ceux qui veulent découvrir la syntaxe du SDK bas niveau, qui sert à programmer l'OS de Windows,
l'utilisation de la "Flat API" permet de booster les performances, en privilégiant la vitesse et en réduisant de façon significative la taille du framework WINDEV.
Il nécessite uniquement 3 DLL, à savoir :
1 - "Machine virtuelle"
2 - "Fonctions mathématiques"
3 - "Fonctions standard"
Le point d'entrée du programme se trouve dans la procédure dont le nom est "MainWindow" qui est appelé directement depuis le "code du projet".
Il n'y a ni fenêtre ni champ WINDEV, la fenêtre principale et les fenêtres filles sont créées avec l'API "CreateWindowEx".
Le conteneur GDImage/OpenGL est subclassé dans la fonction "gl_WndProc" afin de pouvoir interagir avec la souris et gérer le tiré déplacé.
Le traitement temps réel utilise un timer avec une fréquence de 60Hz compatible DirectDraw.
Le "SkinEngine" "WinLIFT" fonctionne en mode DWM composé (voir le dégradé dessiné autour de la fenêtre principale lorsqu'on la déplace sur un fond blanc).
Le déplacement ou le redimensionnement de la fenêtre ne bloque pas l'animation lorsque celle-ci est active.

A QUOI CA SERT :
Outre l'aspect ludique, le nuage de point peut servir :
- Pour faire du rendu géodésique de terrain.
- Représenter des niveaux de températures avec une finesse plus précise que celle des cartes météo classiques.
- Analyser les défauts de surface de matériaux divers.
etc.
L'utilisation des palettes de couleurs (inspiré par le traitement des images médicales) facilite l'analyse des images monochromes.

UTILISATION DU MODE 64-bit:
Ceci permet d'utiliser la dernière génération de drivers OpenGL en particulier avec les cartes nVIDIA.

Note : Ce projet devrait fonctionner sans problème avec toutes les versions de WINDEV.
GDImage64.dll et WinLIFT64.dll sont programmés avec Visual Studio en C/C++ en mode procédural (vitesse et optimisation de la taille des DLLs).

Important : Vous devez débloquer le ZIP avant de décompresser les fichiers pour éviter tout problème d'UAC.

Patrice Terrier
www.zapsolution.com
www.objreader.com

Illustrations, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Aucun avis ou commentaire ? Soyez le premier !
A PROPOS
EVALUATION :
00Aucune évaluation
TELECHARGEMENTS :
144
PUBLIÉE :
21 septembre 2019
VERSION :
CONCERNE :
WINDEV
Version minimale : WD17+
TAILLE :
6,4 Mo
DU MÊME DÉVELOPPEUR