Skybox

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 18 mai 2004 à 23:59
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 - 19 mai 2004 à 23:28
J'aimerais faire une skybox.

Or, comme mon application sera en grand ecran, il faut des textures pour la skybox de tres haute resolution.
Or, ma petite GeForce2 a du mal a digerer les textures 512*512, donc au dela, c'est foutu.

Pour creer une texture, je ne connais que la fonction D3DXCreateTextureFromFile.
Ce que j'aimerai faire, c'est charger une bitmap sur une surface directdraw, travailler cette surface, puis convertir cette surface en texture.

Est-ce faisable et comment ?

10 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
19 mai 2004 à 00:35
certainement, mais tu ve faire koi exactement? parce que au niveau perf yora quand mem une petite difference...
1
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 23:28
Voici une source qui permet d'apprendre a utiliser les surfaces LPDIRECT3DSURFACE8 et les textures LPDIRECT3DTEXTURE8.

http://cvs.sourceforge.net/viewcvs.py/tom7misc/vstplugins/guitest/graphic.h?rev=1.3
1
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
19 mai 2004 à 00:07
tu peux decouper chaque face de ta skybox en 4 et y appliquer une texture de 512*512, au final ca sera du 2048*2048
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 00:16
Oui, c'est une solution, mais j'aimerais creer les surfaces, qui donneront les textures, directement dans le programme.

En fait je veux pouvoir modifier le ciel pendant le deroulement du programme. Donc, il ne faut pas passer directement d'une bitmap a la texture, mais passer par une surface DirectDraw pour pouvoir "creer" le ciel, puis le transformer en texture.

Peut-on faire cela?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 00:41
La ciel ne sera pas actualisé a chaque boucle (heureusement !), donc point de vue perf, ca ira.

Ce que je veux faire exactement, c'est charger des bitmaps sur une surface (ca je sais faire), puis une fois la surface créée, la mettre dans la transformer en texture.

Ce qu'il faudrait c'est une fonction du style: D3DXCreateTextureFromSurface

Merci djl
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 10:21
A l'aide !

Meme dans Google, il n'y a AUCUN site avec les 2 mots:
LPDIRECT3DTEXTURE8 et LPDIRECTDRAWSURFACE4

(j'ai DirectX 8.1)

Ca veut peut-etre dire qu'on peut pas initiliser Direct3D et directDraw en meme temps car ils demanderont tous les deux l'exclusivité.

Ce que je veux c'est juste charger des bitmaps sur une surface LPDIRECTDRAWSURFACE4 pour pouvoir customiser le ciel quand je le veux depuis le programme. Puis ensuite charger la surface sur une texture LPDIRECT3DTEXTURE8.

Mais si ce n'est pas possible.... il faudrait pouvoir charger des morceaux de bitmaps sur des morceaux de textures, est-ce possible ? (genre BitBlt pour les textures)

Merci
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 10:55
Il y a plein de trucs dans d3dx8tex.h
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
19 mai 2004 à 19:43
désolé Galmiza je connais pas directx (d'ailleur sur le coup je saurais mem pas faire ca en opengl)

tu peux aller voir sur un forum specialiser, c'est plus efficace
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
19 mai 2004 à 19:50
Merci enormement de m'aider meme si tu ne sais pas tout :-).

J'ai trouvé sur le net des exemples, apparemment c'est possible.
En fait, il existe des surfaces LPDIRECT3DSURFACE8 (de dx8) et on peut traiter de telles surfaces avec des fonctions comme CreateImageSurface, D3DXLoadSurfaceFromFile....

Je fais actuellement des tests pour voir comment fonctionnent ces fonctions.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
19 mai 2004 à 19:58
ok, mais tu gagnerais a aller voir sur un forum spacialié, des fois qie sans le savoir tu fonce contre un mur

c'est juste un conseil
0
Rejoignez-nous