Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Armulis

Pages: [1]
1
Bonjour!

J'utilise SFML pour réaliser des animations image-par-image, et jusque-là ça va pas mal.
Mais là, je m'attaque à un truc un peu coriace, et j'ai besoin de conseils.

Comme mes animations font 24 images par-seconde, ça me donne beaucoup de travail de dessin, et parfois pour pas grand chose.
Je voudrais donc implémenter une fonction de "remplissage" pour n'avoir à dessiner qu'une image sur deux (pour les animations qui le permettent raisonnablement).

Le fonctionnement doit être le suivant:
- Afficher la première image opaque, seule.
- Afficher la première image semi-transparente, et la deuxième image semi-transparente par-dessus.
- Afficher la deuxième image opaque, seule.
- Afficher la deuxième image semi-transparente, et la troisième image semi-transparente par-dessus.
- Afficher la troisième image opaque, seule.
-...

Vous imaginez bien que je peux jouer sur la pondération pour faire des "remplissages" plus longs ou asymétriques. C'est justement ce potentiel que je veux ajouter à mon programme (même si le rendu visuel risque de souffrir si on pousse trop).

J'ai fait des essais sur un logiciel de dessin, et apparemment, la superposition de deux images avec 50% d'opacité donne une image semi-transparente.
Est-il possible (à-part y aller à-tâton) de "prédire" l'opacité d'une pile d'images non-opaques?
Si je le cherche par tâtonnement, il faudra que je fasse un tâtonnement par cas (et si je fais des transitions complexes ou des effets visuels, ça va me donner vraiment beaucoup de boulot).
Note: j'ai déjà pensé à faire un algorithme qui "monte" les opacités jusqu'à ce que le rendu soit opaque, mais ça risque de plomber ma vitesse d'exécution (et pour les images qui ne sont pas opaques partout, ça sent déjà le bug).

Question subsidiaire: l'ordre d'empilement donne-t-il une prépondérance à l'image du dessus?

Voilà. C'est un problème un peu théorique, mais je pense qu'il y a de quoi apprendre pas mal de trucs intéressants.

2
Graphique / Pointeur "RenderTexture" : possible?
« le: Octobre 14, 2014, 10:00:13 pm »
Salut!
J'essais d'afficher une image construite sur une RenderTexture, mais il n'y a pas moyen de passer le compilateur sans rencontrer des messages d'erreur d'un kilomètre.
Voici la ligne qui pose problème:
spriteLayer.setTexture(*layers[0][index].RENDERTEXTURE.getTexture());
C'est compliqué, alors j'explique.
"spriteLayer" est un "sf::Sprite".
"layers[0][index].RENDERTEXTURE" est le produit de la structure suivante:
struct LAYER { int NUMERO_PLAN; RenderTexture * RENDERTEXTURE };
...et du conteneur suivant:
array < array < LAYER, 7>, 2>

Je ne comprends pas pourquoi je ne peux pas utiliser ça, puisqu'ailleurs dans le même programme, il y a ceci qui fonctionne très bien:
diaphragme.setTexture(noir.getTexture());
"diaphragme" est un "sf::Sprite"
"noir" est un "sf::RenderTexture".
La seule différence, c'est le pointeur. Est-ce que SFML n'est pas faite pour travailler avec des pointeurs?

3
Graphique / Créer une caméra en utilisant sf::View
« le: Octobre 04, 2014, 09:10:24 pm »
Bonjour!

J'ai écrit un programme qui fonctionne plutôt bien pour l'instant, mais je voudrais y ajouter une caméra.

La version actuelle construit une image en affichant sf::Sprites au-moyen de sf::RenderWindow.draw(). Toute Sprite est "drawée" directement pour apparaître à-l'écran.

