Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Is_Daouda le Juin 03, 2016, 12:52:13 pm

Titre: Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 03, 2016, 12:52:13 pm
Bonjour tout le monde.

En se moment j'essais de porter mon jeu de platforme sur android et je rencontre un probleme que je n'arrive pas a resoudre.

Voila quand j'essais de dessiner mes tableaux de vertex sur android, ils ne s'affichent pas, pour tant sur PC tout fonctionne bien.
Au fait les tabeaux de vertex me permet de dessiner tout les tuiles de mon niveaux (j' utilise 4 tableaux de vertex qui me permet de simuler des effets de prondeur c-a-d afficher certains tuiles sur d'autres).

SVP comment pourrais je resoudre ce probleme.

Merci d'avance.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 03, 2016, 01:37:48 pm
Si tu utilises des primitives de type Quads, ce n'est pas supporté sur OpenGL ES (et donc Android). Si c'est bien ça, normalement tu as un joli message d'avertissement sur la sortie standard d'erreur.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 03, 2016, 02:07:06 pm
Au faite j'utilise l'emulateur bleustack pour debugger le jeu et code::block comme editeur c'est pour sa que j'ai pas eu ce message.

Oui j'utilises des primitives de type Quads pour creer le tilemap.

SVP comment pourrais je resoudre ce probleme?

Merci d'avance.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 03, 2016, 02:19:49 pm
Citer
Au faite j'utilise l'emulateur bleustack pour debugger le jeu et code::block comme editeur c'est pour sa que j'ai pas eu ce message.
Il y a toujours moyen de récupérer les sorties standards. Et mieux vaut le faire, il y a souvent des informations utiles à récupérer ;)

Citer
SVP comment pourrais je resoudre ce probleme?
Ben... N'utilise pas ce type de primitives.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 03, 2016, 03:05:41 pm
Excuser moi pour cette question mais est ce que c'est la seule primitive qui n'est pas supporté par Android?

Merci d'avance.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 03, 2016, 03:29:11 pm
Oui. C'est indiqué dans la documentation (http://www.sfml-dev.org/documentation/2.3.2-fr/group__graphics.php#ga5ee56ac1339984909610713096283b1b).
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 03, 2016, 04:21:27 pm
Oh!!! autant pour moi, j'aurais du bien lire dans la doc.

Maintenant il ne reste plus qu'a modifier tout mon code, quelle galère.

Excuser moi encore pour cette question mais, quel Primitive serait la plus adaptée pour créer un tileMap a par les Quads?
Je vous le demande car je ne sais utilisé aucune autre primitive que Quads.

Merci d'avance pour votre réponse.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 03, 2016, 05:53:20 pm
Le choix est plutôt restreint.

De toute évidence, ni Points, ni Lines, ni LineStrip, qui n'ont aucun surface. Reste plus qu'à trouver un truc qui marche parmi les 3 primitives triangulaires proposées.

TriangleFan, non, puisque toutes les primitives du vertex array seraient organisées autour d'un point central, ce qui n'est pas le cas pour une tile map.

TriangleStrip, pourquoi pas. Sauf qu'à la fin de chaque ligne il faudra créer un triangle dégénéré pour repasser au début de la ligne suivante sans avoir un gros triangle qui tâche en plein milieu.

Donc, la solution évidente, c'est tout simplement Triangles. A chaque quad que tu créais, crée maintenant 2 triangles qui partagent la même diagonale. Ca te fera juste deux points de plus par tile.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 03, 2016, 11:22:35 pm
J'ai réussi à créer le quads avec 2 triangles comme vous me l'avez conseillé et le tile map à été bien généré.
Mais quand je fais le test sur Android le jeu rame tellement ( même sur le téléphone physique).Pourtant sur PC le jeu est fluide.

Je ne comprend plus rien?
Ou bien c'est à cause de la taille de mes tableaux de vertex car il me permet de dessiner tout le niveau.

Svp pouvez m'éclairer.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 04, 2016, 09:15:46 am
Combien de points dans ton tableau ? Quel téléphone ? Et puis ensuite ton code pourrait très comporter des parties mal optimisées... A ce niveau il est difficile d'en dire plus, il vaut mieux que tu passes un peu de temps à étudier ton code, voire faire un peu de profiling.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 04, 2016, 10:46:50 am
Au fait comme un quads est formé de 2 triangle j'utilse 6 point par tour de boucle pour le crée (6/2 = 3 =>1 triangle).
J'utilses un SONY XPERIA Z8 version android 4.0.1; 256 Mo de RAM;
J'utilses le target << l'android-23 >> pour mettre a jour mon projet.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: victorlevasseur le Juin 04, 2016, 07:29:04 pm
Tu as combien de points au total ?
Tu peux nous montrer les extraits de code associés.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 06, 2016, 01:42:50 pm
Bonjour voici le code qui me permet de créer mon tile map

