desde hace tiempo cada cierto tiempo actualizo una libreria que tengo para renderizar, me gustaria saber como va en otros ordenadores, os dejo un link
http://www.davidib.com/test/dibdlltest.raraviso el test esta preparado para probar el rendimiento de una geforce 6800 y minimo shaders 2.0 con lo que en tarjetas antiguas que soporten shaders 2.0 puede que vaya como el kks
saludos
Bueno, yo saco 36 FPS con mi Geforce 6600 normal :/
La de DX me peta, la de OGL habre la ventana es gris con un rectangulo blanco arriba a la derecha, y se queda pillada, no me deja mover el raton normalmente, pero con alt+f4 puedo salir.
AMD64 3000+ 1Gb 9800XT WinXP(SP2)
Saludos.
Igual que a Grey, pero yo no puedo salir con la de OGL, tengo que hacer un Reset <_<
haddd que micro y tarjeta grafica tienes?
@Damizean no te asustes de los fps yo esperaba muchos menos en un 6600 jeje, se estan pintando 800 modelos
AMD 1900+
Radeon 9500
comenzamos con la aventura de las ati, no se que pasa pero entre ati y geforce las matrices de proyeccion siempre cambian, el rectangulo que ves en la parte derecha superior es debido a que uso una matriz de proyeccion ortogonal para renderizar el texto que muestra los fps, ¿cuando te peta el de directx que es por que te pide una dll o por que sencillamente peta?
A mí el de DirectX me da un error de aplicación y el de OpenGL peta la GPU, me sale el ATI GPU Recovery y tengo que reiniciar con el botón porque el sistema se bloquea.
Mi equipo es un P4 3Ghz, 1GB RAM, Radeon 9600 XT 256MB y Windows XP.
Saludos.
¿alguien mas con ati o geforce que pueda probarlo? por ahora solo funciona en geforces :blink:
los que quieran ver los shaders esta en el directorio de data, son muy sencillos con lo que no entiendo ese error de gpu
A mi la de DX me peta (Error al iniciar la aplicación porque no se encontró d3dx9_26.dll), la de OpenGL me funciona bien, a 30fps.
Mi PC AMD64@3000, 1gb ram y una nvidia 6600.
CitarError al iniciar la aplicación porque no se encontró d3dx9_26.dll
si este error ya lo detecte en otro ordenador, es por que uso las directx de junio en vez de las de agosto, a ver si me bajo las ultimas y compilo con ellas
pd: fallos con amd descartados uff que alivio jeje
pd: ¿las ultimas directx son estas
http://www.microsoft.com/downloads/details...&displaylang=en?
Ops, no me acordé de poner mis specs tampoco.
AMD64 3200+, 2 x 512 mb DDRAM (en doble channel) y la Geforce 6600 PCX (no GT)
Si, son esas las ultimas DX zupervaca
bueno las ultimas directx me piden la *_27.dll casi nada jeje, he subido el redistribuible de directx arriba en la web, y asi podeis instalarlo, ¿por que lo he subido a mi web? por que en la de microsoft se debe de tener el windows original y se que muchos no lo tendran jeje (incluido yo en el otro ordenador :P)
http://www.davidib.com/test/dxwebsetup.exeeditado: ni probeis esta posibilidad, tampoco va asi (grrr), probar a bajaros la ultima dll de d3dx de esta web
http://nexe.gamedev.net/directKnowledge/de....asp?p=D3DX+DLL
Casi mejor que pongas una ATI en tu otro ordenador para ir probando y modificando en el momento o cada cierto tiempo lo que programes, porque creo que te vas a encontrar con más de una incompatibilidad o sorpresa en el futuro.
Tambien lo de las versionés de DirectX se las trae.
un saludo.
Cita de: "_Grey"La de DX me peta, la de OGL habre la ventana es gris con un rectangulo blanco arriba a la derecha, y se queda pillada, no me deja mover el raton normalmente, pero con alt+f4 puedo salir.
AMD64 3000+ 1Gb 9800XT WinXP(SP2)
Saludos.
no habia leido detenidamente tu post, el raton no se mueve por que orientas la camara con el, y se bloquea en una parte de la ventana, es raro que no hayas visto ningun modelo en pantalla, por que el fondo en efecto es gris, me huele que es algo de glsl, ¿sabeis si los ultimos drivers de ati soportan shaders 2.0 en ogl?
a mi no me funciona de ninguna de las maneras:
-opengl : aparece una ventana pero sin contenido dentro, y se cuelga el ordenador, tengo que reiniciar (lo he probado 2 veces)
-dx: primero me dió el error con la dll, la he instalado y ahora se cuelga antes de hacer nada y sale lo de enviar el informe de error a microsoft blablabla... leyendo un poco he visto que los problemas son con Win32_DX.exe, y kernel32.dll.
el equipo es p4 3Ghz,512ram,ati radeon x300 se 128mb
Double post :lol:
Cita de: "zupervaca"¿sabeis si los ultimos drivers de ati soportan shaders 2.0 en ogl?
De hecho creo que los soportaban incluso bastante antes que nVidia. En la web de Humus hay muchos ejemplos con GLSL y funcionan perfectamente en mi ATI.
Saludos.
En cuantito llegue a mi casa lo probare en 3 ATI distintas pero me imagino que me cascara....
si yo fuera tu... me hacia con una ATI para ir probando de forma paralela... aunque si casca tanto... no sera porque has usado alguna extension de nvidia que no tenga ati?
taluegoorr
en directx u opengl solo uso sus funciones para renderizar y usar los shaders, todo lo demas transformaciones, vectores, ventana, teclado, bla bla esta hecho a pelo, las extensiones no las comprueba con lo que puede que sea algo de eso, las funciones que uso en opengl son estas:
glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) wglGetProcAddress("glGenBuffersARB");
glBindBufferARB = (PFNGLBINDBUFFERARBPROC) wglGetProcAddress("glBindBufferARB");
glBufferDataARB = (PFNGLBUFFERDATAARBPROC) wglGetProcAddress("glBufferDataARB");
glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) wglGetProcAddress("glDeleteBuffersARB");
glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) wglGetProcAddress("glActiveTextureARB");
glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC) wglGetProcAddress("glClientActiveTextureARB");
glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) wglGetProcAddress("glCreateShaderObjectARB");
glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) wglGetProcAddress("glShaderSourceARB");
glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) wglGetProcAddress("glCompileShaderARB");
glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) wglGetProcAddress("glCreateProgramObjectARB");
glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) wglGetProcAddress("glAttachObjectARB");
glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) wglGetProcAddress("glLinkProgramARB");
glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) wglGetProcAddress("glUseProgramObjectARB");
glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC) wglGetProcAddress("glDetachObjectARB");
glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) wglGetProcAddress("glDeleteObjectARB");
glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) wglGetProcAddress("glGetUniformLocationARB");
glUniform1iARB = (PFNGLUNIFORM1IARBPROC) wglGetProcAddress("glUniform1iARB");
glUniform2iARB = (PFNGLUNIFORM2IARBPROC) wglGetProcAddress("glUniform2iARB");
glUniform3iARB = (PFNGLUNIFORM3IARBPROC) wglGetProcAddress("glUniform3iARB");
glUniform4iARB = (PFNGLUNIFORM4IARBPROC) wglGetProcAddress("glUniform4iARB");
glUniform1fARB = (PFNGLUNIFORM1FARBPROC) wglGetProcAddress("glUniform1fARB");
glUniform2fARB = (PFNGLUNIFORM2FARBPROC) wglGetProcAddress("glUniform2fARB");
glUniform3fARB = (PFNGLUNIFORM3FARBPROC) wglGetProcAddress("glUniform3fARB");
glUniform4fARB = (PFNGLUNIFORM4FARBPROC) wglGetProcAddress("glUniform4fARB");
glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC) wglGetProcAddress("glUniformMatrix4fvARB");
teoricamente en cualquier tarjeta grafica que soporta shaders debe de rular perfectamente ya que son las funciones mas basicas para manejarlos, no obstante acabare haciendo una version que diga mensajes de error por que si va ser imposible pillar donde esta el fallo en las ati
@jazcks: puedes instalar el ultimo sdk de directx para probar, resulta que en el ordenador que probe baje el instalador de d3dx desde esa web que os di y me sucedia lo mismo que a ti, luego me decidi por instalar el sdk y funciona perfectamente
por ahora solo le ha funcionado a Damizean, ¿Damizean tienes instalado el ultimo sdk de directx?
bueno me parece que ya se cual es el problema, el archivo "data/fonts/pruebas.bmp" es la fuente que se usa para indicar los fps, es de un tamaño 384x384 (nooo), debeis ponerle multiplo de 2 para que no pete, no vereis bien los fps, pero por lo menos os deberia de funcionar correctamente, ponerle 512 por ejemplo
editado: 512x512 va bien
Me da el mismo error que a muchos:
-OpenGL: fondo gris, cuadro blanco arriba a la derecha y el raton se queda pillao en muy poco espacio (unos 30x30 pixels arriba a la izqda), con ALT+F4 me deja cerrar.
-D3D: me pide la lib dll _27, la mia ultima es la _26, hice un renombre y tiro para adelante, empezo a dar mensajes con titulo "Error" y diciendo, interfaz creada, no se que creada y sin ver nada mas que el fondo gris... petardazo y crash de la aplicacion (supongo que fue por utilizar la _26 renombrada a las 27 no se)
Probado en maquinas AthlonXP con 9700Pro, 9800Pro y una 9600Mobile con un PentiumM.
Where is the bug?
Cita de: "zupervaca"bueno me parece que ya se cual es el problema, el archivo "data/fonts/pruebas.bmp" es la fuente que se usa para indicar los fps, es de un tamaño 384x384 (nooo), debeis ponerle multiplo de 2 para que no pete, no vereis bien los fps, pero por lo menos os deberia de funcionar correctamente, ponerle 512 por ejemplo
editado: 512x512 va bien
pues va a ser que no :P.
he sampleado el prueba.bmp a 512x512 y me da el mismo error....
no tires por la potencia 2 de las texturas...las ati igual que las nvidia soportan texturas que no sean potencias de 2 desde hace un tiempo.... o yo no he tenido problemas de esos hace tiempo deberia decir jeje
TheAzazel puedes decirme hasta que mensaje de aviso te llega? es que lo he subido con mensajes diciendo hasta donde llega
los pasos que hice para hacerlo funcionar en un ordenador con una geforce 5200fx:
1) instalar las ultimas directx disponibles, luego ir a esta web
http://nexe.gamedev.net/directKnowledge/de....asp?p=D3DX+DLL e instalar el ultimo d3dx que es el 27 (si tienes el sdk de directx instalado no hace falta, esto da mal rollo ya que el distribuible no viene con esta dll)
2) bajarme los drivers de nvidia mas modernos ya que si no el glsl no funcionaba
3) bajar el test en
http://www.davidib.com/test/dibdlltest.rar4) salen unos mensajitos diciendo por que paso va cuando se inicia el test, en dx y ogl, si os peta por favor decirme cual fue el ultimo mensaje que os salio
gracies ;)
editado: bajaroslo otra vez el dibdlltest.rar ya que subi uno nuevo cuando puse este post, en todos los ordenadores que he probado ya funciona, son dos y con geforce, ahora a ver que pasa con ati (ole)
Citar¿cuando te peta el de directx que es por que te pide una dll o por que sencillamente peta?
Nada de Dll's, sale la ventana de la aplicacion y antes de pintarse el area cliente me sale el dialog tipico de "depurar" y demas....
Citarbueno me parece que ya se cual es el problema, el archivo "data/fonts/pruebas.bmp" es la fuente que se usa para indicar los fps, es de un tamaño 384x384 wallbash.gif, debeis ponerle multiplo de 2 para que no pete, no vereis bien los fps, pero por lo menos os deberia de funcionar correctamente, ponerle 512 por ejemplo
He estado apunto de darte una colleja por ignominiar mi estimada targetita de esta forma..... pero aun que parezca increible, despues de parsar "pruebas.bmp" a una resolucion de 512x512, la de DX funciona!!!
En serio, no se que puede ser, ATI, hoy en dia no tiene esa limitacion.... :blink:
PD: Y me va bastante suave.... :P:P:P
Zupervaca, te funciona la web? porque me da errores de conexion rechazada... y el resto me va bien...
lo mismo te hemos agotado la transferencia.... o hay algun problema...o soy yo solo..who knows!
Bueno, no se que pasaria antes pero ya he conseguido bajar el test de nuevo....
veras, si cojo la lib d3dx9_26.dll y la renombro a _27...el test de directX me funciona! jajaja, me da unos 35fps en una 9700Pro con un AthlonXP3000.
Pero el de OpenGL casca, los mensajitos me dicen que todo se ha creado correctamente... y cuando se supone que debe empezar la historia...no sale na!
bueno, vamos progresando, ahora solo me falta que tire opengl y ya sabeis todos, no necesitais el ultimo dx...
saludos
Citarveras, si cojo la lib d3dx9_26.dll y la renombro a _27...el test de directX me funciona! jajaja
POR DIOS! funciona por que tiene las mismas funciones, pero el rendimiento puede diferir, y los problemas arraglados en la 27, seguiran mal.... cuidadito cuidadito....
Saludos.
Cita de: "_Grey"Citarveras, si cojo la lib d3dx9_26.dll y la renombro a _27...el test de directX me funciona! jajaja
POR DIOS! funciona por que tiene las mismas funciones, pero el rendimiento puede diferir, y los problemas arraglados en la 27, seguiran mal.... cuidadito cuidadito....
Saludos.
Tranquilo tranquilo, que la dll renombrado SOLO la he utilizado para este test (la he dejado en el directorio junto a los exe de zupervaca).
Aunque tienes razon y deberia haber dicho que no renombran y lo dejaran en el lugar original.... pero como yo lo daba por hecho pues... no lo dije!
Solo lo decia por aquellos (como yo) que no quieran volver a descargarse la "ultima" version de DX para probar esto...vasta con ese pequeño trick :P
Aunque...me gustaria tener la _27 autentica y hacer una comparacion binaria con las _26...a ver que han cambiado estos de microsoft...que lo mismo es igual jajajaja
Ahora me funcionan sin problemas las dos versiones, la de DX me da 44fps y la de OpenGL 30fps
Citar
@jazcks: puedes instalar el ultimo sdk de directx para probar, resulta que en el ordenador que probe baje el instalador de d3dx desde esa web que os di y me sucedia lo mismo que a ti, luego me decidi por instalar el sdk y funciona perfectamente
he instalado el ultimo sdk, y entonces me ha funcionado el dx., sin retocar el fichero de la fuente, sólo instalando el dx y luego la nueva versión del test. Da unos 32 fps...
en ogl, sigue sin funcionar, me dice que todo creado correctamente, pero entonces se cuelga y se bloquea todo, tengo que reiniciar.
que bien que os empieza a funcionar a todos (ole), por ahora el unico problema que veo es el ogl con ati, algun fallo tengo que estar cometiendo y me huele que va ser de esos tontos dificiles de descubrir, las pruebas con una geforce 5200fx son de 10fps en dx y ogl, no esta nada mal para estar renderizando 800 modelos en pantalla constantemente empleando shaders, en los ordenadores que he probado dx y ogl me han dado los mismo resultados salvo algun fps arriba o abajo, tendre que desenpolvar mi ati radeon 7500 del portatil que no admite shaders :( y mirar que ocurre
gracias a todos
Cita de: "TheAzazel"Zupervaca, te funciona la web? porque me da errores de conexion rechazada... y el resto me va bien...
lo mismo te hemos agotado la transferencia.... o hay algun problema...o soy yo solo..who knows!
pues es el problema que tengo con aruba, segun el contrato no tengo limites de ningun tipo en descargas, pero resulta que si mucha gente descarga archivos en un periodo de tiempo aruba me corta el servicio, ya estoy cansandome de aruba la verdad, siempre que les envio un mensaje diciendoles que ha fallado ellos me dicen lo de siempre que el dominio funciona correctamente, lo mas seguro que vaya a derechos del consumidor
he subido una nueva version que dice los posibles fallos de por que ati y opengl no se llevan bien en mi libreria, veamos si alguien con ati que le fallo antes pudiera probarlo otra vez y me dijera el mensaje de error, la version esta donde siempre
http://www.davidib.com/test/dibdlltest.rarregracias
editado: se que es mucho pedir, pero podeis probar esta demo de un shader muy simple proporcionado por ati, va con codigo fuente y todo, es con opengl, el ejecutable lo encontrareis en el directorio "GL2_simple_shader"
http://www.ati.com/developer/sdk/RadeonSDK...mpleShader.html
Ahora la version de DX me pide el .dll adecuado, nada del otro mundo.... sobre los 21fps, con la dll renombrada, que no tengo la *_27.dll.
Respecto al de OGL, me sale un dialog tal que : "Error" - "Todos los objetos han sido creados correctamente".
?!?!?!?!
Veo que has resiceado a 256x256 la imagen con la fuente :P
Por cierto, ya de paso (y asi hago memoria para mi mismo), te recomiendo que uses la funcion ClipCursor() del API de windows, si un usuario suficientemente habilidoso clica cuando esta fuera de la ventana la pondra a un segundo plano, pero el cursor seguira sin moverse adecuadamente. Lo mejor es usar el ClipCursor(), y controlar si se pierde el foco(Alt+tab, salvapantallas, o cualquier otra contingencia) para desactivar esa "captura" manual del cursor.
Saludos.
Cita de: "zupervaca"he subido una nueva version que dice los posibles fallos de por que ati y opengl no se llevan bien en mi libreria, veamos si alguien con ati que le fallo antes pudiera probarlo otra vez y me dijera el mensaje de error, la version esta donde siempre http://www.davidib.com/test/dibdlltest.rar
regracias
editado: se que es mucho pedir, pero podeis probar esta demo de un shader muy simple proporcionado por ati, va con codigo fuente y todo, es con opengl, el ejecutable lo encontrareis en el directorio "GL2_simple_shader" http://www.ati.com/developer/sdk/RadeonSDK...mpleShader.html
OpenGL sigue sin funcionar,lo mismo, sale un mensaje diciendo que todo ha sido creado correctamente y despues...cursor casi fijo en el centro de la ventana(antes arriba a la izqda) y el mismo fondo gris con el rectangulo en blanco.
Eso de Ati me funciona sin ningun problema, he probado el ejecutable y todos los bat para curiosear un poco...todo funciona....
bueno veo que toy creando confunsion jeje, vayamos por partes
- el titulo "error" de la ventana en los mensajes es el que pone por defecto windows, solo importa el contenido de la ventana en este caso: "Todos los objetos han sido creados correctamente"
- el raton por ahora no lo oculto y lo dejo por ahi perdido por que en el otro ordenador que tengo de pruebas al ocultarlo desaparece, pero si lo quiero volver a mostrar falla, con lo que hay algun fallo en el api de win32
- _Grey el opengl te ha rulado bien?
- TheAzazel viendo que te funciona bien el ejemplo de ati.com me parece que ya se que es, ati da unos .h especiales para usar las extensiones en opengl, parece ser que van a ser diferentes a las extensiones de opengl
seguire mirando, en la proxima version oculto el raton y pondre unos titulos correctos en las ventanas ;)
he subido otra version del de opengl, solo esta el exe para que no sea tan pesado descargar siempre todos los graficos,
http://www.davidib.com/test/Win32_OGL.exe, con sobreescribirlo ya deberia funcionar
Citar- _Grey el opengl te ha rulado bien?
No, igual que antes, pensaba que con el mensaje de error te bastaria.
Respecto al nuevo .exe lo he probado, y casi que peor, se habre la ventana en gris y salen unos puntos raros arriba a la izquierda de color blanco, y nada mas.... :ph34r:, salgo con Alt+f4.
Citarati da unos .h especiales para usar las extensiones en opengl, parece ser que van a ser diferentes a las extensiones de opengl
Reconozco que no se las extensiones de OpenGL pero, no estaras usando extensiones especificas de Nvidia??
Respecto a lo del raton, solo queria prevenirte de que puedes clicar fuera de la ventana si te lo propones, por que no suele ser algo que se quiera y la aplicacion podria correr algun riesgo....:P nada mas.....
Saludos.
aqui estan las extensiones que uso:
#define GL_COMBINE_EXT 0x8570
#define GL_COMBINE_RGB_EXT 0x8571
#define GL_ARRAY_BUFFER_ARB 0x8892
#define GL_STATIC_DRAW_ARB 0x88E4
#define GL_TEXTURE0_ARB 0x84C0
#define GL_TEXTURE1_ARB 0x84C1
#define GL_TEXTURE2_ARB 0x84C2
#define GL_TEXTURE3_ARB 0x84C3
#define GL_TEXTURE4_ARB 0x84C4
#define GL_TEXTURE5_ARB 0x84C5
#define GL_TEXTURE6_ARB 0x84C6
#define GL_TEXTURE7_ARB 0x84C7
#define GL_COMBINE_ARB 0x8570
#define GL_RGB_SCALE_ARB 0x8573
#define GL_VERTEX_SHADER_ARB 0x8B31
#define GL_FRAGMENT_SHADER_ARB 0x8B30
he estado mirando una libreria llamada glew y sus constantes estan igual que las mias, con lo que no creo que este usando extensiones propias de nvidia
veamos...
lo de ati, todos los ejemplos funcionan ok.
la nueva version tuya, ahora no se me cuelga el pc, y puedo cerrar la ventana con alt-f4, pero no hace nada, solo se ve gris:
(http://usuarios.lycos.es/creaventura/dibdlltest_ogl.jpg)
poco a poco va mejorando (al menos a mí) xD
tendre que mirar todos los ejemplos de ati para encontrar el posible fallo, pero me huele que es por algo de las matrices de proyeccion, el rollo va ser por la ultima columna o la ultima fila que en nvidia y ati van a estar alreves
Por cierto, acaba de salir hoy mismo el
SDK de DirectX de Octubre
Citartendre que mirar todos los ejemplos de ati para encontrar el posible fallo, pero me huele que es por algo de las matrices de proyeccion, el rollo va ser por la ultima columna o la ultima fila que en nvidia y ati van a estar alreves
Creo que es en DirectX y OpenGL donde estan al reves la una respecto la otra por que uno usa vectores fila y la otra vectores columna, corregirme si me equivoco :P
----------------------------------------------
Realmente yo solo me planteo 2 posibles errores, las extensiones, como hace tiempo no uso OpenGL (y no toque las ext. ...) no se del cierto que sea eso, por tu insistencia diria que eso esta bien. Lo segundo que veo posible de error son los shaders, en OGL existia un lenguaje de shaders "standard", por que creo que envidia tiraba del suyo... nop??? :ph34r: :ph34r: :ph34r:
Saludos.
si son diferentes, pero solo para las matrices de proyeccion
el problema de las ati la verdad es que aun no se por que es, he estado mirado el codigo de los ejemplos de la web de ati y no veo la diferencia, tendre que seguir mirando por que el ultimo exe de opengl que subi usaba las matrices propias de opengl y fallaba con lo que ya no se que sera
editado: voy a pegar todas las extensiones que uso, pero no creo que sea debido a esto
#define GL_MAXTEXTURES 8
#define GL_COMBINE_EXT 0x8570
#define GL_COMBINE_RGB_EXT 0x8571
#define GL_ARRAY_BUFFER_ARB 0x8892
#define GL_STATIC_DRAW_ARB 0x88E4
#define GL_TEXTURE0_ARB 0x84C0
#define GL_TEXTURE1_ARB 0x84C1
#define GL_TEXTURE2_ARB 0x84C2
#define GL_TEXTURE3_ARB 0x84C3
#define GL_TEXTURE4_ARB 0x84C4
#define GL_TEXTURE5_ARB 0x84C5
#define GL_TEXTURE6_ARB 0x84C6
#define GL_TEXTURE7_ARB 0x84C7
#define GL_COMBINE_ARB 0x8570
#define GL_RGB_SCALE_ARB 0x8573
typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, int size, const GLvoid *data, GLenum usage);
typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target);
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target);
#define GL_VERTEX_SHADER_ARB 0x8B31
#define GL_FRAGMENT_SHADER_ARB 0x8B30
typedef unsigned int GLhandleARB;
typedef char GLcharARB;
typedef GLhandleARB (APIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
typedef void (APIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length);
typedef void (APIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
typedef GLhandleARB (APIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) ();
typedef void (APIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObject, GLhandleARB obj);
typedef void (APIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
typedef void (APIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
typedef void (APIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
typedef void (APIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
typedef GLint (APIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
typedef void (APIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
typedef void (APIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
typedef void (APIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
typedef void (APIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (APIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
typedef void (APIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
typedef void (APIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (APIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (APIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLuint count, GLboolean transpose, const GLfloat *value);
he subido una nueva version en el que cambio el orden de creacion del shader, los de ati lo hacen a la inversa un poco raro, pero como funciona lo de ellos en ati y lo mio no a cambiarlo :lol:
http://www.davidib.com/test/dibdlltest.rar
Otra vez como la primera, con el cuadradito blanco arriba-derecha y fondo gris, salgo con alt+f4, lastima.
Saludos.
Idem.....
pq no empiezas q quitar cosas y digamos que vas de poco a mas?? no me importa que haya un par de exe's y tenga q probarlos todos...asi te podremos decir...en cual la cosa empieza a no verse bien....
gracias por la ayuda, me parece que acabare haciendo lo que dices TheAzazel, hoy le ha fallado a mi hermano con una tarjeta nvidia en opengl, no veia el contador de fps, pero instalo los ultimos drivers y le funciona ya bien
he subido otra
version, me parece que va ser de esta, pero tampoco me hago muchas ilusiones, pa la piltra que es tardisimo
bueno bueno... :) la cosa sigue mejorando, ahora ya se ve algo, pero sin textura, ánimo que ya casi lo tienes!
pd. funciona bien lo de moverse
(http://usuarios.lycos.es/creaventura/dibdlltest_ogl2.jpg)
igual que jazcks.
Saludos.
gracias jacks ahora ya se lo que es!!, pueden ser tres cosas: los shaders no funcionan por algo sobrenatural, no les estoy pasando bien las variables o lo que vi en los ejemplos de ati que no usan ni un glDrawArray que es para pintar del tiron y en cambio si que usan el sistema viejo que era con glVertex pintando vertice por vertice, esto ultimo me da miedo ya que es mucho mas lento que lo otro, sobre todo en ordenadores con pocos mhz
Si, a mi ahora me sucede eso mismo... esto va progresando!!
me da en la nariz que esta noche la demo correra bien en openGl jeje
bueno esta vez la version que he subido crea un log para saber que @#~|@ esta fallando, el log se crea al lado del exe y se llama log.txt como siempre lo subi
aqui, he quitado la version de directx que parece que a todos os funcionaba correctamente y asi ahorro unos cuantos kbs en la descarga, yo creo que esta noche tambien lo vere rular ;), en esta version lo mas seguro que no veais nada en pantalla como pasaba antes y es que vuelvo a usar los shaders
Pentium IV - ATI 9800 PRO
La verdad es que la anterior me daba un cuadrado gris ahora es uno negro ...
A todo esto pregunto, en tu maquina funciona ? :P
Saludos.
CitarLog creado
glGenBuffersARB: 0x693262f0
glBindBufferARB: 0x693262b0
glBufferDataARB: 0x69326330
glDeleteBuffersARB: 0x693262d0
glActiveTextureARB: 0x69324410
glClientActiveTextureARB: 0x69324430
glCreateShaderObjectARB: 0x693274d0
glShaderSourceARB: 0x693274f0
glCompileShaderARB: 0x69327510
glCreateProgramObjectARB: 0x69327530
glAttachObjectARB: 0x69327550
glLinkProgramARB: 0x69327570
glUseProgramObjectARB: 0x69327590
glDetachObjectARB: 0x693274b0
glDeleteObjectARB: 0x69327470
glGetUniformLocationARB: 0x693278b0
glUniform1iARB: 0x69327650
glUniform2iARB: 0x69327670
glUniform3iARB: 0x69327690
glUniform4iARB: 0x693276b0
glUniform1fARB: 0x693275d0
glUniform2fARB: 0x693275f0
glUniform3fARB: 0x69327610
glUniform4fARB: 0x69327630
glUniformMatrix4fvARB: 0x69327810
[[Program shader (id=-2147483647)
{
Vertex shader (id=1073741825)[
uniform mat4 mWorldViewProjection;
uniform float tiempo;
void main()
{
//gl_Position = ftransform();
gl_Position = mWorldViewProjection * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord0 + vec4(tiempo, tiempo*2, 0, 0);
}
], Pixel shader (id=536870913)[
uniform sampler2D texture0, texture1;
void main()
{
gl_FragColor = (texture2D(texture0,gl_TexCoord[0]) + texture2D(texture1,gl_TexCoord[1]));
}]]]
[[Program shader (id=-2147483646)
{
Vertex shader (id=1073741826)[
uniform mat4 g_WorldViewProjection;
uniform float4 g_TextureSize;
uniform float4 g_VertexSize;
void main()
{
gl_Position = gl_Vertex;
gl_Position *= vec4(g_VertexSize[2], g_VertexSize[3], 0, 1);
gl_Position += vec4(g_VertexSize[0], g_VertexSize[1], 0, 0);
gl_Position *= g_WorldViewProjection;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[0] *= vec4(g_TextureSize[2], g_TextureSize[3], 1, 1);
gl_TexCoord[0] += vec4(g_TextureSize[0], g_TextureSize[1], 0, 0);
}
], Pixel shader (id=536870914)[
uniform sampler2D g_Texture;
void main()
{
gl_FragColor = texture2D( g_Texture, gl_TexCoord[0] );
}
]]]
Shader::GetVar(g_WorldViewProjection) = -1
Shader::GetVar(g_TextureSize) = -1
Shader::GetVar(g_VertexSize) = -1
Shader::GetVar(g_Texture) = -1
Shader::GetVar(tiempo) = -1
Shader::GetVar(texture0) = -1
Shader::GetVar(texture1) = -1
Shader::GetVar(mWorldViewProjection) = -1
si, funciona bien en dx y ogl, en todos los ordenadores que tiene nvidia aparentemente funciona correctamente
por lo que veo los identificadores ya estan erroneos con lo que ya falla en la creacion del propio shader, osea, en la llamada
m_idProgram = glCreateProgramObjectARB();
ya me da un error, ¿tienes los ultimos drivers de la ati instalados? es que si falla aqui no puedo hacer nada por que es una llamada a opengl sin mas, y en las especificaciones del glsl esta llamada es un estandar
por favor comprobar que tengais los ultimos drivers no vaya ser algo de esto
editado: se me olvidaba, voy a explicar un poco como va el log
el primer trozo donde se ven numeros hexadecimales son los punteros obtenidos de la dll de opengl, aparentemente estan bien ya que son parecidos a los mios
el segundo bloque se muestran los identificadores del programa, del vertex shader y del pixel shader (que es lo que veo que ya falla), tambien se muestra lo que mete al shader
en el ultimo bloque son los intentos de obtener las posiciones de las variables, siempre da -1 ya que la creacion del shader ya dio error
Por cierto que he salido con alt+f4, por si importa, ahora el log:
Amd63 3000+ 1GbRam 9800XT
CitarglUniform3iARB: 0x6931e270
glUniform4iARB: 0x6931e290
glUniform1fARB: 0x6931e1b0
glUniform2fARB: 0x6931e1d0
glUniform3fARB: 0x6931e1f0
glUniform4fARB: 0x6931e210
glUniformMatrix4fvARB: 0x6931e3f0
[[Program shader (id=-2147483647)
{
Vertex shader (id=1073741825)[
uniform mat4 mWorldViewProjection;
uniform float tiempo;
void main()
{
//gl_Position = ftransform();
gl_Position = mWorldViewProjection * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord0 + vec4(tiempo, tiempo*2, 0, 0);
}
], Pixel shader (id=536870913)[
uniform sampler2D texture0, texture1;
void main()
{
gl_FragColor = (texture2D(texture0,gl_TexCoord[0]) + texture2D(texture1,gl_TexCoord[1]));
}]]]
[[Program shader (id=-2147483646)
{
Vertex shader (id=1073741826)[
uniform mat4 g_WorldViewProjection;
uniform float4 g_TextureSize;
uniform float4 g_VertexSize;
void main()
{
gl_Position = gl_Vertex;
gl_Position *= vec4(g_VertexSize[2], g_VertexSize[3], 0, 1);
gl_Position += vec4(g_VertexSize[0], g_VertexSize[1], 0, 0);
gl_Position *= g_WorldViewProjection;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[0] *= vec4(g_TextureSize[2], g_TextureSize[3], 1, 1);
gl_TexCoord[0] += vec4(g_TextureSize[0], g_TextureSize[1], 0, 0);
}
], Pixel shader (id=536870914)[
uniform sampler2D g_Texture;
void main()
{
gl_FragColor = texture2D( g_Texture, gl_TexCoord[0] );
}
]]]
Shader::GetVar(g_WorldViewProjection) = -1
Shader::GetVar(g_TextureSize) = -1
Shader::GetVar(g_VertexSize) = -1
Shader::GetVar(g_Texture) = -1
Shader::GetVar(tiempo) = -1
Shader::GetVar(texture0) = -1
Shader::GetVar(texture1) = -1
Shader::GetVar(mWorldViewProjection) = -1
muchas gracias por vuestra ayuda, por lo que veo sucede lo mismo, vaya raye :(
un amigo lo ha probado con una ati 9800 pro y dice que le va bien dx y ogl :blink:
Tu amigo esta fumaooooooooooo, seran los drivers!??!?! no creo no, tengo los CATGALYST 5.6, que yo sepa no tienen nada de raro.... nop?!
Saludos.
PD: Pero lo de tu amigo es seguro, seguro!?!?!?
el me dijo que bajo hace poco los 5.9, podias descargarlos por si acaso, a mi amigo se lo mande cuando me dijisteis que fallaba y aun me ha contestado ahora jeje, el mas que programador es jugon de cs y demas juegos del estilo con lo que tiene miles de juegos instalados y dice que cada dos por tres mira si hay actualizaciones
cuando puede actualizo, de todas formas deberia de funcionar tal cual esta, pero actualizare e informare, a ver si hay suerte.
Saludos.
CATALYST 5.9, y sigue igual, con la ultima version que has colgado.
le preguntare mañana al counter strakero si le veo a ver que tiene montado en el ordenador, me tocara ir hasta su casa y todo para verlo :(
ahora no se ve nada, solo el fondo gris y un cuadro negro, puedo salir con alt-f4.
Aqui va mi log por si te sirve (ati x300)
Citar
glGenBuffersARB: 0x69424630
glBindBufferARB: 0x694245f0
glBufferDataARB: 0x69424670
glDeleteBuffersARB: 0x69424610
glActiveTextureARB: 0x69422730
glClientActiveTextureARB: 0x69422750
glCreateShaderObjectARB: 0x69425810
glShaderSourceARB: 0x69425830
glCompileShaderARB: 0x69425850
glCreateProgramObjectARB: 0x69425870
glAttachObjectARB: 0x69425890
glLinkProgramARB: 0x694258b0
glUseProgramObjectARB: 0x694258d0
glDetachObjectARB: 0x694257f0
glDeleteObjectARB: 0x694257b0
glGetUniformLocationARB: 0x69425bf0
glUniform1iARB: 0x69425990
glUniform2iARB: 0x694259b0
glUniform3iARB: 0x694259d0
glUniform4iARB: 0x694259f0
glUniform1fARB: 0x69425910
glUniform2fARB: 0x69425930
glUniform3fARB: 0x69425950
glUniform4fARB: 0x69425970
glUniformMatrix4fvARB: 0x69425b50
[[Program shader (id=-2147483647)
{
Vertex shader (id=1073741825)[
uniform mat4 mWorldViewProjection;
uniform float tiempo;
void main()
{
//gl_Position = ftransform();
gl_Position = mWorldViewProjection * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord0 + vec4(tiempo, tiempo*2, 0, 0);
}
], Pixel shader (id=536870913)[
uniform sampler2D texture0, texture1;
void main()
{
gl_FragColor = (texture2D(texture0,gl_TexCoord[0]) + texture2D(texture1,gl_TexCoord[1]));
}]]]
[[Program shader (id=-2147483646)
{
Vertex shader (id=1073741826)[
uniform mat4 g_WorldViewProjection;
uniform float4 g_TextureSize;
uniform float4 g_VertexSize;
void main()
{
gl_Position = gl_Vertex;
gl_Position *= vec4(g_VertexSize[2], g_VertexSize[3], 0, 1);
gl_Position += vec4(g_VertexSize[0], g_VertexSize[1], 0, 0);
gl_Position *= g_WorldViewProjection;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[0] *= vec4(g_TextureSize[2], g_TextureSize[3], 1, 1);
gl_TexCoord[0] += vec4(g_TextureSize[0], g_TextureSize[1], 0, 0);
}
], Pixel shader (id=536870914)[
uniform sampler2D g_Texture;
void main()
{
gl_FragColor = texture2D( g_Texture, gl_TexCoord[0] );
}
]]]
Shader::GetVar(g_WorldViewProjection) = -1
Shader::GetVar(g_TextureSize) = -1
Shader::GetVar(g_VertexSize) = -1
Shader::GetVar(g_Texture) = -1
Shader::GetVar(tiempo) = -1
Shader::GetVar(texture0) = -1
Shader::GetVar(texture1) = -1
Shader::GetVar(mWorldViewProjection) = -1
zupervaca, yo lo he probado con los catalyst 5.6, 5.8 y 5.9 en diversas ATI con diversos procesadores y en todos...lo mismo... yo creo que es algo que hace completamente diferente...es como esto que he visto hoy...
http://techreport.com/onearticle.x/8872que luego pasa lo que pasa... cada uno(ati y nvidia) lo hacen como les da la gana y no puede ser....el que se complica luego es el developer...
muchas gracias otra vez por los logs, me he dado cuenta que el unico id negativo es el del program shader, los demas son valores positivos y correlativos entre si, aunque eso si, algo raros ya que ogl normalmente los da desde 1 hasta X correlativamente y -1 si es error, para que os hagais una idea de lo que digo este es mi log en nivida y ogl
Log creado
glGenBuffersARB: 0x69639370
glBindBufferARB: 0x69639270
glBufferDataARB: 0x696392b0
glDeleteBuffersARB: 0x69639330
glActiveTextureARB: 0x6950a3c0
glClientActiveTextureARB: 0x696339f0
glCreateShaderObjectARB: 0x696399b0
glShaderSourceARB: 0x696399f0
glCompileShaderARB: 0x69639a30
glCreateProgramObjectARB: 0x69639a70
glAttachObjectARB: 0x69639ab0
glLinkProgramARB: 0x69639af0
glUseProgramObjectARB: 0x69639b30
glDetachObjectARB: 0x69639970
glDeleteObjectARB: 0x696398f0
glGetUniformLocationARB: 0x6963a170
glUniform1iARB: 0x69639cb0
glUniform2iARB: 0x69639cf0
glUniform3iARB: 0x69639d30
glUniform4iARB: 0x69639d70
glUniform1fARB: 0x69639bb0
glUniform2fARB: 0x69639bf0
glUniform3fARB: 0x69639c30
glUniform4fARB: 0x69639c70
glUniformMatrix4fvARB: 0x6963a030
[[Program shader (id=3)
{
Vertex shader (id=1)[
uniform mat4 mWorldViewProjection;
uniform float tiempo;
void main()
{
//gl_Position = ftransform();
gl_Position = mWorldViewProjection * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord0 + vec4(tiempo, tiempo*2, 0, 0);
}
], Pixel shader (id=2)[
uniform sampler2D texture0, texture1;
void main()
{
gl_FragColor = (texture2D(texture0,gl_TexCoord[0]) + texture2D(texture1,gl_TexCoord[1]));
}]]]
[[Program shader (id=6)
{
Vertex shader (id=4)[
uniform mat4 g_WorldViewProjection;
uniform float4 g_TextureSize;
uniform float4 g_VertexSize;
void main()
{
gl_Position = gl_Vertex;
gl_Position *= vec4(g_VertexSize[2], g_VertexSize[3], 0, 1);
gl_Position += vec4(g_VertexSize[0], g_VertexSize[1], 0, 0);
gl_Position *= g_WorldViewProjection;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[0] *= vec4(g_TextureSize[2], g_TextureSize[3], 1, 1);
gl_TexCoord[0] += vec4(g_TextureSize[0], g_TextureSize[1], 0, 0);
}
], Pixel shader (id=5)[
uniform sampler2D g_Texture;
void main()
{
gl_FragColor.rgb = texture2D( g_Texture, gl_TexCoord[0] );
gl_FragColor.a = 0.5f;
}
]]]
Shader::GetVar(g_WorldViewProjection) = 3
Shader::GetVar(g_TextureSize) = 1
Shader::GetVar(g_VertexSize) = 2
Shader::GetVar(g_Texture) = 0
Shader::GetVar(tiempo) = 3
Shader::GetVar(texture0) = 1
Shader::GetVar(texture1) = 2
Shader::GetVar(mWorldViewProjection) = 0
la diferencia vereis que estan en los "id" de los program shader, vertex shader y pixel shader, despues ya como consecuencia de esto los Shader::GetVar (obtener variables del shader) fallan con lo este problema queda descartado, me parece que va a ser algo que hay que inicializar en las ati antes de usar los shaders, otra cosa no se me ocurre por que como dije antes para obtener el identficador del program shader uso esto: m_idProgram = pAPI->glCreateProgramObjectARB(); y esto mas facil no puede ser ;), despues en el log tambien puse los punteros a las funciones de la dll por si acaso alguno daba error, pero veo que esta perfecto, cuando lo solucione invitare a caviar a todo el foro jeje (es coña, primero hay que pagar la factura del piso :P)
he bajado un programa que comprueba si los shaders compilan correctamente en glsl, me daban unos warnings con lo que podia ser algo de esto, en gamedev vi un hilo de un tio que tiene el mismo problema que yo <_<
el archivo pruebas.shd quedaria asi:
// Shader de opengl
[Vertex Shader]
uniform mat4 mWorldViewProjection;
uniform float tiempo;
void main()
{
//gl_Position = ftransform();
gl_Position = mWorldViewProjection * gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord0 + vec4(tiempo, tiempo*2, 0, 0);
}
[Pixel Shader]
uniform sampler2D texture0, texture1;
void main()
{
gl_FragColor = (texture2D(texture0,gl_TexCoord[0].st) + texture2D(texture1,gl_TexCoord[1].st));
}
y el archivo sprite.shd quedaria asi:
// Sprite.shd
// Permite renderizar sprites compatibles con la clase dib::Direct::Graphics::Utils::Sprite
[Vertex Shader]
uniform mat4 g_WorldViewProjection;
uniform float4 g_TextureSize;
uniform float4 g_VertexSize;
void main()
{
gl_Position = gl_Vertex;
gl_Position *= vec4(g_VertexSize[2], g_VertexSize[3], 0, 1);
gl_Position += vec4(g_VertexSize[0], g_VertexSize[1], 0, 0);
gl_Position *= g_WorldViewProjection;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[0] *= vec4(g_TextureSize[2], g_TextureSize[3], 1, 1);
gl_TexCoord[0] += vec4(g_TextureSize[0], g_TextureSize[1], 0, 0);
}
[Pixel Shader]
uniform sampler2D g_Texture;
void main()
{
gl_FragColor.rgb = (float3)texture2D( g_Texture, gl_TexCoord[0].st);
gl_FragColor.a = 0.5f;
}
lo que he cambiado ha sido un casting y ponerle a las coordenadas de textura al final un .st, os lo pongo asi para que no os bajeis el .rar entero otra vez, me he dado cuenta que puede que ati de otros valores para los shaders, pero sea correcto ya que son numeros negativos, pero a su vez correlativos
editado: por si a alguien le interesa el programa esta aqui
http://developer.3dlabs.com/downloads/index.htm se llama
ShaderGen
P4 2.4GHz 512Mb WinXP GeForce6600 256Mb AGP8x
~33fps
rula sin aparentes problemas :rolleyes: