Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - marcode

#1
Programación gráfica / un picking relativamente sencillo
02 de Julio de 2008, 03:10:08 AM
quiero saber en qué lugar de la superficie, se proyecta un supuesto rayo que sale de una posición en 2D (del cursor del ratón).

La idea es hacer una función a la que supongo tendré que pasar la matriz de vista, la de proyección, el viewport y la posición del cursor. Y me devuelva la coordenada 3D donde hace el picking.

Como el lugar de "colisión" del rayo un plano recto en la altura cero, pues basta con que me devuelva la coordenada X/Z de la superficie del suelo sobre la que estoy "pasando" el cursor.

¿alguien sabría la fórmula?, imagino que es el proceso inverso al de pasar la coordenada 3D a 2D en la pantalla, pero ando un poco liado y no quiero perder demasiado tiempo dando palos de ciego, si alguien lo supiera pues estupendo, mientras seguiré indagando.
#2
Programación gráfica / Orientar impostores escalados
27 de Junio de 2008, 06:53:28 PM
Para orientar un impostor (sprite 3d) a la cámara, basta con multiplicarlo por la inversa de la matriz de vista. Sin embargo al escalar o rotar la matriz del impostor, ya no funciona correctamente. Los vectores de rotación y de escalado siempre deben ser los de la matriz de identidad.

¿Hay alguna solución recomendable?, ¿o mejor cambiar el sistema y hacerlo como se indica aquí?
http://www.fuzzygamedev.com/2007/03/24/billboards/3/
#3
Programación gráfica / Comprobar visibilidad de objetos
15 de Enero de 2008, 11:41:29 PM
¿Sabéis donde puedo encontrar una función optimizada que compruebe si un boundig box está dentro del volumen de visualización de la cámara?. O alguien que ya la tenga implementada...

(Lógicamente es para determinar si hay que dibujar un objeto o no.)
#4
Off-topic / no veo la TV correctamente con monitor panorámico
02 de Octubre de 2007, 11:11:26 PM
Buenas, tengo un monitor con pantalla panorámica. Veo la tele con la
capturadora, pero al maximizar cualquier programa se alarga la pantalla.

Pero lo que más me jode es que cuando se trata de una película en formato panorámico, las bandas negras siguen saliendo y la imagen se alarga. y lo que me gustaría es ajustar la zona visible a la pantalla.

Bueno, creo que me he explicado bien. Supongo que a alguien más le habrá pasado. ¿Hay alguna forma de solucionarlo?, para reproducir vídeos con el BSplayer lo puedo hacer, ajusto el tamaño al monitor. Pero no veo que lo haga ningún programa de captura-tv.

Con el monitor no lo puedo hacer, con las opciones gráficas tampoco, no sé si habrá algún invento por ahí. necesito poder hacer zoom y que la imagen no se estire para ver la TV, así lo ajusto con el BSplayer.

¿alguna solución?, gracias.
#5
Programación gráfica / generar sombras
19 de Junio de 2007, 08:37:01 PM
¿Alguien sabe qué es lo mejor para generar shadow maps de calidad?. Sin shaders, y en un tiempo que sin ser necesariamente rápido, tampoco se tire demasiado tiempo.

Lo que quiero es calcular al principio y luego no tener que hacer más operaciones (como mucho regenerarlas de vez en cuando), simplemente blendear la textura de la sombra generada sobre el plano para que quede más o menos así.

#6
General Programadores / Librería con único include
31 de Mayo de 2007, 10:06:42 PM
Tengo una librería gráfica en C++, pero me gustaría poder agruparla y usarla estáticamente pero sin todo el follón de includes, y poder recopilar en uno solo todas las clases y métodos, pero no tengo ni idea porque nunca lo hice.

¿Cómo se suele hacer eso?, ¿hay algún programa que lo haga automáticamente?.

El que haga librerías de clases supongo que sabrá a qué me refiero. No quiero agrupar todos los includes en uno solo si no seleccionar lo esencial para poder usar la librería. Los métodos y poco más.
#7
General Audio / Crear sonidos sintéticos
16 de Mayo de 2007, 09:54:55 PM
¿Alguien sabe dónde hay un manual, libro, método o lo que sea, que explique cómo hacer sonidos de todo tipo, como golpes, efectos de viento, fuego, o los que suenan al dar un icono, obtener una vida extra, etc, usando sintetizadores?

Me refiero a la forma de hacerlos a partir de cero mediante los diferentes tipos de síntesis de audio existentes.
#8
General Audio / Eliminar ruido de fondo
17 de Abril de 2007, 06:58:50 PM
Tengo unas grabaciones que hice en una cinta hace años y me gustaría poder quitarle el ruido de fondo y hacer una reparación en general. ¿Conocéis algún programilla bueno?.

He usado el plugin del audacity de eliminación de ruido, pero lo único que hace es sustituir el seseo típico de las cintas por pitufos haciendo gárgaras. Aunque lo ponga al mínimo veo que se pasa con la modificación. Imagino que habrá software especializado.