(click to show/hide)
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 06, 2016, 02:07:43 pm
C'est le code du tutoriel non ?

Et tu n'as toujours pas répondu à la question du nombre total de points que tu as dans ton vertex array...
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 06, 2016, 02:25:53 pm
Au fait j'ai un peu modifier le code du tutoriel pour l'adapter au  triangle ce n'est pas vraiment le même code.

Supposont que j'ai un niveau de dimension : WIDTH = 225 et HIEGHT = 22
le nombre de points est : (255 * 22) * 6 = 29040 points
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 06, 2016, 02:32:18 pm
Citer
Supposont que j'ai un niveau de dimension : WIDTH = 225 et HIEGHT = 22
On suppose, ou bien c'est vraiment le cas ?

Ce que tu peux faire pour optimiser, si c'est vraiment le nombre de points qui nuit aux performances, c'est découper ton niveau en morceaux, et n'afficher que les 2 (puisque ta map a l'air linéaire -- sinon au pire ce sera 4) morceaux visibles à l'écran.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 06, 2016, 02:50:44 pm
Euh c'est la taille de mon niveau 1.

Deja j'ai eu du mal a instauré ces maps les decoupés, quel galère.

Édit : j'ai essayé le jeu sur Remix OS (android 5.1 pour pc 32 bits) le jeu est très fluide.

Excusez moi pour cette question mais, est ce que la version d'android que j'utilise pour compiler le jeu peut aussi causé ces problèmes?
car en se moment j'utilise l'android-23 pour compiler le projet.

Merci d'avance pour vos réponse.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 06, 2016, 03:34:59 pm
Citer
Deja j'ai eu du mal a instauré ces maps les decoupés, quel galère.
Faut pas se noyer dans un verre d'eau, c'est pas grand chose en réalité. Au lieu de générer une grosse map tu en génères plusieurs que tu mets bout à bout. Côté code ce n'est pas grand chose en plus.

Citer
Excusez moi pour cette question mais, est ce que la version d'android que j'utilise pour compiler le jeu peut aussi causé ces problèmes?
Je ne pense pas.

Sinon, est-ce que ton téléphone arrive à faire tourner des jeux plus costauds ?
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Cpl.Bator le Juin 06, 2016, 03:36:59 pm
Ce que veut dire laurent , c'est que tu dois recrée ton vertex buffer dès lors que tu scroll.
C'est facile à mettre en place. si tu utilises un code du style :


- init video
- init game

- while (run){
- sfml event
- game event
- update
- draw
- display
}

 
tu rebuild ton buffer dans update() , pour savoir se qui est visible , tu prend le centre de ta vue , que tu divises par la (taille en pixel * le zoom si il y a) de tes tuiles, tu auras alors l'index qui pointe dans ton tableau de tuiles. cet index correspond au centre de ta vue, il est facile ensuite de savoir combien de tuiles est visible sur l'écran en divisant la taille du rendertarget par la taille d'une tuile. à partir de là , tu as toutes les infos pour bouclé uniquement sur ce qui est visible à l'écran et ainsi réduire considérablement le nombre de point qui constitue tes triangles.

Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 06, 2016, 06:32:18 pm
Citer
Ce que veut dire laurent , c'est que tu dois recrée ton vertex buffer dès lors que tu scroll.
Pas vraiment, non.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Cpl.Bator le Juin 06, 2016, 07:45:08 pm
Citer
morceaux visibles à l'écran.

J'me suis arrêté a cela ^^

Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Laurent le Juin 06, 2016, 09:06:26 pm
Je parlais d'afficher en entier les morceaux (pré-définis) au moins partiellement visibles à l'écran. Le but n'est pas de n'afficher très exactement que ce qui est visible à l'écran, mais de dégrossir un maximum avec le moins de calculs possibles. Le culling est toujours une histoire de compromis.
Titre: Re : Impossible de dessiner les tableau de vertex sur Android
Posté par: Is_Daouda le Juin 07, 2016, 11:46:42 am
Bonjour.
J’avoue que je ne comprends pas bien ce que vous dites, mais je vais faire un effort pour découper le tableau de vertex en morceaux.