CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[WebGl] EmScripten C++->JS

Lapintade
Lapintade
Niveau 30
05 décembre 2013 à 23:47:48

Je continue mes tests avec EmScripten.

https://github.com/kripken/emscripten/wiki

Pour mémoire, c'est un outil qui permets de convertir du C/C++ vers du web. Si le code de départ utilise openGl, ça peut tourner en WebGl.

L'outil se presente sous la formule d'un compilateur "emcc", qui remplace en gros "gcc". J'ai fait mes tests en compilant en ligne de commande. Il existe un plugin pour visuak studio, je n'ai pas encore reussi à le faire fonctionner.

Un exemple de code opengl porter en web:
http://www.dk-games.com/hello_world_gles.html

J'ai fait cela pour mon premier test:
http://www.dk-games.com/Hello_TriangleCK.html

J'ai compilé NGCK aussi, je mets au propre et je poste ...

Lapintade
Lapintade
Niveau 30
06 décembre 2013 à 00:00:04

EmScripten supporte opengl 2.0 ES.
(ES = opengl simplifié pour mobile, obligation d'avoir un shader et d'utiliser des tableau pour rendre des polygones, rien de bien méchant).
Il supporte aussi glut, alors j'ai utilisé cela pour faire mes tests.

J'ai porté NGCK cette après midi. J'ai pu compiler le code C++ des exercices tel quel, sans aucune modif. J'ai recodé les fonctions de base comme celle qui affiche un carré à l'écran.

La doc de la methode est ici :
http://perso.numericable.fr/ckckck/NGCK_doc.htm

Voici ce que cela donne.

Exercice C2 :
"Faire un carré qui rebondit sur les 4 bords (il se déplace donc horizontalement et verticalement)"
C++ : http://www.dk-games.com/MyGameExC2.cpp.txt
Web : http://www.dk-games.com/NGCK9.html

Exercice D2 :
"La balle et la raquette" (Fleches Gauche/droite pour controller la raquette)
C++ : MyGameExD2.cpp.txt
Web : http://www.dk-games.com/NGCK11.html

Exercice E3 :
"Un jeu de voiture"
C++ : http://www.dk-games.com/MyGameExE3.cpp.txt
Web : http://www.dk-games.com/NGCK15.html

En bonus, des cubes en 3D : (rendu software, avec juste des carrés donc)
Web : http://www.dk-games.com/NGCK20.html
C++ : http://www.dk-games.com/MyGameNGCK3d.cpp.txt
(Juste pour l'exercice d'ecriture. WebGl supporte toute la 3D, donc on peut faire des trucs très sympas)

D'ailleurs en parlant de truc sympas, voici un site qui propose de visualiser des modèles 3D (site crée par un ex collègue)

https://sketchfab.com/shoow/g1PbWfEYoaqbdYDPof6DjGlWn0Y

Pepitoast
Pepitoast
Niveau 10
06 décembre 2013 à 00:00:21

Heureusement que je ne me suis pas consacré sérieusement à native client !

Lapintade
Lapintade
Niveau 30
06 décembre 2013 à 00:01:23

Voici le lien manquant:
http://www.dk-games.com/MyGameExD2.cpp.txt

Lapintade
Lapintade
Niveau 30
06 décembre 2013 à 00:06:44

Oui PepiToast, c'est beaucoup plus large ici.

En fait, Emscripten repose sur un autre compliateur : LLVM
http://fr.wikipedia.org/wiki/LLVM

C'est un compilateur qui compile dans une sorte de pseudo code. Ce pseudo code est en text je crois, et est proche de l'assembleur (que des opérations simples). Ensuite il est possible de convertir ce pseudo code dans n'importe quel langage. Emscripten le converti et l’exécute en Javascript.

Google propose une version plus large de son Native Client (NaCl) qui se nomme "pNaCl". Ca utilise aussi LLVM.

Il y a "duetto" aussi qui propose la même chose (C++->JS). http://leaningtech.com/duetto/

Lapintade
Lapintade
Niveau 30
10 décembre 2013 à 16:13:27

Nouveau test :

http://www.dk-games.com/TestCompress.html

On peut tout convertir du moment qu'on peut compiler. Donc pour charger une image, il faut avoir le code qui va avec. J'ai testé la libPNG pour charger des png, mais cela n'a pas fonctionner. J'ai trouvé une alternative, "lodepng" qui est le code minimaliste pour charger des png. Ca fonctionne.

Pour les fichiers, il y a possibilité d' "embarquer" les fichiers dans le HTML. Emscripten crée automatiquement un file system virtuel. Ainsi les fopen/fread fonctionne comme si on accédait le disque dur.

