DirecT x | Cargar Texturas desde un PictureBox

Iniciado por <[(x)]>, 5 Febrero 2009, 17:19 PM

0 Miembros y 1 Visitante están viendo este tema.

<[(x)]>

holas

Estaba bien do como usar direct x en VB y me encontré con que carga las testuras desde un archivo.
Código (vb) [Seleccionar]

 
    D3DDevice.SetTexture 0, D3DX.CreateTextureFromFile(D3DDevice,"C:\a.bmp")
 


Como ven la tiene que crear...

Con lo cual no le podemos poner haci:
Código (vb) [Seleccionar]

 
    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
<[(x)]>

LeandroA

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.

el_c0c0

#2
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
'-     coco
"Te voy a romper el orto"- Las hemorroides

<[(x)]>

#3
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!
<[(x)]>

el_c0c0

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
'-     coco
"Te voy a romper el orto"- Las hemorroides

BlackZeroX

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).
The Dark Shadow is my passion.