holas
Estaba bien do como usar direct x en VB y me encontré con que carga las testuras desde un archivo.
D3DDevice.SetTexture 0, D3DX.CreateTextureFromFile(D3DDevice,"C:\a.bmp")
Como ven la tiene que crear...
Con lo cual no le podemos poner haci:
D3DDevice.SetTexture 0, Picture1.Image
Porque nos tiraría error (No Coinciden Los Tipos)
Si alguien sabe como cargar la textura Directamente desde el Picture y me puede ayudar le estaría muy agradecido.
54¬ui)()5
hola yo no se nada del tema directX pero una textura no significa que pueda ser un bmp en todo caso deberias buscar algo como reateTextureFrombmp que no se si existe
otra cosa sugramente si lo creas tendrias que descargarlo por lo tanto tendrias que hacer algo como
dim hTextura as long
hTextura = D3DX.CreateTextureFromFile(D3DDevice,"C:\a.bmp")
D3DDevice.SetTexture 0, hTextura
y bueno despues tendrias que buscar como descargala
Saludos, seguramente Directx tambien debe tener alguna funcion para leer desde recursos.
No recuerdo bien, pero las texturas pueden ser varias imagenes juntas, que al desdoblarlas, hacen un cuerpo...
en fin, para eso de .image... proba con .image.handle quizas funcione
edit: los juegos no tienen las texturas en los recursos.. la sacan de un archivo de algunos gbs... pero bueno quizas se pueda cargar de otra forma!
saludos
holas
Osea que ni idea... yo = sigo buscando.
y lo del:
Citar
dim hTextura as long
hTextura = D3DX.CreateTextureFromFile(D3DDevice,"C:\a.bmp")
D3DDevice.SetTexture 0, hTextura
Eso tiraría error por lo que el valor devuelto por CreateTextureFile es un Direct3DBaseTexture8, y no hace falta porque directamente se lo paso a la función y ocupo menos memoria.(creo)
Pd: el foro te agradeceria si enves de pegar el code y nada más, lo pones entre las etiquetas '[ code = vb ]' y '[ / code ]'. (SIN ESPACIOS)
--&&%)ud=WW!
Cita de: <[(x)]> en 5 Febrero 2009, 19:22 PM
Eso tiraría error por lo que el valor devuelto por CreateTextureFile es un Direct3DBaseTexture8, y no hace falta porque directamente se lo paso a la función y ocupo menos memoria.(creo)
no, al hacer eso estas cargando la textura en un puntero, al pasarle el puntero pero sin almacenarlo, estas haciendo que no se pueda borrar el objeto en algun futuro..
y la funcion que vos buscas es
D3DX8.CreateTextureFromFileInMemory(Device As Direct3DDevice8, SrcData As Any, LengthInBytes As Long) As Direct3DTexture8
y lo del tag code no es necesario si son 2 renglones de codigo, pero si son mas ahi si.
saludos
Te recomiendo que bajes el SDK DirectX de la version que desees usar pero OJO en VB6 llega solo hasta el 8 por desgracia. yo igual ando con esto de las animaciones 3D con el DirectX y OpenGL jaja por tiempo no le tomo tanta sabiduria al tema xS.
El SDK esta bueno
Te recomiendo que primero aprendas a manejar bien las texturas en 2D y despues en 3D (En 3D es facil solo hay que hacer muchos Calculos trgonometricos si deseas animal algo xS).