Logo

¡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

Mensajes - jal

#1
ArtFutura / Buccaneers quest
22 de Septiembre de 2006, 02:20:21 PM
Guau, es superdivertido y superlargo. Mola un monton las pruebas de beber y la de las bombas. Espero que os vaya muy bien en ArtFutura.


Un saludo
  JaL
#2
                                Buenas a todos y a todas, después de buscar por internet y no encontrar  acabé implementando un algoritmo para generar frustums a partir de portales pero existen una serie de bugs que no consigo hacer desaparecer.

Quizas exista un alma caritativa que sepa decirme la implementación de escuela de este algoritmo.


Un saludo y gracias a todos, todos.                                
#3
Programación gráfica / Preprocesamiento de mallas
10 de Abril de 2003, 01:59:12 PM
                                No se si acabo de entender bien tu problema, pero creo que el motivo por el que te da las 24 normales, 3 por vertices, es por que te retorna las normales de las caras que comparten ese vertice, para que tu luego puedas calcular la normal que quieres que tenga ese vertice. Una posible forma de conseguir esa normal seria sumando las 3 normales y volviendo a normalizar el vector resultante. De esta forma tendrias una normal por vertice y no necesitarias reprocesar la malla.


Un saludo                                
#4
                                Probablemente no todo lo que te diga sea cierto, pero si no me equivoco, los vertex array y los compiled_vertex_array son metodos que te permiten enviar la geometry de forma empaquetada, de esta manera optimizas el uso del bus ya que permite enviar de forma más eficiente y más rapida. compiled_vertex_array debe ser algun tipo de variante de los vertex_array que te permitirá algun tipo de optimización (quizas forzar a dejar la geometry en la memoria de video).

Los register_combiners (y no combiner_register), te permiten tener un mayor control sobre el tratamiento del color en la etapa de raterización, te permite realizar efectos como bump mapping. Por decirlo de alguna forma serian la versión prehistorica de lo que ahora se conoce como pixel shaders.

Seguramente de todo lo dicho anteriormente mucho no será del todo correcto pero creo que almenos serviran para hacerte una idea.

Un saludo                                
#5
Programación gráfica / Sobre lightmaps
28 de Marzo de 2003, 04:33:32 PM
                                Esto deja más claro las cosa. Muchas gracias Ithaqua.                                
#6
Programación gráfica / Sobre lightmaps
28 de Marzo de 2003, 03:19:30 PM
                                Creo Ithaqua que no llegamos a entendernos. Así que antes de nada unas preguntas para aclararnos.

Lo primero, ¿Los lightmaps los generas o los exportas de una aplicación como el Max?.

Segundo ¿Empaquetas los lightmaps?.

Tercero: El proceso de optimización de malla los realizas con los ligthmaps empaquetados?.

Aclaraciones:
En mi caso los lightmaps los genero con un programa propio , y es en el proceso de EMPAQUETAMIENTO cuando se pierte la posibilidad de reusar vertices ya que he de añadir el BORDE a cada lightmap dentro del lightmap empaquetador (para evitar problemas con el filtro lineal).

Igual si se generan los lightmaps desde el MAX, éste genera las coordenadas de textura y empaqueta los lightmaps y de algun modo que no necesite añadir el borde a los lightmaps permitiendo reusar vertices.

O igual se si generan de forma propia, existe una manera de empaquetar sin necesidad de añadir bordes.

Por cierto si es posible generarlos desde el MAX o existe un plugin que alguien lo diga e del MAX o si existe un plugin y si calculan las sombras también.                                
#7
Programación gráfica / Sobre lightmaps
28 de Marzo de 2003, 09:47:24 AM
                                Si pero con esto no solucionas el problema ya que como comento en el post anterior las coordenadas de textura de los lightmaps son únicas para cada vertice de cada triangulo, así cuando realizas el proceso de comprobar si un vertice ya aparece en la lista o no, descubres que ninguno está pues el test de comprobar si la coordenada de textura del lightmap es igual a la de un vertice de la lista siempre falla. Esto lo se porque yo realizo el mismo proceso que tú y al final obtengo tanto vertices como triangulos tengo multiplicado por tres.

Estoy pensando una alternativa, pero aun no lo tengo claro, y es generar una malla plana que represente la malla a original. Seria algo así como si "desplegases" la malla (por poner un ejemplo "como desenvolver un regalo" donde el papel de regalo representaria la malla original y una vez abierto y completamente plano sus posiciones serian las coordenadas de textura del lightmap). Aunque lo que realmente se necesita es una malla plana que contenga la misma conectividad que la malla original, pero como se consigue es una cosa que aun no lo se bien.                                
#8
Programación gráfica / Sobre lightmaps
27 de Marzo de 2003, 01:21:13 PM
                                MaSTeR lo que dices no se puede llevar a cabo, pues son dos mallas diferentes con la misma topologia. Es decir ambas mallas tienen un número diferente de vertices, aunque el mismo número de triangulos (y si stripificases la malla tendrias diferentes tiras de strip). Esto es debido a que un vertice con coordenadas de texturas del material puede ser utilizado por n triangulos pues eso n triangulos pueden tener la misma coordenada de textura para ese material, mientras que ese vertice con el lightmap tiene tantas coordenadas de textura como triangulos aparece, lo que obliga a generar n vertices diferentes (esto último es cierto si empaquetas los lightmap y añades un borde a cada lightmap dentro del lightmap empaquetador).

La conclusión que se saca de esto, y ahora me doy cuenta, es que no sirve de nada hacerlo en multipasada, pues en la segundas pasada estas enviando el mismo numero de vertices que enviarias si lo hicieses con multitextura (3*nº de triangulos), ya que el lightmap empaquetado con borde  impide reuso de vertices. Así que la pregunta definitiva es: ¿Como se pueden generar lightmaps empaquetados cuyos vertices puedan compartir coordenadas de textura del lightmap?

Otra duda que tengo es: Los lightmaps se empaquetan en tiempo de creación o en tiempo carga. Personalmente creo que en tiempo de carga (para así reducir espacio) pero siempre viene bien un segunda (o tercera) opinión.                                
#9
Programación gráfica / Mas dudas sobre lightmaps
27 de Marzo de 2003, 09:40:12 AM
                                Tras leer vuestras respuestas, a mi me salen más preguntas. Si no es posible reusar vertices debido a la coordenadas de textura de los lightmaps entonces:

1.- ¿Merece la pena indexar la malla y enviar la geometria mendiante vertex arrays? o ¿Seria mejor usar display list?.
2.- ¿Mereceria pintar usando multitextura o pintado en dos pasadas?, ya que si pintamos en dos pasadas podriamos construir dos arrays de vertices (uno con las coordenadas de textura, y otro con las coordenadas de textura del lightmap) que podrian reusar vertices y por lo tanto indexar eficientemente  (incluso stripificar) la malla.

3.- Y por último, gracias.