Os subo a
Ese enlaceel ejemplo de plataformas. Los gráficos son de Loover( (ole) Gracias!!), pero YO no les hago justicia, porque me envió un montón, pero yo sólo he utilizado unos pocos. Es que esto de hacer mapas me da una pereza enorme.
He creado un pequeño formato para poder importar mapas, pero es muy cutre, así que no seais muy crueles conmigo.
Lo que no puedo resolver es lo del smooth. Así como en DDraw trabajabas al pixel, en D3D me resulta imposible, y cuando capturo la pantalla y la comparo con los gráficos reales, veo que por dentro me hace un suavizado que yo NO querría, pero que supongo se hace inevitable. He pobrado eliminando los filtros, pero nada.
Bueno, ahí lo teneis, junto a su .cpp que siempre pongo para que le echeis un vistazo si os apetece.
Recordad que necesitais pixel shader 1.1. :rolleyes:
Me funciona, pero en las plataformas, la columna de tiles de más a la derecha tiene una raya vertical en la unión con los tiles de la columna anterior :blink:
Lo que me ha dejado hecho polvo es ver el código fuente, todo lo lleva el motor internamente.
CitarLo que no puedo resolver es lo del smooth. Así como en DDraw trabajabas al pixel, en D3D me resulta imposible, y cuando capturo la pantalla y la comparo con los gráficos reales, veo que por dentro me hace un suavizado que yo NO querría, pero que supongo se hace inevitable. He pobrado eliminando los filtros, pero nada.
Por eso cuando llevaba la mitad de mi (mini) engine 2D en DX8 me tuve q pasar al DX7 :( a mi, a parte del suavizado ese q ya me molestaba bastante, encima me hacia siempre un poco de alpha, pero sólo en mi PC, en otro no lo hacia. La cuestión, q el DX8 me hacía cosas raras. Si alguien sabe la solución, pues se la agradeceré (aunqe no pienso volverme a cambiar de versión de DX, jostias! :D)
Hey voy a probarlo!
Lo del suavizado ya te lo dije varias veces tio! Jajaja. Te puse las soluciones en otros posts.
Espera, busco links... bueno da igual, te contesto.
A ver, si el area del backbuffer no es de tamaño estandard, los gráficos sufriran un ligero escalado y por consiguiente se verán "suavizados". Esto se debe a que direct3d intenta que quepan en el area de la ventana y para que quepan, reescala una fondo de 800x600 (por ejemplo) a 740x560 (en tu caso).
Aquí puse como elegir el "area de trabajo" o para el caso "dimensiones del back buffer" al crear la ventana de windows:
http://www.stratos-ad.com/forums/index.php...=ST&f=14&t=2922Y aqui explico porque se ven suavizados:
http://www.stratos-ad.com/forums/index.php...14&t=2910&st=15En mi librería de direct3d para gráficos 2d se ven nítidos si sigo ese paso (aparte de restar -0.5f y -0.5f como he repetido ya en mil posts, xD).
PD: Utiliza mas tiles!!! Que te dí 60!! XDDD.
Me funciona, pero a 0.63 fps en mi GeForce2. Veo que has debido usar DirectX9 a muerte... se me ha puesto el renderer por software.
Ah, y el log del juego miente. Mi geForce2 no soporta Pixel Shader 2 como dice el log (ni 1.1 ni 1), te lo aseguro.
Otras cosas ke parece ke esten mal son:
Máx Anchura x Altura: 4096 x 4096 <--- falso, creo ke son 2048x2048
Nº máximo de texturas simultáneas:8 <--- solo soporto 2 tex a la vez
Soporta Querys de Oclusión <--- ni de coña
Soporta Texturas volumétricas <--- buah, más quisiera
Pues eso, debes tener algo mal por ahí, en tu código al reconocer las capacidades de mi tarjeta.
Haddd, no es por fastidiar, pero no me creo ke una
GForce3 Ti200 64mb no cumpla los requisitos minimos de tu motor! (uoh)
Revisa el codigo de comprobacion de capacidades por ke algo no anda bien por ahi, ademas, aun sigue sin reconocerme las
occlusion querys cuando ya actualize los drivers y el ejemplo de
occlusion querys ke me paso
BeRSeRKeR me funciono perfectamente.
Se ke puede resultar decepcionante cuando ocurren tantas incompatibilidades en un proyecto en el ke se lleva trabajando muchisimo tiempo, y te lo digo yo ke me tire cerca de 2 años pateando el codigo de mi libreria grafica para ke funcionase correctamente en cualquier ordenador (hasta en el mio xDDD), pase un calvario tremendo (e incluso aun lo estoy sufriendo), pero como dice el dicho:
CitarEl ke la sigue la consigue.
Animo
Haddd y pateales el culo a esos bugs, ke ya llevo mucho tiempo esperando ver las maravillas ke puede hacer tu peazo motor ;)
Salu2...
Cita de: "[EX3"] Haddd, no es por fastidiar, pero no me creo ke una GForce3 Ti200 64mb no cumpla los requisitos minimos de tu motor! (uoh)
creo que el engine necesita shaders 2.0, así que no, no los cumple xD
A Loover:
No tiene nada que ver, porque si trabajo en FullScreen me hace exactamente lo mismo.
Pero podrías mandar una pequeña demo para ver cómo te quedan a ti. Yo hago lo del 0.5/w en las coordenadas de textura. Pero ahora que lo pienso, quizás el problema esté en que los tiles miden 50x50 y la textura en 64x64!! Sí, debe ser eso :lol: ( espero.. <_< ) Lo probaré en casa esta tarde.
A Darkkar:
Si el motor dice que sí, pues es que sí. No hay mucho secreto para averiguar estos valores. Pero quizás lo que estás viendo es el modo REF, que como te dije, no debes tener instaladas las DX0.9b SDK y por ello te hace cosas raras. El motor no muestras las propiedades de tu tarjeta, muestra las propiedades del DEVICE que se ha seleccionado. Si el HAL no lo soporta, pasa a REF, y por eso ver las propiedades del device REF.
De todas formas, requiero shaders 1.1, y la GForce3 TI 200 debe tenerlos, así que debería utilizar HAL.
Bueno, lo de la textura no tiene nada que ver. Si esta todo bien montado debería funcionar. Yo también los tengo en texturas e 64x64, aunque bueno tengo un algoritmo que para cortarlo en trozos del tamaño que quiera...
Y la prueba... pues se me ven exactamente como si los uniera en photoshop así que poco vas a ver. Pero bueno voy a preparar algo.
PD: Es una lástima que el error no sea ese, pero desde luego que en modo ventana contribuye a que lo sea, así que total, para lo que cuesta crear la ventana bien... ¡hazlo! Será alguna historia de los pixel shaders.
CitarPero podrías mandar una pequeña demo para ver cómo te quedan a ti. Yo hago lo del 0.5/w en las coordenadas de textura. Pero ahora que lo pienso, quizás el problema esté en que los tiles miden 50x50 y la textura en 64x64!! Sí, debe ser eso ( espero.. ) Lo probaré en casa esta tarde.
Espera, que he releído eso que antes no me había fijado...
Lo del 0,5 no me refiero a eso. Sino al crear la vista. Y por otra parte ahí no sería 0,5f, tienes que ajustar el sprite según las dimesiones que tenga. Para ajustar bien las coordenadas de mapeado: Ancho sprite / Ancho Textura. ¿Eso lo haces, no?
Aunque bueno, según tengo entendido, direct3d si carga una imagen que no es petencia de 2 la "alarga" hasta lo que ocupa la textura... pero como yo cargo las imágenes con openil....
Bueno, aquí está mi cutre prueba: decirme fps y tal:
http://galeon.com/loover/pruebatiles.rarEl texto que ves, es parte del fondo, pa que se vea que no se suaviza lo he puesto super pixelado. Con el sistema este que tengo, corto las imágenes en bloques (si caben en uno mejor), pero por ejemplo si usas una imagen de más de 256x256 y el usuario tiene una banshee el sistema la partiría de forma que tb funcione en su ordenador. Aparte así resuelvo de un plumazo los scrolls y las fuentes. Una vez hecho, poder elegir una imagen cualquiera y cortarla en de 1 a NxN bloques es algo muy util para motorcillos 2d.
El area de trabajo de la prueba es de 640x480, si al crear la ventana no solicito ese area, me da una menor, todo sufre un escalado y como consecuencia todo se difumina feamente.
Si al crear la vista no resto -0,5f en el ejex y -0,5f en el ejey se ven como "escalones" en algunas líneas horizontales.
Siguiendo esos dos pasos se me así, nítido.
Pero lo tuyo ya debe ser alguna historia rara de convertirlo al coordenadas -1,1 para pasarselo al PS o algo asín.
1095 fps
¿1095 FPS? Pero tu que tienes, ¿un Cray para probarlo :lol: ? ¿Cual es tu equipo?
CoLSoN2 dijo:Citarcreo que el engine necesita shaders 2.0, así que no, no los cumple xD
Hubo por ahi un test ke solo requeria shaders 1.1 si no recuerdo mal, y ese tampoco me funciono, vamos, ke no me ha tirado ni uno, solo me funciono akel test ke reescribio
Loover, ke ese si me tiro :( y otra cosa, si
DraKKaR tiene una GForce2 y le tira el test por ke una GForce3 no?
CitarSi el motor dice que sí, pues es que sí. No hay mucho secreto para averiguar estos valores. Pero quizás lo que estás viendo es el modo REF, que como te dije, no debes tener instaladas las DX0.9b SDK y por ello te hace cosas raras. El motor no muestras las propiedades de tu tarjeta, muestra las propiedades del DEVICE que se ha seleccionado. Si el HAL no lo soporta, pasa a REF, y por eso ver las propiedades del device REF.
Esto algo ke no entiendo bien, estas haciendo un motor ke solo tire con el SDK, ke por cierto no se por ke tiene diferencia alguna con las Runtimes ke se distribuyen para el usuario, pero de ser asi, por ke? no seria mas logico ke funcionase con cualquier version de dx9, ya sea sdk o no? por ke tonces eso si ke es una limitacion gorda ya ke obligarias al usuario ke kisiera jugar un juego programado bajo tu motor a instalarse un monton de megas innecesarios.
CitarDe todas formas, requiero shaders 1.1, y la GForce3 TI 200 debe tenerlos, así que debería utilizar HAL.
Te aseguro ke las tiene, pero no se por ke tu motor no las usa aunque por lo menos si las detecta :) .
Salu2...
Cita de: "Haddd"¿1095 FPS? Pero tu que tienes, ¿un Cray para probarlo :lol: ? ¿Cual es tu equipo?
Debe de referirse a la prueba de loover (a mi me va por el estilo).
No se si son los tiles o es el montaje pero se nota demasiado el corte entre ellos.
¿Puedes poner el log EX3?
Lo de DX9.0b debe ser imprescindible, porque yo compilo con ellas. Supongo que han cambiado algunas estructuras y quizás al no ser iguales internamente provoca estas cosas raras. Pero, por ahora, nadie me ha reportado ningún otro error. Le echaremos un vistazo al log, y veremos. Quizás hay algo que se me escapa.... :blink:
Bueno he escalado a 64x64 y va mejor. Es un error mio, porque el programa debería corregir esto. Pero bueno... ;)
Lo he comprobado en modo ventana y en fullscreen y lo comparo con el original escalado y son 99% iguales.
1095 fps. No está mal, ¿eh? (uoh)
Jpastor:
CitarNo se si son los tiles o es el montaje pero se nota demasiado el corte entre ellos.
Culpa de los tiles, en el de roca no se nota, pero en los de tierra y cesped están un poco mal hechos. Pero vamos, que eso es culpa del grafista (osea yo). De todos modos, son para pruebas y os los puse de regalito, no seais tiquismiquis que no son para el el sonic 3d, :P
[Ext3]
Citarsolo me funciono akel test ke reescribio Loover
Pero mi librería no usa pixel shaders, así que no puedes comparar. El error con los tests de Hadd te lo dará porque tu tarjeta no soportará bien los PS, digo yo.
Marchando log:
CitarHaddd v1.0 (Feb 10 2004 20:05:23)
INICIO CXVideo::CXVideo
FIN CXVideo::CXVideo
Nº de adaptadores:1
No soporta FullScreen
No soporta FullScreen
TARJETAS Y SUS DEVICES
Tarjeta:0 NVIDIA GeForce3 Ti 200
Device:0 HAL Behavior: HW MIX SOFT NºFormatos:2
Modo:0 Modo Ventana posible 00000016 X8R8G8B8 DEPTH STENCIL 00000050 D16 0000004d D24X8 0000004b D24S8
Modo:1 Modo Ventana NO posible 00000017 R5G6B5 DEPTH STENCIL 00000050 D16 0000004d D24X8 0000004b D24S8
Device:1 REF Behavior: NO SOPORTA T&L NºFormatos:2
ESTE DEVICE NO CUMPLE LAS EXIGENCIAS MINIMAS DEL MOTOR
Modo:0 Modo Ventana NO posible 00000016 X8R8G8B8No soporta FullScreen
Modo:1 Modo Ventana NO posible 00000017 R5G6B5No soporta FullScreen
INICIO CXVideo_Inicializacion::CrearVentana
INICIO CXVideo_Inicializacion::CrearVentana
INICIO SeleccionarDepthStencil
Depth Bits=16 Stencil Bits=0 D16
FIN SeleccionarDepthStencil
CXVideo_Inicializacion::InicializarDevice
Behavior seleccionado:D3DCREATE_HARDWARE_VERTEXPROCESSING
CXVideo_Inicializacion::InicializarDevice
INICIO Características del Device
Versión de SDX:31. De D3D:0900
Versión del Adaptador:2942
Memoria de vídeo disponible:111 MB (113664 KB)
HAL (hw vp): NVIDIA GeForce3 Ti 200 (740x560x8) (D16S0)
Escritorio: Ancho=1024 Alto=768
FullScreenGamma OK
CanCalibrateGamma NO DISPONIBLE
Alpha en modo Flip/Discard OK
Nº Máximo de Streams para Vertex Buffers=16. Tamaño máximo en bytes(Stride)=256
Nº Máximo de indexbuffer=x000fffff.
Nº de RenderTarget simultáneos:1
---------TEXTURAS---------
Utilizando formato por defecto para las texturas A8R8G8B8
Las texturas NO necesitan ser potencias de 2
Máx Anchura x Altura: 4096 x 4096
Nº máximo de texturas simultáneas:4
Soporta compresión DXT1
Soporta compresión DXT2
Soporta compresión DXT3
Soporta compresión DXT4
Soporta compresión DXT5
Soporta Texturas volumétricas
---------SHADERS---------
Nº de constantes en el vertex shader:96
NO SOPORTA PIXEL SHADER 2.0
NO SOPORTA PIXEL SHADER 1.4
SI SOPORTA PIXEL SHADER 1.1. 8 constantes, 4 coordenadas de textura, 2 temporales
NO Soporta Querys de Oclusión
FIN Características del Device
Haddd dijo:CitarLo de DX9.0b debe ser imprescindible, porque yo compilo con ellas.
No se si me he explicado bien, tu dices ke si no se tiene el SDK instalado no funciona, eske yo no tengo instalado el sdk, solo tengo instalado las runtime de distribucion, ke es lo ke la mayoria de la gente tiene instalado y no el sdk ke son las runtimes + utilidades + fuente de codigo + ejemplos + graficos + sonidos + de todo un poco, en pocas palabras, mas de 125 mb en comparacion con los 15 aprox. (o menos incluso) ke ocuparan las runtimes solo.
Loover dijo:CitarPero mi librería no usa pixel shaders, así que no puedes comparar. El error con los tests de Hadd te lo dará porque tu tarjeta no soportará bien los PS, digo yo.
Eso ya no lo sabia, yo recuerdo ke pasastes el test de Haddd a tu motor con la misma mecanica.
Salu2...
No me cuadra que tengas el REF si no tienes instaladas las SDK. yo creía que sólo se instalaba al instalar el SDK.
Como puede ser que no soportes el motor en REF.
Sí soportas pixel shaders y el motor debería funcionar, porque además te está cogiendo HAL.
No puedo ayudarte Ex3, algo raro pasa y por ahora tu eres la única persona que me reporta un error. Mirando el log no consigo descifrar nada más. Pensaré algo más.... (nooo)
Haddd dijo:CitarNo puedo ayudarte Ex3, algo raro pasa y por ahora tu eres la única persona que me reporta un error
Siento ser la oveja negra, a ver si hay suerte y solucionas esos pekeños bugs ;)
Salu2...