Se connecter avec
S'enregistrer | Connectez-vous

OpenGL shaders sous ATI Radeon 9250

Dernière réponse : dans Programmation

Bonjour,

Je suis sur un programme en C++ avec OpenGL (3D) et je voudrait inclure des shaders.

Pour ça pas de problèmes, seulement mon matériel ne semble pas supporter les extensions nécessaires...

J'ai une carte graphique ATI Radeon 9250 128 Mo en PCI.

J'ai pu faire tourner Half-Life 2 dessus en DirectX, donc elle supporte les shaders en DirectX.

Si quelqu'un à une solution ça m'éviterait de devoir passer en DirectX, OpenGL me conviens mieux.

Merci d'avance!

Autres pages sur : opengl shaders ati radeon 9250

Lassé par la pub ? Créez un compte
Expert Programmation

Pour DirectX avec gcc, je n'ai jamais testé, mais je ne vois pas de raison qui empêcherait un tel dev.

Sinon, tu utilises quoi dans ton programme les pixels shaders ou les vertex shaders ? Ou montre au moins la fonction qui bloque.

Ben j'aimerais pouvoir utiliser les 2: vertex et pixels shaders mais je n'ai implémenté encore aucun code étant donné qu'aucun programme utilisant cette technologie sous OpenGL ne fonctionne (OpenGL shader designer me dit que mon hardware ne supporte pas les shaders...)

Tout ce que j'ai fait c'est un début avec glew qui me dit la même chose et en me procurent l'addresse des fonctions OpenGL utilisées par les shaders moi-même. A partir de ca, j'ai fait un programme qui affiche un polygone avec ou sans utiliser un petit shader sencé ne rien faire en gros.

Ce qui se passe c'est que mon polygone s'affiche normalement, mais quand j'active le shader, plus rien ne s'affiche.

Finalement j'ai abandoné OpenGL et je passe sou direct3d. J'ai du changer de compilateurs pour quelque details mais maintenant ca fonctionne. Je n'ai pas encore implémenté les shaders mais je sais qu'ils tournent, là les exemples du SDK qui fonctionnent!

Je sais je suis passé du libre à Microsoft c'est mal :( 

Enfin si quelqu'un s'y connais en d3d, j'ai quelque soucis pour redimensionner mon device, je pense qu'il faut utiliser LPDIRECT3DDEVICE9::Reset() mais cette fonction me renvoit une erreur.

Voilà je ne suis pas encore sorti de l'auberge :sarcastic: 

Ok ben je vais utiliser DirectPlay alors, c'est vrai que j'ai perdu la portabilité...

En DirectX, pour afficher des polygones ils faut créer un vertex buffer, rien de bien compliqué, je le crée à l'initialisation et je l'affiche à chaque frame. Mais si mes vertices changent, je dois recréer le vertex buffer à chaque changement? C'est pas trop lourd?

Par exemple, j'ai un terrain en height map et je veux qu'on puisse creuser cette map dans le jeu, les polygones se modifient...

Je recrée en tout cas les vertex buffers à chaque fois que la fenêtre est redimensionnée puisque je dois faire un reset du device. Là aussi, y a pas quelque chose de moins lourd?
Expert Programmation

ça fait longtemps que je n'ai pas touché à DirectX (le 7 en fait :D  ), mais il serait logique que tu puisse créer plusieurs buffers de vertex que tu puisse empiler dans un gros buffer pour faire plusieurs zones.
La 3D est lourd à cause du grand nombre de polygones, c'est pour ça qu'il faut de grosses cartes graphiques et que les algos sont optimisés.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde