DirectX en EXTREMO LENTO
Publicado por angel (1 intervención) el 04/01/2002 23:40:42
Alguien ke me de una mano, por favor!
Estoy haciendo una simulacion con directX8, dibujo sprites en un bucle infinito:
do
D3Device.Clear(0, ByVal 0&, D3DCLEAR_TARGET, &HFF, 0, 0)
D3Device.BeginScene
If (gtyp_D3DCaps.TextureCaps And D3DPTEXTURECAPS_ALPHA) Then
D3Device.SetRenderState(D3DRS_ALPHABLENDENABLE, 1)
End If
D3Device.SetTexture(0, D3DSpriteTexture(i))
D3Device.DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, TLvertex(0), Len(TLvertex(0)))
If gobj_D3Device.GetRenderState(D3DRS_ALPHABLENDENABLE) Then
D3Device.SetRenderState(D3DRS_ALPHABLENDENABLE, 0)
End If
D3Device.EndScene
D3Device.Present(ByVal 0&, ByVal 0&, 0, ByVal 0&)
doEvents
loop until true
claro ke dentro del bucle, exsiten procesos de actualizacion de posiciones del sprite como de la animacion misma,
El problema es que mientras mas grande hago la ventana donde despliego la animacion
(que consiste en alrededor de solo 4 personajes moviendose constantemente en un entorno) se hace terriblemente
lenta la animacion, y ciando lo hago a pantalla completa casi ni se mueven.
cual es el problema?
supuestamente directX es lo suficiente para soportar hasta video juegos con procesos mucho mas complejos que los
que yo hago,
Sospecho que DirectX no esta usando todos los recursos del sistema, aun cuando trabajo a pantalla completa, pues con
bmp's (que uso para hacer la animacion) con mas contenido grafico, de vuelve mas lento aun, entoces
como puedo saber realmente que DirectX consigue todos los recursos
Estoy haciendo una simulacion con directX8, dibujo sprites en un bucle infinito:
do
D3Device.Clear(0, ByVal 0&, D3DCLEAR_TARGET, &HFF, 0, 0)
D3Device.BeginScene
If (gtyp_D3DCaps.TextureCaps And D3DPTEXTURECAPS_ALPHA) Then
D3Device.SetRenderState(D3DRS_ALPHABLENDENABLE, 1)
End If
D3Device.SetTexture(0, D3DSpriteTexture(i))
D3Device.DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, TLvertex(0), Len(TLvertex(0)))
If gobj_D3Device.GetRenderState(D3DRS_ALPHABLENDENABLE) Then
D3Device.SetRenderState(D3DRS_ALPHABLENDENABLE, 0)
End If
D3Device.EndScene
D3Device.Present(ByVal 0&, ByVal 0&, 0, ByVal 0&)
doEvents
loop until true
claro ke dentro del bucle, exsiten procesos de actualizacion de posiciones del sprite como de la animacion misma,
El problema es que mientras mas grande hago la ventana donde despliego la animacion
(que consiste en alrededor de solo 4 personajes moviendose constantemente en un entorno) se hace terriblemente
lenta la animacion, y ciando lo hago a pantalla completa casi ni se mueven.
cual es el problema?
supuestamente directX es lo suficiente para soportar hasta video juegos con procesos mucho mas complejos que los
que yo hago,
Sospecho que DirectX no esta usando todos los recursos del sistema, aun cuando trabajo a pantalla completa, pues con
bmp's (que uso para hacer la animacion) con mas contenido grafico, de vuelve mas lento aun, entoces
como puedo saber realmente que DirectX consigue todos los recursos
Valora esta pregunta


0