OPEN GL - Programmation
Marsh Posté le 19-09-2001 à 15:29:45
a partir du moment ou tu utilise la bibliotheque opengl, l'acceleration de ta carte est prise en compte
sinon, je sais po, va voir du cote de <a href="http://nehe.gamedev.net/" target=blank>NeHe</a>
Marsh Posté le 19-09-2001 à 15:47:02
pas forcement, ils existent plusieurs drivers opengl, software, MCD et ICD je crois...
Mais, quoiqu'il arrive, c'est pas normal que mon programme n'affiche que 2 fps avec 25000 faces non texturées.
Marsh Posté le 19-09-2001 à 16:07:07
ouais mais si tu link sur les dll de ta cg elle est exploitee...
(ca fait tellement longtps ke je sais plus en fait komment on fait
Tu dvlp sous koa ?
Delphi/VisualC++ ...
[edtdd]--Message édité par evode--[/edtdd]
Marsh Posté le 19-09-2001 à 16:29:32
Je travaille sous Visual C++! Le problème, c'est que j'affiche la même chose avec la GLUT et j'obtiens plus de 50 fps. J'ai l'impression que le problème vient, soit de l'initialisation de la fenêtre, soit du fait que c'est un programme Win32.
Mon programme avec la glut était un programme en C.
Sinon, ca pourrait pas être un problème avec la priorité du programme?
Marsh Posté le 19-09-2001 à 17:24:23
Ca vient pas du Win32.
J'ai fait de l'openGL sous glut et Win32.
Glut etait trop limite, alors je suis passe sous Win32 pour faire un moteur 3D.
C'est bizarre que ca rame parce que moi j'affiche un monde de plusieurs milliers de facettes et ca rame pas, y a pas mal d'autres trucs (gestion des collisions etc...) mais ca c'est gerer par le proc.
Les sources sont en lignes mais ca fait 30mo alors si t'as pas un modem j'vais te filer l'adresse
Marsh Posté le 19-09-2001 à 17:37:01
ben par défaut, c'est sous win32, c'est lié à l'opengl32.dll qui est un renderer logiciel, et si y'a une entrée dans la base de registre, l'opengl32.dll lie à sa place le driver ogl de la carte 3d (nvoglnt.dll chez nvdia sous w2k)...
moi ça me fait penser au fait le dll du driver n'est po utilisé et que tu est en rendu logiciel.......
Marsh Posté le 19-09-2001 à 17:39:23
Je suis sous w2k. Tu dois avoir raison..
J'ai un rendu en soft, j'en suis certain: 2000 faces, c'est fluide, 20000 faces-> 2 fps voire 1.
Marsh Posté le 20-09-2001 à 13:29:17
Hier, j'ai compilé mon programme avec deux compilo différents:
c++ builder et visual c++.
Avec le premier, j'obtient 20 fps avc 25000 faces et avec visual 2 à 3 fps.
Ya un problème de linkage, mais j'arrive pas a le resoudre...
Si quelqu'un a une solution....
Marsh Posté le 20-09-2001 à 13:39:38
Citation : Ya un problème de linkage, mais j'arrive pas a le resoudre... |
bah ce serait plus facile si tu developais tonsoucis de linkage...
Enfin, au hasard, tu va dans project / settins / link et tu rajoute dans "object library modules" glu32.lib opengl32.lib
Marsh Posté le 20-09-2001 à 13:45:02
Ben en fait, ya pas de soucis de linkage.
Ca fait maintenant 1 an que je fais de l'OpenGl et je n'ai jamais eu ce genre de problème. Jusqu'au moment ou je me suis mis à développer en C++.
les libs glu32 et opengl32 sont bien incluses...
J'ai l'impression que windows, pour ce programme, utilise une lib OGL software.
Pourtant, dans mon code, j'ai fais une fonction qui me renvoye que mon prog est bien accéléré par la carte.
Par contre, quand j'utilise des display lists, ca tourne 10 fois plus vite: 25fps.
Mais je ne vx pas utiliser les displays lists pour tous mes objets alors il faut vraiment que je règle ce problème.
Marsh Posté le 21-09-2001 à 14:05:34
zarb ton truc....meme 25 fps ca colle pas trop...
peut pas t'aider moi chui plutot d3d
Marsh Posté le 21-09-2001 à 14:20:43
faudrait que tu montre un peu ton code ... peut-être que t'initialises mal ta fenêtre. si tu demandes une feature qui n'est pas supportée par la carte, un bon driver l'émule en soft. et peut-être qu'en utilisant les displays lists tu passes outre ça ...
quelle carte d'ailleurs ? ça semble un peu lent pour 25000 faces ...
Marsh Posté le 22-09-2001 à 13:08:46
Question con :
Tu fais tourner tes softs dans la même résolution quand tu compiles avec Visual C++ et Builder C++ ?
Et tu as quoi comme carte graphique ? Parce que 25000 poly c'est pas rien quand même ...
Surtout si tu utilises pas de Display List..
Marsh Posté le 22-09-2001 à 14:07:21
25000 face a 2fps ????
c koi la resol ? meme en soft, c carrement ridicule !!!!!!
un bon moteur soft affiche facil 500 000 poly/sec sur une machine a 500 MHz (texture + eclairage)!! (en tout cas j en avais fait un ki le faisait)...
Marsh Posté le 22-09-2001 à 14:42:25
dumpe dans un fichier le nom de l'accélérateur et les extensions opengl........
tu pourras voar si c'est le rendu soft crosoft ou le driver ogl nvidia qui est lié...
Marsh Posté le 22-09-2001 à 17:54:56
redstorm a écrit a écrit : 25000 face a 2fps ???? c koi la resol ? meme en soft, c carrement ridicule !!!!!! un bon moteur soft affiche facil 500 000 poly/sec sur une machine a 500 MHz (texture + eclairage)!! (en tout cas j en avais fait un ki le faisait)... |
N'importe quoi ....
Déja c'est pas la "machine" qui détermine le fps... c'est le GPU.
Ensuite, AUCUN moteur n'est capable d'afficher 500 000 poly tout en étant fluide !!!
Par exemple Quake3 en affiche en moyenne 5000 poly ! Attention ca ne veut pas dire que la scène n'en comporte que 5000. Ca veut dire que le rendu se fait sur 5000 poly... nuance !
Donc ton moteur qui affiche 500 000 poly tu me fais bien rigoler.
Je développe un moteur 3D en ce moment, et sur un PIII 800Mhz avec une GeForce DDR en 1024 j'ai testé avec une de mes maps qui contient a peu près 25k poly, je tourne avec une light ambiant, et sans texture a peu près 60fps avec le FF Synch sur off.
Voila!
@+
Marsh Posté le 22-09-2001 à 18:07:12
poste ton problème sur le forum opengl de http://www.gamesdev.ch/ il n'y a pas bcp de monde pour l'instant le site est assez jeune ptetr que quelqun pourra t'aider...
Marsh Posté le 22-09-2001 à 18:42:13
Arlo13 a écrit a écrit : N'importe quoi .... Déja c'est pas la "machine" qui détermine le fps... c'est le GPU. Ensuite, AUCUN moteur n'est capable d'afficher 500 000 poly tout en étant fluide !!! Par exemple Quake3 en affiche en moyenne 5000 poly ! Attention ca ne veut pas dire que la scène n'en comporte que 5000. Ca veut dire que le rendu se fait sur 5000 poly... nuance ! Donc ton moteur qui affiche 500 000 poly tu me fais bien rigoler. Je développe un moteur 3D en ce moment, et sur un PIII 800Mhz avec une GeForce DDR en 1024 j'ai testé avec une de mes maps qui contient a peu près 25k poly, je tourne avec une light ambiant, et sans texture a peu près 60fps avec le FF Synch sur off. Voila! @+ |
on ne s'énerve pas, le monsieur parlait de polygones/SECONDE, pas de polygones/FRAME.
sur le site de nvidia tu peux chopper une demo geforce = 16 millions de polys par SECONDE.
et de mémoire quake3 affiche beaucoup, beaucoup plus que 5000 polys par frame ... c'est con je l'ai giclé, j'aurais pu regarder.
et ce n'est pas le cpu qui détermine les fps, ce n'est pas le gpu, c'est la combinaison cpu + gpu. compare une geforce sur un p2 qq chose et sur un pc plus rapide, tu auras des surprises.
edit car j'ai réussi à m'autoembrouiller
[edtdd]--Message édité par youdontcare--[/edtdd]
Marsh Posté le 22-09-2001 à 23:57:30
youdontcare a écrit a écrit : on ne s'énerve pas, le monsieur parlait de polygones/SECONDE, pas de polygones/FRAME. sur le site de nvidia tu peux chopper une demo geforce = 16 millions de polys par SECONDE. |
okay j'avais pas qu'il avait écrit seconde, mais romuz l'auteur de ce post parle bien de 25000 poly/frames.
" et de mémoire quake3 affiche beaucoup, beaucoup plus que 5000 polys par frame ... c'est con je l'ai giclé, j'aurais pu regarder."
J'ai fait le test avant de dire ca, et en moyenne sans les persos ca tourne autour de 5000poly
" et ce n'est pas le cpu qui détermine les fps, ce n'est pas le gpu, c'est la combinaison cpu + gpu. compare une geforce sur un p2 qq chose et sur un pc plus rapide, tu auras des surprises."
exact mais de plus en plus, le GPU se charge du boulot. Par exemple, les cartes de nouvelles générations prennent en charge les lights et morphings (cf T&L)
Donc plus ca va aller, plus les GPU feront le boulot !
En théorie, le CPU n'est chargé que du boulot hors affichage(son, physik, rézo, etc...)
DOnc a 80% c'est le GPU qui fait le boulot.
"edit car j'ai réussi à m'autoembrouiller "
Edit: J'ai du mal à gérer plusieurs edit à la fois...
[edtdd]--Message édité par Arlo13--[/edtdd]
Marsh Posté le 23-09-2001 à 00:07:51
J'ai fait le test avant de dire ca, et en moyenne sans les persos ca tourne autour de 5000poly
bizarre, je me souvenais de beaucoup plus ... comme quoi.
exact mais de plus en plus, le GPU se charge du boulot. Par exemple, les cartes de nouvelles générations prennent en charge les lights et morphings (cf T&L)
Donc plus ca va aller, plus les GPU feront le boulot !
En théorie, le CPU n'est chargé que du boulot hors affichage(son, physik, rézo, etc...)
DOnc a 80% c'est le GPU qui fait le boulot.
le test dont je te parle a été réalisé sur un p2 450 et un ... je sais plus quoi, mais un truc plus rapide. ça consistait en un simple affichage de meshs, donc quasi uniquement des drawprimitiveVB(), et qq lights. c'est tout. le boost était d'environ 50% sur le pc plus puissant, avec la même carte (geforce ddr).
bon pas d'edit cette fois-ci j'espère ...
Marsh Posté le 19-09-2001 à 14:49:15
Je cherche quelqu'un qui pourrait me donner quelques renseignements sur l'initialisation d'OpenGL avec Win32.
J'ai un probleme: lorsque j'affiche 25000 faces, mon programme tourne a 2 fps. J'ai l'impression que la fenêtre initialisée ne supporte pas l'accélération hardware...
Merci de votre aide.