Después de pasar la beta de un juego que estoy haciendo y todos los que tenían una ATI me han reportado un error muy extraño.
En
esta imagen podeis ver lo que ocurre. Esa pequeña imagen de arriba a la izquierda deberia cubrir todo el fondo, pero veis el efecto extraño que se produce. La cosa es que entrando en High Scores, por un pequeño gazapo mío, se dibuja ese fondo dos veces, y ENTONCES sí se ve bien (¿?). El recurso (la imagen) es compartida entre todos los que lo usan, así que no es que una vez se cargue mal o algo. Además, al iniciar el juego aparece una pantalla con el logo de la 'compañía', que se renderiza usando exactamente el mismo método, sólo una vez, y se ve bien. Con el fondo cuando estás jugando, que es otro, pasa lo mismo (lo del fondo del menú). Uso
un motor que usa OpenGL, y que ha sido probado en muchos juegos. En winterwolves.com o phelios.com teneis muchos de estos juegos, así que no creo que sea cosa del motor.
¿Se os ocurre algo?
Pues parece el típico error de no dar correctamente las coordenadas de mapeado de la textura. Se ve que hay un quad que ocupa toda la pantalla, pero parece que las coordenadas uv no estén ajustadas a dicho quad. Pero vamos, que si usas PTK será tan simple como dibujar con una función, nada de coordenadas de mapeado ni historias.
¿Qué dimensiones tiene el fondo? ¿Has probado con otro tamaño?
el fondo es de 800x600. No he probado con otro tamaño. Y sí, dibujar un quad texturizado es tan simple como KGraphic->blitRect(..), en la URL de PTK teneis la doc, que son 4 funciones.
que ati es?
en esa imagen tienes las texturas en modo clamp
un saludo
en todas las ATI que he probado: 9600XT, 9200 y X800
Prueba a resetear la matriz de textura a la identidad antes de dibujar el quad. Lo mismo la librería la modifica internamente en algún sitio y no la restaura.
Cómo hago eso? glLoadIdentity() antes de usar la función de dibujado? Aún así, supongo que él en esa función la modificará, ya que le paso el area de la textura a dibujar y la posición donde quiero que la dibuje.. Yo es que de OGL/DX a pelo voy muy pez :(
No supongas, es la madre de todas las cagadas, haz lo que te dice ithaqua.
Lo que supongo no es que lo hace bien, sino que aunque cambie la matriz de textura (sigo sin saber cómo) él en la función que yo llamo para que dibuja, la modificará otra vez.
porque no debuggeas la libreria y descubres el error por ti mismo? no tiene el codigo disponible?
nop
Como joden los fallos estos que se deben a motivos externos a tu código, ya sea por bug de una libreria o lo que sea.
Lo único que puedo aconsejarte es que pruebes y pruebes hasta que funcione. Mira a ver que pasos has seguido para que la libreria gráfica haya llegado a ese bug, lo malo es que sino tienes una ati tu mismo para ir haciendo las pruebas será más complicado. Pasate la tarde en casa de algún colega probando y probando hasta que veas que serie de pasos llevan irremisiblemente a ese bug de PTK (si es que es un bug).
Yo tengo una Radeon 7200, te puedo echar una cable.
No se me ocurre otra cosa.
PD:
Looverlib nunca lo haría, xD