Coucou a tous..J´ai un problème depuis toujours : mon PC rame quand j´affiche une scene texturé ( pas de lumiere).
Mon PC est une bonne bécane, Geforce2, Amd 1.4Gh,256 Mo de ram. Donc je ne comprend pas qu´avec 2000 carrés texturés ( la scene utilise UNE seule texture en tout et pour tout) ) a l´écran ca rame. Sans texture, l´affichage est fluide. Avec une texture de petit format ( 64*64pixel) ca reste fluide mais avec une texture de 512*512pixel : c´est la cata. ca rame a fond et seul un tres gros zoom permet d´avoir une scene fluide.
Avoir activé le mipmapping améliore les performances, mais je suis loin de ce que j´attendais de mon système. Avez vous une idée de ce que je pourrais faire ( j´ai peut etre oublié qqchose ou apres avoir joué sur les filtres j´en demande trop a mon systeme...)
J´ai pas sous la main ce que j´ai programmé, je le mettrais plus tard...Mais si vous aviez une solution....
je pense que c´est normal ca kil faudrais c ke je teste aussi mais ca m´enchente pas de devoir apprendre opengl pour ca, ca serai pas mal ke tu m´envoi ton file texture et ton exe pour ke j´essayes sur mon PC et te dire si ca rame.
sinon fo savoir ke la G2 mx c vraiment pas tres puissante donc voila.
. . .
Faudrait voir le code parce que c´est pas évident comme çà.
Mais bon, y´a pas de miracle non plus, si tu demandes de rasteriser 2000 quads qui prennent tout l´écran il faut bien les dessinner!!!
Il faut voir aussi si le ZBuffer est bien activé.
Normalement, ZBuffer ou non, le probleme n´est pas la.
2000 * 6 * 3 , 36000 triangles texturés en tout ca ne ce dessine pas facilement. Surtout si tu fait passer ca par l´AGP a chaque frame.
Si tu pouvais faire passer le code, ca nous faciliterais l´etude de ce probleme.
Neanmoins, pour accelerer le rendu, n´affiche que les cubes dans le point de vue. Engage le back face culling. Et verifie aussi la taille max des textures gerées par ta carte. 512*512 c´est peux etre trop gros pour elle.
bon je fou ma sauce à moi aussi.
et ton affichage reste fluide en 256x256 ce qui est normal.
Au dessus, certaines cartes gère mal les textures de grande taille ( voir pas du tt) donc C au driver OpenGl de faire le travail de découper la texture en 4 de 256x256.
Pour vérifier ca, découpe toi meme ta texture en 4 tu rajoute un vertex au centre de ta face pour mapper les 4 textures & tu relance la meme scène.
Oh miracle, C fluide ; p
Le ZBuffer va dégager les pixels qui sont éjecté grace au ZTest, tu as donc moins de pixels rasterizés.
"certaines cartes gère mal les textures de grande taille ( voir pas du tt)"
La GeForce 2 gère jusqu´en 1024x1024.
"Pour vérifier ca, découpe toi meme ta texture en 4 tu rajoute un vertex au centre de ta face pour mapper les 4 textures & tu relance la meme scène."
J´ai des doutes, ta texture fait toujours autant de place en memoire, de plus tu dois te taper 4 SetTexture par quad soit 4*2000 = 8000 SetTextures(au prix ou ca coute en temps GPU). Et tu rajoutes 1 vertex a transformer soit 25% de transformation en plus, sans compter que ton quad fait désormais 4 triangles au lieu de 2.
Je demande à voir, pour le "Oh miracle, C fluide ; p"
Arnaud, fait nous voir ton code, il doit y avoir une couille quelque part, c´est pas possible autrement. Pour mon jeu, je pousse 30 000 triangles sur mon landscape à 80FPS sans optimisations avec 64 MO de textures ( toutes font 1024x1024) sur un Athlon 1 GHZ avec GeForce 2 MX 32MO. c´est a dire qu´en plus je swappe en permanence sur le bus agp comme la ram vidéo est insuffisante, et pourtant ca tourne a bloc.
pour linstant je ne fais que rendre mes 100*100 cubes, meme s´il y en a que 3visible a l´écran. ( suivent le zoom).
texture de 512*512: gros zoom = fluide, faible zoom = saccadé
texture de 64*64 : faible zoom = fluide, grose zoom = fluide
Sans texture, c fluide.
Avec des Quads colorés ( glcolor), c fluide.
Le Z buffer est activé, ettous mes quands sont vue de face.
Bon, je vais mettre d´ici peu, des extraits de code et pour ceux qui veulent le prog, mettez votre email...
­
Par curiositée le code m´interesse aussi.
Ton mail est arrivé en vrac...
Peux-tu me le renvoyer?
hsdino@wanadoo.fr
Flute, le zip n´est pas valide : /
N´hesite pas a me renvoyer les sources. N´envois pas d´exectuables, un Kouic parano n´execute que les prog qu´il recompile lui meme : )
tes sources m´interressent aussi : )
si c´est lent au dessus d´un certain truc, C surement que ça passe a l´emulation ( si c´est comme direct3D)
Direct3D utilise un maximum les ressources des cartes, ce qu´on appelle le HAL, et si la carte ne sait plus faire, alors il emule automatiquement ce que la carte devrait faire en y donnant au processeur central, ce qui ralentit séverement...
Sinon, as tu rangé tes textures dans la mémoire centrale ou dans la mémoire vidéo ? ( la mémoire vidéo étant quand meme a privilégier)
lol, avec l´openGL, on a pas cegenre de probleme. c la librairie qui fait ce choix.
ps:j´ai qu´une seule texture chargée en mémoire(512*512 RGB au maximum) et y a 32Mo sur macarte : )
Dans le pire des cas, Kouic, je te passe les fichiers objets:) . Ou alors tu trouves une machine a sacrifier.
Plus sérieusement,
Pour les sources,je peux passer des morceaux ou des fichiers isolés mais tant que le projet n´est pas fini ou abandonné, il n´est pas question de diffuser l´intégralité de sources.
Mais promis craché Kouic, Quand le projet sera enfin terminé, je le sors en licence GNU avec les sources.
non.
En fait je vais sortir les sources plus tot que prévu pour accélerer l´amélioration du logiciel.
Ceci sera effectif quand j´aurais fini les bases du programmes.
Je ne sais pas si je peux t´aider, mais ça ne coutera rien d´essayer.
Par contre, tu pourrais en dire un peu plus sur ton projet?
Ha, arnaud81, je ne suis pas tant que cela extremiste : )
Nul besoin de sortir les sources si te ne le desir pas. Presonnelement, je suis adepte du LGPL. Ce n´est pas 100% une philosophie Open Source a 100% mais ca repect les souhaits de la majoritées des developpeurs qui travail durs sur leurs projets.
J´attends avec impassience ton prog ( executable ou obj ou autre). De toute facon je le fera tourner d´abord sur une machine virtuelle ; )
Alors le projet, c´est de réaliser un RPG Maker 3D. Mais a la différence du RPG Maker 3D qui existe déja enjap, ce projet rajoute l´aptitude a modifier la hauteur des paysages et d´importer ses propres objets 3D issus de 3DStudioMax. ( entre autres).
Parceque les RPGMaker user sont un peu des neuneu : p L´interface devra etre tres intuitives presque aussi facilement qu un RPGMAker2000. Cette condition fait la différence entre un vrai Modeleur et mon editeur ( d´unpoint vue de la réalisation du monde).
C´est sans compter sur toute la gamme d´effet speciaux que peux rajouter la 3D : l´eau transparente, effet de vague, brouillard volumetrique, effet de particules divers et variés et plus si idées...Kouic, tu as de la chance tu vas avoir ma toute derniere version.. Tu l´as veux Dindon?
J´y crois pas!
Je bosse exactement sur un projet du même type, nom de code RPGCraft! Bon, par contre, c´est pas la même politique, puisqu´il intégrera pleins de trucs que le neuneu moyen aura du mal à piger, le but étant de laisser le plus de liberté possible avec un éditeur de code et un système de plug-ins et de mods qui permettront de créer à peu près n´importe quoi.
Sinon yes je veux bien ta dernière version, mais c´est clair qe ce serait un peu plus simple si tu envoyais tes sources