No me importa que no sea gratis. Ya pagué el otro día por adelantado.
#9
Programación gráfica / comprobar visibilidad de un cubo
16 de Abril de 2007, 09:40:34 PM
¿Conocéis alguna función o algoritmo que me permita saber si un cubo está dentro de la cámara?, para el tema de la selección previa al render en octrees.

Ha de recibir la matriz que describe la posición/orientación de la cámara y su fov, y también la posición del cubo y su tamaño.

Ni que decir cabe que ha de ser ultra-rápida.
#10
Programación gráfica / obtener normales de un terreno
12 de Marzo de 2007, 11:17:53 PM
Estoy haciendo una nueva versión de mi generador de terrenos y necesito obtener las normales de cada vértice, pero el calcular las de todos los triángulos y luego promediarlas creo que va a consumir demasiado tiempo.

Se me ocurre que lo mejor sería recorrer cada uno de los vértices y obtener su normal mediante los vértices contiguos, es decir el izquierdo, derecho, delante y atrás.

Entonces... ¿sería algo así como obtener el producto cruzado de 4 vectores?, o ¿cómo las podría obtener?. necesito que sea muy rápido porque el terreno se genera en tiempo real pseudoaletariamente  y luego necesito obtener las normales sobre millones de vértices.
#11
Programación gráfica / Crear plugin-export para blender
27 de Enero de 2007, 03:23:19 PM
Quiero hacer un formato propio de modelos 3D para exportarlos con blender (de comienzo no muy complejo),  y me gustaría escribir un plugin exportador pero no tengo ni idea de como se hacen ni tampoco de python ni na. ¿Existe algún manual o guía por ahí que se centre en la exportación?.

También me serviría algun script básico que exporte vertices, normales y coord. de textura para ver cómo se hace y tenerlo como base. ¿Hay alguno por la red?, o ¿podríais ponerlo aquí si lo tenéis?, supongo que para el que sepa cómo va no debe ser muy complicado hacerlo o explicármelo.
#12
Me gustaría saber como abordais el siguiente problema.

Tengo 2 objetos que actuan el uno sobre el otro, cuando es requerido, la función correspondiente modifica el estado del que tenga asociado.

El problema es cuando los dos objetos influyen entre sí, por ejemplo 2 ruedas dentadas con movimientos individuales. La función de un objeto llama a la del otro, que a su vez vuelve a llamar al anterior, y así sucesivamente hasta el infinito (en nuestro caso stack overflow).

Yo creo la solución correcta estará en una función común cruzada. Pero se podría complicar si el problema por ejemplo son varias ruedas dentadas.
#13
General Programadores / función SwapBuffers me jode el debug
07 de Diciembre de 2006, 01:50:33 PM
Visual C++ Express, OpenGL, Modo debug...

Despues de ejecutarse SwapBuffers(hDC) intento evaluar una variable o lo que sea pasando el cursor por encima, tras medio segundo como siempre cambia el cursor del ratón de texto a flecha, y la variable queda ligeramente remarcada, pero no aparece nada más.

Todo parece funcionar bien pero el cartelillo emergente con el valor no aparece.

¿Alguien le ha pasado o sabe porqué me pasa?, parece como si se cepillase algo de los gráficos relacionado con el Contexto de dispositivo. He probado algunas cosas pero sigue igual. Si a alguien se le ocurre algo....
#14
General Programadores / warnings molestos al linkar
28 de Noviembre de 2006, 03:09:29 PM
¿Alguien sabe como puedo quitar o solucionar estos mensajes del VC++ al linkar una librería estática?, no me afectan para nada pero molestan.
Citar
user32.lib(USER32.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gdi32.lib(GDI32.dll); second definition ignored

user32.lib(USER32.dll) : warning LNK4221: no public symbols found; archive member will be inaccessible
#15
General Programadores / Llevar la consola a primer plano
22 de Noviembre de 2006, 06:25:15 PM
Tengo un programa en C++ en el que uso una ventana de consola y otra de windows.  

Estando en la de windows, en ocasiones necesito ver el contenido del texto de la consola que se encuentra normalmente tapada por otras o por la propia ventana, pero me gustaría que emergiera automáticamente por encima del resto de ventanas ante un determinado evento.

¿cómo puedo llevar la de consola al frente?, ¿alguien conoce alguna función o truco?
#16
Programación en red / Comunicaciones periféricas
24 de Octubre de 2006, 04:15:00 PM
Quizás no va aquí este tema porque no es programación en red, pero bueno.

Resulta que voy a necesitar próximamente realizar comunicaciones desde el  puerto serie y/o usb, y desde el bluetooth conectado al PC, a otros dispositivos. pero antes de empezar a buscar no se dónde (ando un tanto perdido), me gustaría escuchar vuestras recomendaciones y consejos.

Sobre todo saber que librerías podría usar y documentación para hacerlo de la manera más sencilla posible, tutoriales, ejemplos, etc. No quiero complicarme mucho la vida, solo conseguir enviar y recibir información correctamente y sin problemas. Si hubiera una librería que tuviera unificadas las conexiones antes mencionadas sería perfecto.

Gracias.
#17
Programación gráfica / "gráficos" en modo consola
17 de Octubre de 2006, 09:16:52 PM
Querría manejar un poco más lo que escribo en la consola para hacerlo un poco más gráfico, por ejemplo para borrar la pantalla, escribir caracteres en la posición del cursor deseada, cambiar colores, etc. Recuerdo que con borland esto lo podía hacer sin problemas, porque venian las funciones necesarias en conio.h pero ahora no tengo ni idea.

Para borrar la pantalla he podido usar system("cls");

Para situar el cursor y otras funciones he visto por ahí que se puede hacer con secuencias de escape, por ejemplo así: printf("\33[10;0H" );

Pero no me funciona, ¿sabéis cómo se hace o donde hay info sobre hacer gráficos con caracteres en modo consola de windows?.
#18
General / Cursos de desarrollo en Stratos :D
25 de Septiembre de 2006, 08:19:10 PM
Hola, aprovechando ahora que ha surgido el tema de la iniciación y aprendizaje a desarrollar videojuegos, yo propongo que la gente que quiera enseñar lo que sabe, haga un tutorial o curso en alguna especialidad determinada.

Debido al tiempo y esmero que requiere hacer un tutorial completo, se harían semanalmente (como fascículos), muy pequeños y centrados en algo muy concreto, de esta forma no agobiarían tanto, daría tiempo de sobra a hacerlos y a seguirlos, y al final perfectamente podrían ser cursos completos que en por ejemplo en un año (48 temas) pueden dar bastante de sí. Dependiendo de la materia podrían variar de 3 meses a 1 año (o el tiempo que sea necesario).

Durante la semana, el autor del curso respondería a las dudas planteadas en el capítulo semanal, o también los interesados discutirían acerca de ello por lo que no deberán ser muy extensos, ya que se trata de un aprendizaje a largo plazo y tiene que dar tiempo a ser asimilado y aclarado.

Para facilitar la tarea a los autores, y que los cursos tengan un mejor acabo y calidad, sería necesario que hubiera alguien o varios encargados de editar las entregas semanales, es decir, el autor las crea en formato doc (en todos los ordenadores hay un wordpad a mano) y tras enviarla se realiza un pequeño control de calidad, se corrigen las faltas de ortografía si las hubiera, se convierte a pdf colocando las imagenes, enmarcando el código, etc. Todo ello con una presentación agradable y uniforme con el resto de los cursos.

Si estáis de acuerdo yo me apunto a escribir uno de OpenGL, del mismo modo se podría hacer con DirectX, IA, Física (newton, ODE,..), diseño, librerías, sonido, animación, dibujo, lenguajes de programación, móviles, redes, marketing y empresa, y todo lo que se os ocurra relacionado con el desarrollo de videjuegos. Cada voluntario daría un curso de la especialidad que mejor conozca o lo que le apetezca, y la verdad es que con ellos aprenderíamos todos, no solo los que están empezando. Además del enriquecimiento documental que iba a quedar en Stratos.

¿Qué os parece?
#19
¿Conocéis alguna función o extensión de OpenGL que me sirva para conocer la cantidad de memoria disponible para texturas? similar a la de DirectX GetAvailableTextureMem.

O alguna otra de windows con la que pueda saber la memoria de vídeo libre, tanto local como AGP.
#20
Programación gráfica / Mi primer shader, chispas
30 de Agosto de 2006, 12:35:54 AM
Una vez solventado el problema de la inserción de shaders en mi terreno, me ha dao el ansia por hacer el efecto de niebla.

Pero antes de hacerle un copy&paste a Ralp o leerme su libro de scattering he preferido intentarlo a partir de los shader de niebla básicos, y este es el resultado:

Me "he ido" a los picos de Urbión para ver mejor el efecto.



Éste es el fragment shader


uniform sampler2D tex;

void main()
{

  // calcular la luminosidad de la niebla
float fogLum = 1.0-exp(0.00003 * gl_FogFragCoord);
fogLum = clamp(fogLum, 0.4, 0.6);

  // calcular el color a partir de la luminosidad
vec4 fogColor = vec4( fogLum, fogLum*1.3, fogLum*1.6, 0.0 );

  // calcular la densidad
float fog = exp(0.0002 * (gl_FogFragCoord));
fog = clamp(fog, 0.1, 1.0);
 
  // mezclar los valores de color de niebla, color de pixel y densidad
gl_FragColor = mix( fogColor, gl_Color, fog );

  // y esto si no lo pongo no sale la niebla aunque no use texturas
texture2D(tex, gl_TexCoord[0].st);
}


Tendré que aprender más para mejorarlo pero de momento no queda mal, es el efecto que quería que clarea a mayor distancia y hace que se aprecie el perfil de las montañas.

Por cierto, la última línea me toca las narices.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.