Maintenant, je voudrais ajouter une caméra, mais j'ai du mal à trouver des informations sur internet.
Voici mon plan pour l'instant:
1. Je voudrais créer une RenderTexture et la "construire" en y "drawant" mes sprites. Ca donnera une grosse image.
2. Ensuite je voudrais faire un "focus" sur une zone de cette RenderTexture avec la View.
3. Enfin, je voudrais afficher la View.

Pour l'étape 1, je suis parfaitement au-clair. En-fait, je dois simplement remplacer la "RenderWindow" de la version actuelle (décrite plus haut) par la "RenderTexture".
Mais ensuite, comment faire le "focus" de ma View sur la Rendertexture?
Et finalement, comment afficher cette View dans la renderWindow, sachant que l'opération 3 doit adapter l'image virtuelle à la taille de l'écran (la RenderTexture étant dessinée au format 1920x1080, quelle que soit la dimension de l'écran, et la RenderWindow étant créée selon les dimensions de l'écran).

J'ai peut-être trouvé une piste: il y a une fonction "SetView()" dans RenderWindow et aussi dans RenderTexture. Mais dans quel ordre utiliser tout ça?

Merci pour les éclaircissements =D

4
Bonjour!

Comme l'indique le titre, j'ai rencontré l'erreur suivante en exécutant un programme:
"Failed to add a new character to the font: the maximum texture size has been reached"

Après une brève recherche sur google, j'ai trouvé cette erreur dans le code-source suivant:
"IntRect Font::findGlyphRect(Page& page, unsigned int width, unsigned int height) const".

Voilà. Quelqu'un peut-il m'expliquer ce que signifie concrètement cette erreur?
Sur un autre forum, je me suis fait engueuler par des gens qui me reprochaient un code non-fonctionnel, alors que je leur montrais le code-source de cette fonction (que je n'ai pas écrite ^^). En gros, ils n'ont pas l'air de la comprendre complètement...

Merci d'avance!

5
Salut!
J'ai créé un programme qui a une interface graphique en plein-écran, et pour avoir les bonnes dimensions, j'utilisais des méthodes de windows, dont:




    int height(GetSystemMetrics(SM_CYSCREEN)); // Récupérer résolution verticale de l'écran


Mais on m'a dit que, comme j'utilisais SFML, je pouvait utiliser les attributs de VideoMode, qui ont l'avantage d'être plus portables.
Je dis soit, mais simplement, je n'ai pas assez de connaissances pour le faire, et j'ai besoin d'un coup de main.


Je voudrais donc pouvoir accéder à la largeur et à la hauteur de l'écran (mes autres fonctions en ont besoin).


Par-contre, j'ai remarqué un autre attribut de VideoMode qui s'appelle bpp (bits per pixel), et je me demandais si en utilisant ça, je ne pourrais pas shooter le redimensionnement que je fais sur chaque image chargée, afin qu'elle rentre dans mon écran.
Par-exemple, je prévois une résolution de 1920x1080p, et peut-être qu'en réglant "bpp" correctement je pourrais simplement afficher mes images de 1920x1080 pixels sans avoir à les redimensionner.


Si vous avez compris, j'attends vos suggestions et vos idées. =)

6
Général / Problème d'installation de SFML
« le: Juillet 03, 2014, 09:24:01 pm »
Salut!
Je crois que j'ai mal configuré Codeblocks pour utiliser SFML, mais je ne suis pas capable de le vérifier. Quelqu'un pourrait-il m'aider pour effectuer cette vérification, s'il-vous-plaît?

7
Graphique / Dessiner un diaphragme
« le: Juin 15, 2014, 08:35:34 pm »
Salut!

Je suis en train d'essayer de réaliser une animation graphique, et je voudrais faire un diaphragme (ce cercle entouré de noir qui se referme à la fin des dessins animés).

Je pense qu'il faudrait dessiner un rectangle noir et faire un trou dedans.

Créer le rectangle et le cercle, je sais faire. Par-contre, il me faut une fonction pour découper le cercle dans le rectangle.
Avez-vous des propositions? Merci d'avance!

Pages: [1]
anything