Pour la taille j'ai eu un peu peu, le fichier HTML généré fait 2,5Mo. si on mets les optims de compilation, il tombe a 800Ko. Si on ajoute la compression (version dont j'ai mis le lien plus haut), cela tombe a 250Ko.

Pour l'affichage, c'est de l'OpenGl ES 2. Faut tout écrire de zero (le shader). J'ai un gros tableau dans lequel je peux "batcher" des sprites. Ainsi c'est simple et pratique.
Le code fonctionne pareil sous Win32 que ce que vous voyez sous navigateur (en fait sur Win32 l'affichage clignote, faut que je revois cela).

C'est pratique pour debugger (sous Visual) et juste convertir en web quand tout fonctionne nickel.

Lapintade
Lapintade
Niveau 30
10 décembre 2013 à 16:15:12

C'est parfait sous Chrome, et saccadé sous FireFox.

C'est assez fluide sur mon BlackBerry Z10.

Pepitoast
Pepitoast
Niveau 10
11 décembre 2013 à 12:19:58

Certains utilisateurs confirment qu'on peut utiliser les sockets a volonté avec emscripten, ce qui casserait les limites des sockets côté navigateur qui ont été imposées pour notre bien.

Cela pourrait-il donner de gros risques ?

Lapintade
Lapintade
Niveau 30
11 décembre 2013 à 12:21:04

Aucune idée, je n'ai jamais utilisé des sockets (rien à voir avec les chaussettes hein :ok: )

Lapintade
Lapintade
Niveau 30
13 décembre 2013 à 17:22:55

Test 3D:

http://www.dk-games.com/Test3D_1Compressed.html

Vertex Shader et Fragment Shader

papy386
papy386
Niveau 10
13 décembre 2013 à 23:27:49

Bonjour

Les problèmes de risque dans les sockets sont exactement les mêmes que partout.

Tout dépend du protocole de communication que vous utiliser, de la couche réseau (tcp, udp) et des ports (le plus gros risque c'est d'utiliser des ports trop connus).

boyd-fowler
boyd-fowler
Niveau 10
17 janvier 2014 à 22:03:30

Bonsoir je viens de découvrir ce puissant outil mais voilà une question qui me taraude sachant que je suis un débutant total en Javascript (En C je ne suis pas un génie non plus vous me direz :rire: )

http://pastebin.com/uzib8kXA

Voilà ce code m'affiche un input quand je dois faire la saisie moi j'aimerais qu'il me pose les questions de mon programme C , le truc c'est qu'en fouillant dans le code je ne vois qu'un windows prompt input du coup je ne vois pas trop ce qu'il faut modifier :(

Lapintade
Lapintade
Niveau 30
18 janvier 2014 à 13:12:03

J'avoue que je ne comprends pas ta question. Peux tu expliquer ce que tu veux faire ?

anthonyCalvillo
anthonyCalvillo
Niveau 10
18 janvier 2014 à 13:38:44

Mon programme en C te demande quel nombre tu veux multiplier et jusqu'où tu veux faire ta table exemple la table de 5 jusqu'à 5 *10 . La ca marche mais au lieu d'avoir ma question qui s'affiche à l'ecran j'ai Input qui s'affiche à la place ce qui est bien gentil quand tu es concepteur du programme mais autrement... Si tu peux teste les deux codes tu verras où je veux en venir. Je veux une boite de dialogue avec "quel chiffre voulez vous multiplier? " et "jusqu'où?"
Tu saisis mieux? Une banale table de multiplication avec choix de l'utilisateur

anthonyCalvillo
anthonyCalvillo
Niveau 10
18 janvier 2014 à 13:43:33

http://pastebin.com/rtBfrVNh le code en C qui fait une dizaines de ligne .

Lapintade
Lapintade
Niveau 30
19 janvier 2014 à 14:59:57

Tu veux savoir comment ouvrir une boîte de dialogue.

C'est du jtml spécifique. Je ne sais pas. Il faut sûrement faire une fonction java script externe que tu appelera depuis ton code C. Je sais que c'est possible. Faut voir si des.boites de dialogues ont déjà été prévu dans emscripten. Je crois que "alert" ça fonctionne. Il y en a peut être d'autres qui te permettent de rentrer des infos

boyd-fowler
boyd-fowler
Niveau 10
20 janvier 2014 à 08:51:03

Oui il m'ouvre une boite de dialogue mais pas comme il devrait et j'ai beau chercher dans le code javascript je ne vois pas comment il fonctionne.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware