Le vendredi 22 avril 2005 à 11:45 +0200, Matthieu Fertré a écrit : > juste un petit message pour demander si il y a encore une raison pour > laquelle les maps sont découpés en cellules de tailles fixes, si oui > laquelle ?
Peu de cartes vidéos aiment les textures de 2048x2048. ClanLib 0.7 repose uniquement sur OpenGL, et dans OpenGL les dimensions sont arrondies au multiple de 2 par excès : 100x100 -> 256x256 1000x500 -> 1024x1024 1500x500 -> 2048x2048 (peut-être que la hauteur et la largeur peuvent être différentes, mais ça m'étonnerait) Le soucis étant que pour écrire un octet dans un texture OpenGL, il faut autoriser l'écriture (la copier en RAM ?!), modifier la texture, puis ... la renvoyer vers la carte vidéo. C'est ULTRA lent (dès qu'on touche au terrain => explosion). Pour info, 2048x2048 ça fait 16 Mo ... (32 bits/pixel) Ceci provoque de gros ralentissements. Pour essayer, allez dans map/tile.cpp, et changez InitTile (256, 256, ...) en InitTile (2048, 2048, ...) Ceci découpe la carte en bloc de 2048x2048 (en gros, en un unique bloc). Essayez 16x16, 64x64, 512x512, 1024x1024. Décommentez aussi "DESSINE_BORDURE_CANVAS" dans map/ground.cpp pour "voir" le cadrillage. --- Sinon, il existe un "pbuffer" permettant de copier une surface OpenGL dans une autre surface OpenGL avec en plus des effets graphiques (filtres). Mais le soucis est que chez moi "pbuffer" n'est pas supporté par ma carte vidéo ... J'ai un petit doute sur ClanLib. Mais bon, ClanLib et moi hein ... @+ Haypo -- et la citation du jour ... Plus les galets ont roulés, plus ils sont polis. Pour les cochers, c'est le contraire. -+- Alphonse Allais -+-