Jump to content

DarIOI

Aventurero
  • Contenido

    1.084
  • Ingreso

  • Última visita

Mensajes publicados por DarIOI

  1. Hola, que tal, tengan todos muy buenos días. Mucho tiempo que no posteaba; simplemente la facultad viene bastante pesadita y tengo que poner toda la concentración ahí. :@

    Quería pedirles un favor, si todavía alguien lo posee en sus tesoros personales, el famoso treditor3d v.5..0 o en adelante, o lo último(pero que sea treditor)

    Lo necesito para abrir viejos proyectos.

    Sé que es algo desubicado, pues es de antaño lo que pido. Pero por simple necesidad personal.

     

    Por favor, si alguien me puede facilitar ésta ayuda, se lo agradeceré eternamente.

    Saludos y Happy Building!

  2. Lo acabo de probar y me funciona, lo que noto con este nuevo photo6 es que el spin de los objetos, bien moveables o estáticos es casi incontrolable a la hora de intentar girarlos con el botón derecho, con la tecla Ctrl y May. se controla bien.

     

    No afecta si altero el Spin factor de 1.2 a un factor menor

     

    Yo prefería la visualización de las Lara animation de la versión photo4 donde solo se veía las armas y no el mesh del dummy de Lara.

     

    Bueno ya puestos, explícame que se supone que es el KaliyaMerger? :D

     

    Saludos y keep it up 8)

     

    el tema del spin factor es algo complejo.Lo hice con un algoritmo que yo mismo inventé y los valores para algunas máquinas son distintos para que se vea bien. En mi compu es de 1.2. Creo que hay que ir probando...

     

    Kaliya Merger es un proyecto super secreto, jeje, al principio( como todo), se ve "fácil" de proyectar, pero en el andar las cosas se van poniendo bastante complicadas. Asi que el objetivo prefiero reservarlo por el momento.

     

    bueno che ya falta poco para las vacaciones... :)

     

    wiiiiiiiiiioi :P

  3. gracias natalie

     

    1) ya implementé el tema del punto flotante.

     

    2) ya solucioné el tema de los poligonos que se pelean por verse uno mas cerca que el otro. Tal cual me dices, reduje la escala diviendo las coordenadas de los vertices (en mi caso por 10) y ahora se renderizan perfectamente! Gracias Natalie

     

    el tema del calculo exacto del UV no lo pude solucionar con ese algoritmo , pero creo saber por donde viene la mano.

    Dejo el prototipo aquí.

    gl.

     

    =======EDIT DE HOY====

     

    Ya aprendí a construir un mesh tree con un algoritmo muy bueno.

    Ya se pueden renderizar los moveables.

     

    La primera parte del proyecto ya está hecha. Aprender a implementar bien las rutinas de directx 8, para mostrar una buena gráfica.

    Estuve atascado como casi 1 mes sin dar la solución a un pequeño problemita, pero ya se arregló.

    Lo que viene es estrictamente programación Tomb Raider; es algo mas "desconocido" para mí, y como se acerca semana de exámenes voy a tener que hacer una pausa....

     

    Dejo el prototipo ^_^

    proto5.rar

  4. Yo pregunto

     

    ¿no se dan cuenta que casi todos estamos cansados de ver tanta 2º guerra mundial? hombre! que con MOH, COD, etc, etc, ya me conozco vida y obra de los soldados hechos poligonos que hay que controlar :blush:

     

    Posiblemente.

    Estaría bueno hacer un juego ambientado en la Primera Guerra Mundial. Se podría sacar mucho redito del hecho. :roll:

  5. Ya implementé el algoritmo que me permite recueperar el device en caso de que se pierda. Todos los recursos los defino como POOL_MANAGED y tan solo necesito llamar a la funcion Reset con el nuevo formato de video y funciona!!! :P

     

    Lo que me tiene realmente mal es el tema de las texturas...

     

    Siguen persistiendo esos efectos feos de que algunos poligonos parpadean y otros no se ven bien.

    Estoy usando el z stencil buffer activado con el valor de D3DFMT_16.... , pero sigue igual. mhhmhhhhhhhmhmh

     

    otra cosa: en el IDE ¿ como hago en el compilador para configurar entre la coma y el punto en los flotantes?

     

    saludos!

  6. jeje. Gracias camaradas, favor que me hacen.

    Es algo medio dificil encarar un proyecto como éste. Estoy intentando adaptarme a una version de directx, con un determinado lenguaje y con un paradigma de programación. Ya mucho de esto lo he logrado hace algo de tiempo, pero siempre hay que desarmar, redefinir código o reescribir de vuelta..... porque si no es una cosa es la otra, etc. Hay que armarse de paciencia. Igualmente, es muy divertido programar, me gusta tanto como diseñar niveles. :(

     

    En este nuevo prototipo he incluido: rutinas para el rotado, zoom, y traslado del mesh con el mouse.

    En el programa hay una casilla de "spin factor" donde se aumenta/ralentiza la velocidad de giro de las acciones.

     

    Estas rutinas han sido un arduo trabajito ya que no dispongo ni tampoco he encontrado ningún algoritmo para tener una referencia....

     

    problemas con las texturas:

     

    1- tal como dice Marcos, las texturas que desaparecen; el zbuffer está activado; descartado... no idea de qué puede ser...

     

    2- cuando activo los mag y min filter elijo el D3DTEXF_LINEAR, que corrige el problema de las texturas pixeladas cerca de la pantalla, pero al mismo tiempo se nota un efecto muy feo en las conjunciones de los poligonos. no tengo idea de por qué.

    si no lo activo, se ve todo el render pixelado pero no me sale el efecto feo.

    los problemas 1 y 2, supongo que están relacionados de algun modo... help!

     

    :(

    Prototipo2.rar

  7. Ok, ahora este programa ya esta muchisimo mejor, ya tiene lo mas importante funcionando; ahora se ven los mesh rotando en 0,0,0; no recibí ningun mensaje de error. y la velocidad de rotacion la encuentro perfecta en mi computadora; si tenes eso amarrado con un timer no creo que exista problema, pero si lo que haces es que incrementas un grado de rotacion en el loop del programa entonces en las mejores computadoras rotará mas rapido que un trompo.

     

    Unas cositas que todavia se tienen que revisar.

     

    - Cuando el mesh esta rotando se puede apreciar algo raro en la renderizada; es como si tambien se redibujara por dentro del mesh y aveces pareciera que ciertas caras son como transparentes. No estoy clara exactamente a que se deve en tu caso pero los motivos que comunmente generan este tipo de problema son:

     

    - El Z buffer no esta activado, (z depth) se deve de activar para que los polygonos que estan parcial o totalmente cubiertos por otros polygonos cuando se ven desde la vista de la camara no se dibujen o se dibujen solo parcialmente.

    - Tienes que activar el CULL, es decir los polygonos no se deven de dibujar cuando estan siendo vistos por "detras"; Ojo, que los poligonos en tomb raider se definen en el sentido de las manecillas del reloj.

     

    - Y ya que andas en los stages tambien activa el perspective correct (D3DTSS_MAGFILTER y D3DTSS_MINFILTER), ya que cuando los meshs estan bien cerca de la camara se ve muy pixeleado.

     

    - Sobre el device lost, recrear todo el device es lo que hago yo, pero sin con el RESET te funciona entonces te ahorrastes escribir lineas de codigo; lo importante es que agregues soporte para eso; no penses que eso pasa raramente, el device no se pierde solo al cambiar la resolucion o la profundidad de color (nadie se pone a hacer a cada rato) pero si hay otras circustancias mucho mas comunes que te pueden aruinar el device, por ejemplo que tan comun crees que sera que alguien ejecute tu programa y despues lo minimize un momento y ejecute otro programa que usa directx como fexmerger, dxtre3d, wadmerger, el editor oficial, o quiera correr el tomb raider para probar lo que acaba de modificar con tu herramienta... etc, todos esos programas crearon un device, pusieron sus texturas en la memoria de video, hicieron vertex buffers, etc, todos esos programas estan compartiendo la tarjeta de video y pudieron arruinar lo que hizo en su momento el otro; y eso no importa siempre y cuando cada programa una vez que el usuario lo vuelve otra vez a maximizar puede volver a poner el estado a como lo tenia antes de minimizarlo.

     

    buena suerte con tu projecto.

     

    bien!

     

    *con respecto a la rotación: Ya no uso mas el objeto Timer, me decidí por implementar el evento de sistema OnIdle.

     

    *las texturas: ya activé el Zbuffer con obj_device->SetRenderState(D3DRS_ZENABLE, TRUE );

    ya he seteado algunas configuraciones para las texturas:

     

    obj_device->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);

    obj_device->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);

    obj_device->SetTextureStageState(0, D3DTSS_ALPHAOP,D3DTOP_DISABLE);

    obj_device->SetTextureStageState(0,D3DTSS_MAGFILTER, D3DTEXF_POINT);

    obj_device->SetTextureStageState(0,D3DTSS_MINFILTER, D3DTEXF_POINT);

     

    en el efecto culling, solo he puesto que se dibuje el poligono cuando éste mira al frente de la cámara, tal como vos decís.

     

    Pero siguen habiendo algunos poligonos que se renderizan mal. Si fuera problema del zbuffer, debería notarse un desarreglo mayor en todo el mesh, pero son solo algunas partes en donde no se ve muy bien....

     

    *Con respecto al "device lost". Si nuevamente tengo que crear el device, entonces debo practicamente crear los vertexbuffer y los objetos texturas¿?. Es como si tuviera que cargar un nuevo nivel?? :eins:

     

    saludos!

  8. Bueno he seguido haciendo algunas cosas, y creo haber avanzado :abrazos:

     

    -El problema de los archivos que se piden está solucionado. He creado un ejecutable 100% standalone.

     

    -La pantalla negra sin visualizar los meshes está solucionado. (algo se tiene que ver)

     

    -hubieron algunos que reportaron carteles de error a la hora de seleccionar un mesh. Pareciera ser que en esos equipos, o en esas configuraciones de pantalla, el programa no puede visualizar las texturas de 32 bits, es por ello que el programa ahora puede elegir

    renderizas los meshes con texturas de 32 o de 16 bits, según sea el caso. (un mensaje de dialogo lo dice).

     

    recuerden de poner los archivos zlib1.dll y el d3dx81ab.dll en la misma carpeta.

     

    suerte!

    PROTOTIPO.rar

  9. @max: entonces, que has hecho para que te dejara de tirar esos carteles de error?

     

    Mi amigo dario, disculpame, devi especificar mejor; el D3DXMatrixPerspectiveFovLH es apenas de las ultimas instrucciones que van incluidas en todo el proceso de la re-creacion de lo que yo llamo viewport; pero en realidad por "viewport" me refiero todo el device; es decir tienes que liberar el device anterior (D3DDEV8 = nil) y volver a crearlo desde el principio; todo todo, desde pedir las caracteristicas de la tarjeta, crear el D3DDEV8 y volver a definir la perspectiva del viewport. Tambien deves de verificar como creastes las texturas; si las creastes con la caracteristica de que unicamente estan en la memoria de video entonces deves de cargarlas desde el disco otra vez.

     

    suerte

     

    Entonces debo llamar nuevamente a que se cree el device, por lo menos eso es lo que haces vos. Ahora bien, estuve leyendo sobre directx y me dice que existe un Metodo Reset( arg ) que se usa en caso de un estado "device lost" , donde "arg" es la nueva estructura que guarda la info referida a la tarjeta de video, modo,etc.

    Cual sería la diferencia entre crear el device nuevamente y utiilizar el metodo Reset. En ambos casos, hay que llamar a las funciones "GetAdapterMode",etc,etc

     

    pd: nos vemos algunos de estos dias. :)

  10. En tu rutina de redibujado despues del D3DDEV8.EndScene deves poner algo como:

     

    IF D3DDEV8.Present( NIL, NIL, 0, NIL)<>0 THEN recreateViewports;

     

    haz esta prueba con el project1.exe que subistes: ejecuta el programa y mientras esta funcionando ve a las propiedades del desktop en windows y en configuracion cambia la calidad de color de 32bit a 16 bit o cambia la resolucion de la pantalla; despues de hacer eso regresa a ver tu programa y notaras que ya no se ve el poligono con la textura, si no que solo se ve el Tpanel o la forma de la ventana principal. Si logras hacer que tu renderizado sobreviva a un cambio de configuracion de pantalla entonces su programa ya maneja la perdida del device.

     

    Que en algunas computadoras tu programa solo se vea un instante y despues se desaparesca podria deverse a que el viewport se arruina una vez al arrancar el programa y ya no se vuelve a restaurar.

     

    buena suerte

     

    natalie,

    el metodo Present, lo utilizo por supuesto, pero yo no contemplaba ese detalle de que se pierde el viewport. Hice el algoritmo de la siguiente forma:

     

    Si "device->present" <> 0 entonces

    D3DXMatrixPerspectiveFovLH(.....);

     

    Luego intenté cambiar la configuración de pantalla/colores; en efecto, el viewport se perdió, pero no lo puede recuperar más aun con la modificación que le hice. Es más, intenté hacer un seguimiento en tiempo de ejecución y una vez que se pierde el viewport el programa entra por la sentencia del D3DXMatrix..... y después vuelve a entrar de vuelta y asi sucesivamente, dicho de otro modo, el metodo present me da <>0 permanentemente. ¿que se estará haciendo mal?

     

    1) todo está hecho dentro del evento ONPAINT

    2) Con o sin timer, no surte efecto.

     

    Yo también supongo que en ciertas compus, el viewport se pierde, pero el asunto es que no hallo la forma de recuperarlo.

    Espero news!

  11. Estoy casi seguro que mis rutinas son perfectas, pues las subí porque me andaban bien.

    Lo que realmente me tiene muy perdido es que a cada persona le viene con un error distinto... ahora quiero crear un standalone, y resulta que no renderiza, el viewport si se visualiza perfectamente.

     

    Estoy metido con C++, porque es el lenguaje que estoy manejando mientras curso en la facultad, y el IDE del Builder es igual al de delphi.

    Lo que no tengo idea es la estabilidad que guarda el builder con directx, que sospecho que es el problema. :hello:

     

    éste programita también es una inspiración hacia alguien, y deseo mantener firme el proyecto!

     

    explicame natalie:

     

    Seguramente el viewport lo defines y lo creas una sola vez cuando inicias el programa, sinenevargo es importante que agregues esos pasos en una rutina aparte para que pueda ser ejecutada desde cualquier otro lado y en cualquier momento que se necesite; esta rutina debe de incluir al final algo haci como:

     

    el viewport lo defino con la sentencia:

    D3DXMatrixPerspectiveFovLH....

     

    y la pongo en el evento OnCreate del form principal, pero ¿donde ó en que caso debería ser llamado nuevamente?

  12. damn!

    he estado teniendo estos problemas desde hace ya tiempo, y es lo que me desanima constantemente...

    1) el problema de los archivos los soluciono creando un programa standalone ( hay una opcion para hacerlo )

    2) lo que reporta luego erogan y Max, es sencillamente raro....

    luego lo comprobé yo mismo probando las cosas en otra PC. Creería que el tema radica en que no hay espacio de memoria? problemas al crear el vertex buffer?

    debería hacer un chequeo minucioso.

     

    @natalie: vos no has tenido problemas, pero no te renderiza nada. Mhhh, no estoy usando direct input. Simplemente utilizo un componente llamado Timer que lo

    asocio al evento de Paint, de tal forma que cada vez que dicho evento es llamado por acción del usuario o del sistema el contenido del panel ( que sería el viewport) es redibujado. No estoy utilizando el metodo SetViewport, eso tendrá que ver??

     

    Veo que el tema se me complica mucho mas de lo que me había pensado.

    Los mantengo al tanto.

  13. Buenas!

    Mucho tiempo que no me pasaba por acá, pero no quiere decir que esté ausente.

    Cosas en lo personal, atender la facultad, y los pequeños aspectos de lo cotidiano, me hacen retrasar un proyecto que tengo en mente para ésta comunidad.

    Primero que todo quiero que prueben este programita.... es simple, se trata de un visualizador de meshes de un archivo TR4, que se puede observar en dos modos: texturizado y malla ( wireframe ).

    La idea es que observen bien como se renderizan los gráficos, si ven algo incorrecto, algún error.

     

    Nunca me decidí encarar bien el proyecto; primero estuve en OpenGL para pasarme a Directx 7.0, que luego subí a directx 8.1, luego probé implementarlo en

    varios lenguajes; Visual Basic, microsoft Visual c++, Delphi, y ahora estoy preparandolo en el entorno de c++ Builder (tambien de Borland o_O ). Cambié de

    paradigmas, de lo procedural para ahora implementarlo en una forma Orientada a Objetos, que me es mucho más fácil entenderlo para mí.

     

    La historia ES larga, pero aquí va. Son mis primeros pasos como un programador exitoso. :thumb:

     

    PD: Si Natalie o Turbo puedieran verlo, y darme alguna opinión, hay cosas en cuanto a la gráfica que no estoy muy conforme.

    TR_Visual_3D.rar

  14. Despues de tener problemas con mi proveedor de internet e investigar un poco encontre una pagina que te dice si alguna pagina X esta caida de verdad o solo no te anda a ti

    Es muy util a la hora de discutir con los tarados del call center del proveedor de internet ¬¬

    http://downforeveryoneorjustme.com/

    ahi lo tienen,solo escriban el sitio web que quieren comprobar y les dira la verdad verdadera ;)

     

    Ahora estaría buena una página así que te arregle lo que te anda mal.

    ;)

×
×
  • Crear nuevo...