Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 19

Tema: Tecnologías libres para sintesis de imagen digital tridimensional blendiberia 2006

  1. #1
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Tecnologías libres para sintesis de imagen digital tridimensional blendiberia 2006

    tecnologías libres para síntesis de imagen digital tridimensional.

    IV jornadas Blendiberia 2006
    Ciudad real, 7 y 8 Julio


    Título
    Tecnologías libres para síntesis de imagen digital tridimensional.

    Autores (por orden alfabético)
    Javier Alonso Albusac Jiménez, Fernando arroba rubio, Javier Belanche Alonso, Alejandro Conty Estévez, Roberto Domínguez, José Antonio Fernández Sorribes, Luis Fernando Ruíz Gago, Carlos Folch hidalgo, Miguel García corchero, inmaculada Gijón Cardós, Juan David González Cobas, Carlos González morcillo, Miguel Ángel guillén, Carlos López Yrigaray, Emilio José Molina Cazorla, Guillermo vaya.

    Editor
    Carlos González morcillo.

    Portada y maquetación
    Carlos González morcillo.

    Impresión
    Servicio de publicaciones on-line Lulú, com ISBN 84-689-9280-1 número.

    Registro 06/45890.

    Licencia
    Se permite la copia y distribución de la totalidad o parte de esta obra sin ánimo de lucro bajo licencia Creative Commons que se detalla a continuación.

    Toda copia total o parcial deberá citar expresamente el nombre de los autores.

    Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.

    Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

    Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley no se ven afectados por lo anterior.


    Licencia Creative Commons.

    Reconocimiento-nocomercial-sinobraderivada 2.5 España.

    Usted es libre de copiar, distribuir y comunicar públicamente la obra, bajo las condiciones siguientes:
    Reconocimiento.

    Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador, no comercial.

    No puede utilizar esta obra para fines comerciales, sin obras derivadas.

    No se puede alterar, transformar o generar una obra derivada a partir de esta obra, este documento fue maquetado exclusivamente con software libre: GNU/Linux con openoffice 2.0, Gimp, Blender y Yafray.




    «los libros que el mundo llama inmorales son libros que muestran al mundo su propia vergüenza».

    Oscar wilde.

    Prefacio.

    Este libro que tienes en tus manos es el resultado de varias ediciones de las jornadas Blendiberia, celebradas en Barcelona (2003/2004), Zaragoza.
    (2005) y ciudad real (2006).

    En esta recopilación se han recogido algunas de los documentos realizados para ediciones anteriores de Blendiberia y todas las ponencias preparadas para la última edición, celebrada los días 7 y 8 de Julio en ciudad real, coincidiendo espacio temporalmente.

    Con la mayor concentración informática de castilla la Mancha llamada party quijote 2006, para definir que son las jornadas, citamos algunos párrafos originales de la primera edición, manteniendo los mismos objetivos, concentrando el interés en torno a producciones infográficas y software basado en modelo de código abierto.

    El estudio técnico de la informática gráfica alcanza su máximo exponente cuando el usuario es capaz de intervenir, modificar y adaptar el software a las necesidades de la sociedad.

    En cada una de las contribuciones descubrimos la heterogeneidad de dos campos en frenético avance tecnológico: el software libre y la informática gráfica.
    «suerte de laboratorio o encuentro eventual de estudiosos a las técnicas de producción y realización de imágenes de síntesis tridimensional y toda periferia creativa que pueda emerger del mismo.

    El guión lo firma cualquier colaboración ajena, abierta a cualquier persona o colectivo que trate la circulación de la información con libertad de uso, interpretación y distribución, aunque no exista un método de trabajo único, ni siquiera su continuidad, el esquema que le da forma es el de una suma de breves piezas que describen un gran puzzle teórico practico.

    Que va desde el goce abstracto de la programación gráfica a la reivindicación política, aunque ambas cosas se funden en muchos casos, lo que sí se puede afirmar es que todas las piezas tienen en común estar hechas desde una libertad absoluta, de la que nos servimos con el objeto y fin de explorar el género de la computación gráfica considerando el usuario como cómplice inteligente, capaz de entender y disfrutar del viaje propuesto.

    Blendiberia desde su contenido a un grupo de colaboradores que, aportan ideas, reflexiones o piezas según su estímulo intelectual.

    Es obvio remarcar que la mayor parte de las intervenciones giran alrededor de dos herramientas Blender y Yafray, modelos de software 3d basados en el marco jurídico GNU, pero también se ha querido añadir un acento al desarrollo de proyectos propios que toman como punto de partida o referente la posibilidad del código fuente disponible.

    »



    la maquetación del documento ha intentado conservar la paginación, formato y tamaño de los gráficos originales1.

    Si hubiera algún error en la misma, seguramente el responsible sea el maquetador y no los autores originales del artículo, en el diseño de la portada del libro y las separatas entre secciones se ha utilizado la mascota de Blender (Suzanne), una primitiva 3d que fue originalmente renderizada por Javier Belanche 2, esperamos que está documentación, fruto del esfuerzo de todos los colaboradores de Blendiberia 2006 sea de tu agrado, y si no lo es, siempre podrás enviar tus quejas a [/dev/null.

    Un saludo y happy blending.




    Creative Commons:
    Entre el copyright y la copia
    Javier Belanche Alonso.
    xbelanch@gmail.com:

    quería comenzar esta charla sobre Creative Commons pidiendo disculpas.

    Finalmente no voy a hablar demasiado sobre el constructor de licencias que actualmente está teniendo una gran proyección en ámbitos no exclusivos del desarrollo de software, la última portada de la revista wired -responsable en gran medida del nacimiento de Creative Commons-regalaba de forma lúdica un CD con 16 canciones con una «nueva y radical» licencia y que sus protagonistas (David Byrne, The Rapture o Beastie Boys, entre otros) forman parte de una iniciativa no carente de dificultades por liberar la producción musical de las actuales restricciones legales y creativas, frente a las limitaciones que ha trazado la industria musical, los 13 artistas que suscriben la propuesta han grabado bajo una licencia diferente: la «sampling plus license», que nos permite a los usuarios compartir digitalmente las canciones («file-sharing»), pero también nos ofrece la posibilidad de añadir a nuestras producciones comerciales partes o «samples» de estas canciones, siempre y cuando nuestro trabajo sea lo suficiente «diferente» al original para que no resulte una burda copia.

    En lugar de condenar la habitual práctica de «piratería» que los grandes medios acostumbran a bombardear, se prohíbe la falta de creatividad.

    Está prohibido crear una copia exacta con fines comerciales, pero no un «sampleado» cuyos resultados deriven a un trabajo diferente, quizá más excitante o genial.

    O que comercialmente pueda resultar un éxito inesperado.

    Y tenemos precedentes.

    Cuando el grupo «the orb» consiguió con «Little flufy clouds» un éxito planetario a partir de fragmentos de composiciones del famoso creador minimalista Steve Reich, el mismo artista no supo que hacer.

    Finalmente renunció a demandar al grupo «ambient house» considerando la acción misma de «depredar» fragmentos sonoros (no exclusivos de la música, también vale diálogos de series de televisión, ruidos de la calle) y obtener un resultado único, una suerte de collage musical, independiente de las fuentes utilizadas para su creación, aunque el grupo the orb no las cite.


    Es posible la respuesta de Steve Reich se debe al recuerdo de la historia de la música o la historia de las prácticas del surrealismo y dadaísmo, donde el uso y recurso indiscriminado de imágenes tomadas de obras de terceros.

    O incluso adoptando el estilo de creaciones de artistas marginales o tribales era absolutamente aceptado y generalizado.

    Es obvio que Picasso fundamentó las bases del cubismo en la interpretación personal de las máscaras africanas, de la línea de ingres y de la investigación pictórica de Cezanne.

    Incluso André Breton, padre intelectual del movimiento surrealista, invitaba a los creadores plásticos la experiencia de «Lobjet Retrouvé».

    Nada de la vanguardia artística del primer cuarto del siglo XX podía ser considerado acto ilegal.

    En este caso, el artista tomaba sus referencias de obras que, en cierta manera, podemos considerarlas en la actualidad de «dominio público».

    Y en cierta manera y en otro frente, cuando Walt Disney basó gran parte de su genialidad como animador en la literatura infantil de los hermanos Grimm y otra parte de sus logros gráficos a la atmósfera permisiva de aquella época en la que los artistas disfrutaban de gran libertad para crear obras «derivadas» de otras.

    Paradójicamente, en la actualidad nadie se atrevería a tomar los personajes clásicos de Walt Disney para una nueva interpretación o, simplemente, para sumar nuevas historias a las ya forman parte de la historia.

    Sencillamente porque sería acusado de un acto criminal.
    ¿Por qué en la actualidad se ha llegado a un excepcional y difícil horizonte dónde está en juego las libre circulación de las ideas? En unos pocos años, el panorama occidental en cuanto a las reglas de protección y derechos de autor se ha incrementado increíblemente el número de licencias de carácter fuertemente restrictivo.

    Es más, en ámbitos como la producción y diseño software hemos visto cómo en sus orígenes pertenecía a un campo libre de uso y lectura del código fuente a su privatización en término legales, sin olvidarnos que, en el tramo final, la práctica de patentar código representa la última frontera, el último paso a la exclusión de la cultura a la sociedad.

    Esta actuación única y focalizada -la exclusión, la privatización fuerte de las ideas, pero omnidireccional abierta en todos los mercados culturales puede observarse y detectar sus consecuencias en mensajes que manifiestan la inteligencia y la creatividad humana propiedad de un cerebro, de un individuo, conocido popularmente como «artista» o «científico», convirtiéndose descaradamente en marcas registradas de la cultura popular.

    Así, Bill Gates es a la informática lo que Picasso representa en la evolución de la historia del arte del siglo XX o, recuperando una historia anterior, lo que Walt Disney representa a la historia de la animación.

    Este pensamiento no permite la matización.

    No se permite pensar que lo que generalmente conocemos como «invención individual» es producto de un fenómeno más complejo donde intervienen un número de interferencias o «inteligencias».

    Ese lema llevado hasta la exasperación conduce claramente a un posicionamiento ultra conservador que, tal como he comentado antes, defenderá hasta el último aliento una fórmula de estandarización abusiva: un sólo producto, un solo nombre, un monopolio comercial de la cultura, frente a esta dictadura de la comercialización y producción exclusiva de la cultura, tenemos otra corriente, un movimiento fractal que, sin entrar en su propia recursividad, lucha abiertamente por la libre circulación de las ideas.

    Dentro de esta postura se dibujan otras, quizá menos visibles, pero no por eso menos importantes.

    Vuelvo a incidir en la cuestión de la unicidad creativa.

    Según estos movimientos de resistencia, la creatividad es propiedad de la humanidad y fomentada en la agrupación de personas con afinidades e intereses comunes y reunidos en torno a una comunidad.

    El acento de esta revuelta se sitúa en términos de cooperación, de «bazar» en palabras de Eric Raymond.

    Este movimiento cuestiona abiertamente unas leyes que tuvieron su razón en otro momento histórico, pero que, en la actualidad, han perdido el sentido.

    La digitalización de la cultura ha trastornado radicalmente el tráfico incesante de la cultura, de las ideas.

    La digitalización ha transformado completamente el contexto, el marco en el que la tecnología empujó a definir el significado de copyright como forma legal de proteger las inversiones en la creación de una obra y la creación misma: la copia.

    En estos momentos, los centros de producción masiva de cultura se han descentralizado.

    Cualquier persona, desde su casa, puede ser fuente de producción de información, puede copiar, reproducir e incluso compartir sin pérdida en la calidad de la información de los bienes inmateriales con otras personas.

    Pero, contradictoriamente a lo que parecía una actividad inocua hace unas décadas como el préstamo de un libro a un amigo o grabarle a un vecino una canción, en el día de hoy, estas y otras actividades se han criminalizado con el fin de proteger, según la óptica monopolista del negocio cultural, los derechos del autor.

    No es extraño que bajo esta atmósfera prohibitiva de la circulación de la cultura hayan cristalizado movimientos como el del software libre, «copyleft» o «all rights reversed».

    Movimientos que han permitido respirar libertad y que ofrecen de manera legal -y es bastante triste confirmarlo -el poder compartir bienes inmateriales con tu vecino sin riesgo de ser juzgado como un criminal, uno de los aspectos más interesantes que, contradice los monopolios del comercio cultural y que puede ser motivo de una larga reflexión es el fenómeno japonés conocido por «Doujinshi».

    Todos conocemos la industria del cómic en Japón, «manga».

    Los japoneses son verdaderos fanáticos de los cómics.

    Un 40% de las publicaciones en la actualidad son cómics y socialmente cubren todas las edades: desde los más pequeños hasta las personas de edad avanzada.

    A diferencia de la cultura occidental, el «manga» no forma parte de un uso exclusivo de un grupo o perfil de personas.

    En España, el cómic siempre a arrastrado diferentes complejos y prejuicios.

    Sólo en países como Francia o Estados Unidos puede decirse que hay una fuerte tradición y que la sociedad acepta su creación como parte de la cultura social.

    Sin entrar en más detalles sobre el «manga», lo que realmente me interesa explicar es este fenómeno, «Doujinshi», que en términos legales o bajo el paraguas restrictivo del copyright actual estaría en el terreno de la ilegalidad.
    «Doujinshi» son cómics, pero un tipo de cómic especial.

    Los creadores o dibujantes de «Doujinshi» tienen permisos para crear obras derivadas de «mangas» oficiales: no copian, modifican en términos de contribución y desarrollo del original.

    Un «Dounjinshi» puede tomar los personajes de un «manga» y cambiarlos de manera significativa en sus atuendos, o crear nuevas historias para los personajes cambiando su contexto geográfico o histórico, o simplemente continuar historias, allá donde el cómic original ha terminado.

    En Japón, los «Dounjinshi» son permitidos en términos legales.

    No estamos hablando de copias, sino de obras derivadas de otras consideradas «oficiales».

    En Japón el mercado «Dounjinshi» mueve a.
    33.000 círculos de creadores y dos veces al año se organizan encuentros donde 450.000 japoneses se reúnen para el intercambio o venta de «Dounjinshi».

    Este mercado existe paralelamente al mercado oficial «manga» y el segundo no teme por su florecimiento.

    En términos occidentales, «Doujinshi» equivale a «obra derivada» y, por lo tanto, ilegal.
    ¿Qué es lo más sorprendente de este movimiento «legal» en Japón? Su existencia.

    Y al revés de lo que podría pensarse, el mercado «manga» no ha decrecido en absoluto.

    Al contrario.

    La existencia de este mercado de aficionados al «manga» favorece el crecimiento de la industria oficial en términos de circulación de información.

    Esta situación no era muy distinta en los primeros tiempos del cómic americano, donde los dibujantes aprendían los unos de los otros, copiando su estilo, modificando o adaptándolo, y del que Walt Disney es un ejemplo.

    En el día de hoy, la industria del cómic americano, siguiendo la historia, la adaptación o la obra derivada esta prohibida.

    Es más.

    Personajes como Superman u otros super-héroes tienen bien definidos su rol.

    Hay cosas que pueden hacer, pero otras que formen parte de la definición de otro super-héroe no.

    Contrariamente, la derivación en el universo del manga permite una mayor flexibilidad y promiscuidad creativa.

    Y el mundo de las obras derivadas, tal como ocurre con el «Doujinshi», en lugar de restar movimiento al mercado oficial parece ayudar su continuidad, retomando la interpretación polarizada de la situación actual, la postura que persigue la mercantilización de la cultura fundamenta su argumento en la protección férrea de los intereses del autor.

    Recordemos que en la actualidad, cualquier autor -especialmente escritores y músicos-que busque una difusión de su obra en los circuitos comerciales, firmara con un editor o «Publisher», casa discográfica o distribuidora un contrato económico en el que se delimita la autoría intelectual de la obra.

    En 1710, los derechos de autor en el primer estatus de Inglaterra se definen como un derecho que equilibra dos partes interesadas: el reconocimiento del autor y, por lo tanto, la protección de la expresión de un contenido, no el contenido del mismo y, en palabras textuales, «animar a los hombres iluminados a componer y a escribir libros útiles».

    Si bien el autor tiene el monopolio legal de permitir la representación de su obra con su consentimiento, la sociedad ha de poder acceder a la misma consecuencias creativas.

    La obra no ha de representar un objeto cerrado a la sociedad y ésta ha de beneficiarse de las creaciones.

    Para alcanzar este consenso se fijó una caducidad a los derechos de autor que permitiera que la obra formara parte del dominio público después de un número de años.

    En la ley de la propiedad intelectual española (LPI) y muy similares en otros países, tomaron como referencia su desarrollo las bases redactadas en el convenio de Berna para la protección de trabajos literarios y artísticos de 1886 donde se diferencian derechos morales y patrimoniales.

    Los derechos morales protegen indefinidamente la autoría y la integridad de la obra, los derechos patrimoniales hablan del derecho fundamental de la explotación económica de la obra y pueden ser cedidos a un tercero de forma parcial o total de forma exclusiva o no, según el contrato que se fije entre creador y la empresa encargada de la explotación económica de la obra.

    Los derechos patrimoniales tienen una duración de 70 años después de la muerte del autor, en el caso de la ley española para pasar después a formar parte del dominio público, la cesión de derechos del autor a un tercero se define mediante un contrato denominado «licencia».

    En términos amplios, cada licencia define los permisos del uso de la obra, como, por ejemplo, su explotación o no económica, la creación de obras derivadas, etc, la licencia protege así mismo la atribución o autoría de la obra como el impedimento legal de cualquier modificación de la misma como de la licencia.

    Por otro lado, la licencia permitirá a un tercero -con exclusividad o no, tal como hemos comentado anteriormente, a la copia, distribución y representación de la obra, dentro de esa definición amplia y general de licencia quiero retomar la «Creative Commons» y así cumplir con el objetivo de esta charla.

    Fundada en el 2001 y dirigidos por expertos en materia legal de la propiedad intelectual, derecho en la sociedad de la información e informática, la «Creative Commons» viene a ser una suerte de meta-licencia que permita en el panorama digital de la información una ayuda y cobertura legal a los creadores protegiendo su autoría (excepto el caso de dominio público) pero que ha un mismo tiempo sea factible la circulación legal de la obra.

    El lema es evidente: «Creative Commons is a nonprofit that ofers a flexible copyright for creative work».

    Hablar de flexibilidad es sencillamente hablar de ciertas libertades en cuanto a copia, distribución y creación de obras derivadas.

    El éxito popular que está esta metalicencia es básicamente por tres motivos: el autor puede definir la licencia que más le interese en apenas tres pasos, una vez definida, el autor tendrá a su disposición tres versiones de la licencia: una versión legible para cualquier persona (Commons Ded), una segunda versión especializada en términos legales (legal code) y, finalmente, una tercera que pueda ser interpretada digitalmente por aplicaciones y motores de búsqueda que identifiquen la autoría y los términos de licencia.

    En segundo lugar comprobamos que, a diferencia de licencias como la GNU, la Creative Commons extiende su cobertura a disciplinas como la música, video, imágenes, texto e incluso educación.

    Finalmente, Creative Commons ha encontrado traducción legal en un número grande de países, en los que incluimos España y Catalunya, gracias a la colaboración desinteresada de la Universidad de Barcelona, la creación de una licencia a partir de Creative Commons se fundamenta en la combinación de cuatro condiciones: la atribución, la no comercialidad, la negación a trabajos derivados y, cuarto, el permiso a trabajos derivados (Share-Alike), siempre y cuando la obra derivada use y respete la misma licencia que el original.

    Pero siempre manteniendo dos condiciones previas: afirmar la autoría de la obra y el permiso a terceros a copiar y distribuir la obra con los cuatro condicionantes antes comentados.

    Permitir, sin lugar a dudas, que la cultura y la circulación de las ideas no esté sujeta a sólo intereses comerciales y revivir el concepto de creatividad como una actuación derivada, no única y genial.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 
Nombre: Imagen1.jpg 
Visitas: 9077 
Tamaño: 62.9 KB 
ID: 93589   Clic en la imagen para ver su versión completa. 
Nombre: Imagen3.jpg 
Visitas: 8571 
Tamaño: 88.5 KB 
ID: 93590   Clic en la imagen para ver su versión completa. 
Nombre: Imagen4.png 
Visitas: 9000 
Tamaño: 101.2 KB 
ID: 93591   Clic en la imagen para ver su versión completa. 
Nombre: imagen5.png 
Visitas: 10222 
Tamaño: 27.2 KB 
ID: 93596  

    Imágenes adjuntadas Imágenes adjuntadas  
    Última edición por 3dpoder; 04-02-2009 a las 13:16

  2. #2
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Que pasa en este país tecnologías-libres-para-síntesis-imagen-digital-tridimensional

    ¿Qué pasa en este país?
    este artículo recoge una serie de impresiones personales sobre el mundo laboral del programador en España. Las directivas que en el se recogen no son evidentemente aplicables como norma. La intención del texto es la de denunciar una serie de aspectos a mi juicio profundamente perjudiciales para el sector.

    Como se menciona en the mythical man-month: recogiendo patatas el individuo más productivo puede tener una relación de 2, como mucho 3 a 1 contra el menos productivo. En el mundo del desarrollo de software, la relación entre el más productivo y el menos productivo puede ser de 10 e incluso 100 a 1. Sin embargo, el más productivo aceptara trabajar sólo por el triple, esta ventaja que en principio tienen los empresarios pasa totalmente desapercibida en este país. Hay ya unos cuantos programadores que pueden ser productivos. También hay unos pocos programadores brillantes que podrían, en el entorno adecuando, generar verdaderas fortunas. Pero el programador no es una persona respetada en el mundo laboral. Ni siquiera se le respeta en la calle, uno se encuentra programadores cobrando menos que los del servicio de limpieza. No es que estos deban cobrar menos, es que los programadores deberían cobrar más. Además, nos da una idea de cómo valora la empresa el papel del programador. Al fin y al cabo, en la industria del software son los programadores los que crean riqueza de la nada. Es difícil entender como pueden tener una valoración tan baja. También es sorprendente que los propios programadores lo consientan, todos sabemos lo que supone reemplazar a un programador en medio de un proyecto. Puede significar un retraso de 6 meses en el mejor de los casos. El atasco completo del proyecto en el peor de ellos. Pero nadie en la dirección de las empresas se da cuenta. Es más, ni siquiera les importa. En España el 90% de las empresas se dedican a vender humo o a hacer proyectos con la administración cuyo buen fin preocupa a muy pocos. No es de extrañar que de aquí no salga ninguna empresa espectacular como Skype, Keyhole, o no digamos ya, google. Debe existir algún motivo.

    Trabajando como programador uno se enfrentará a un montón de iluminados visionarios que, sin tener ningún conocimiento, proponen cada día ideas como ¿y si hacemos un sistema de telefonía por internet? Normalmente estos ataques de creatividad ocurren al día siguiente de que salga por la tele la noticia de que alguien ha hecho lo mismo en alguna parte. A los dos años cuando la idea esté ya implantada podrán decir eso se me ocurrió a mí, pero nadie me apoyó, todo este entorno frena a cualquier programador de provecho de hacer nada útil ni revolucionario. A diferencia que en otros países, las empresas de tecnología no están dirigidas por personal técnico. Están dirigidas por gente de mucho dinero o tipos que ganaron algo de dinero haciendo otra cosa y ahora quieren apuntarse al carro. Nunca saldremos del agujero tecnológico hasta que esto cambie, en mi corta experiencia como programador he ido desarrollando fuertes alergias a prácticas comunes. Como ahora están de moda los estatutos, he decidido empezar a redactar un tutorial de los programadores. Para generar polémica, todo estatus tiene que tener un preámbulo incendiario que reclame derechos de nación o algo similar. Como no está el horno para bollos, hemos de maquillarlo un poco para que no suene muy radical.

    El preámbulo propuesto es el siguiente:
    «el mundo de la programación es una realidad constitucional».

    Dicho esto procedemos con el primer y más importante artículo:
    artículo 1: toda persona incapaz de realizarlas tendrá, terminantemente prohibido, tener ideas.
    Lleva un poco de reflexión darse cuenta de cuanto beneficio haría una norma como ésta. Primero invito a pensar si podría en algún caso hacer daño a la sociedad. ¿ha habido alguna vez una buena idea tecnológica o científica que surgiera de mano de alguien incapaz de desarrollarla?
    Aunque así fuera (que no es), la idea se hubiera echado a perder por la mala gestión de la misma. Resulta impensable que el jefe de la oficina de patentes donde Einstein trabajaba se presentara un día en el trabajo diciendo:
    Albert, he pensado que quizás la velocidad de la luz es una constante universal no sujeta a la medición relativa que sufren todas las demás mediciones. Las consecuencias pueden ser muy interesantes, podemos llegar incluso a la energía nuclear. Quiero que dediques todos los días un par de horas a desarrollar esto. Tiene que estar listo en seis meses.
    Los hitos del proyecto son:
    1905 -relatividad especial (un primer boceto de la idea).
    1915 -relatividad general (desarrollo matemático y.

    Generalización).
    1950 -centrales nucleares.

    Es mucho más probable que lo que ocurriera fuera algo como:
    Albert, el futuro es desarrollar unas nubes tan densas que la gente pueda volar en ellas y viajar prescindiendo del avión, que es un invento obsoleto. En dos años ya se habrá superado y no podemos quedarnos atrás. Así que deja esos papeles que garabateas todos los días y ponte con esto ya.
    las ideas son mucho más que una simple frase. En el mundo de la programación no cuenta sólo la idea, sino la idea de cómo llevar a cabo la idea. A los fundadores de Google no se les ocurrió simplemente hacer un buscador. Eso lo hacía todo el mundo por aquel entonces. Se les ocurrieron ideas para hacer uno mucho mejor que el de los demás. Y eso nunca podría habérsele ocurrido a un tipo que reunió unos millones vendiendo camisetas y ahora quiere revolucionar la informática (porque el lo vale), un día el jefe llega y dice vamos a hacer un programa de CAD que desbanque al AutoCAD. Uno se queda esperando por lo que debería venir a continuación. A ver cuáles son esas ideas para un programa de CAD revolucionario. Pero no las hay, eso ya lo hará el programador que contratemos. Al final, si a caso el jefe nos dirá donde colocar los botones de dibujado para que el programa sea bueno de verdad, este tipo de casos tendrían que conllevar incluso penas de cárcel. Es por ello que el artículo 1 es fundamental. Las prácticas como ésta llevan a un total desperdicio de tiempo, dinero, paciencia y todo tipo de recursos, vamos ahora con el segundo artículo de nuestro estatuto:
    artículo 2: el uso del PowerPoint y herramientas similares será perseguido y castigado.
    Admito que puede parecer demasiado radical. Cierto es que, a la hora de exponer algo a un público, unas transparencias pueden venir bien. Pero en los últimos años, estas herramientas se han convertido en el único objetivo de trabajo de un montón de desorientados. Es uno de los casos donde el medio acaba convirtiéndose en el propio fin. ¿a cuantas presentaciones vacías de contenido hemos de asistir para darnos cuenta?
    Una herramienta que permite a cualquiera hacer una presentación consigue implantar la creencia de que todos tienen algo importante que decir, ahora mismo la relación señal/ruido en cuanto a presentaciones es baja en todas partes. Montones de personas en esta industria llegan cada día al trabajo para abrir inmediatamente el PowerPoint y ponerse a hacer la presentación de mañana. Vendemos humo, pero vendemos humo con colorines, animaciones, gráficas dinámicas y sobre todo, mucha negrita e imágenes del catálogo business, nadie que quiera decir algo necesita esa parafernalia. Siempre se han hecho diapositivas, pero se hacían de otra forma, y no se hacía una presentación cada dos días. Lo que estos programas han creado, es una cultura del PowerPoint. El lector puede estar pensando ahora que el hecho de que un cuchillo pueda usarse para matar, no quiere decir que haya que prohibir los cuchillos. Efectivamente, pero si nos fijamos en el artículo 2, nadie bien de prohibir las herramientas. Se trata de perseguir y castigar su uso. ¿cuántas veces hemos querido decir ese gráfico no dice nada, es más, causa confusión, vas a ir a la cárcel chaval? Que ocurra alguna vez es aceptable, pero no que ocurra todos los días, miles de veces, en todas las empresas al mismo tiempo.

    Y finalmente vamos con el tercer y último artículo por ahora:
    artículo 3: se prohíbe el desarrollo de ningún programa que no sea susceptible de ser programado por una sola persona.
    Esto no quiere decir que no puedan trabajar varios en él. Pero un programa que no pueda ser hecho por un sólo programador esta, sencillamente, mal pensado. ¿Qué pasa con los grandes sistemás complejos? Antiguamente se tendía al desarrollo de grandes programas monolíticos que tenían un montón de funcionalidades. Enormes sistemas de gestión que controlaban hospitales enteros, sistemas operativos que lo controlaban todo con el mismo código.

    Ahora, la tendencia en el mundo ha cambiado. Esos grandes sistemas se desglosan en pequeños programas. Los sistemas de gestión se componen ahora de muchos servicios distintos que se interconectan usando múltiples protocolos. Los programás complejos de por si se reducen al mínimo de funcionalidades y se dejan puertas a la integración con otros programas que hacen otras cosas, con esta política de desarrollo, sin duda mejor que la otra, se consiguen programas que hacen unas pocas cosas muy bien. Los programas son más pequeños y por tanto más sostenibles. Incluso los sistemas operativos se dividen ahora en módulos totalmente independientes encargados de tareas específicas. Los clientes prefieren también estas soluciones, porque.

    Cuando quieren añadir algo nuevo al sistema no tienen que reemplazarlo todo. Pueden comprar el sistema de visualización de esta empresa, la gestión de bases de datos de esta otra y el interfaz web de la de más, allá, pero aquí los empresarios no parecen haberse dado por enterados. Salvo unas pocas muy buenas, la mayoría de pequeñas empresas que quieren crecer se obsesionan con sacar un programa que lo haga todo. Tiene que servir para hablar por teléfono, para grabar CD, para gestionar los clientes, para mandar un mail, etc. Sólo las grandes compañías parecen adaptarse a este nuevo modelo de desarrollo. Pero es que en España, éstas llevan tiempo haciendo meras tareas de fontanería informática. En las pequeñas que se dedican a nuevos proyectos se cometen muchos errores. Incluso, aunque parezca que los productos que se plantean son muy especializados, al final se le pide al programador que implemente todo tipo de funcionalidades que en ese programa no tienen ningún sentido. El resultado son programas que hacen un montón de cosas, pero ninguna bien, hay unos pocos ejemplos de empresas en España que triunfan con productos específicos y de calidad. No sólo por el personal de calidad, además tienen muy claro el objetivo del desarrollo. Por desgracia empresas así no abundan. Pero con pocas que sean, se demuestra que no es imposible, aquí acaba este primer boceto del estatus del programador. Aunque son sólo tres directivas, son cruciales para arreglar el desastre local que sufrimos. Todo el mundo está invitado a intentar completar la lista de artículos en caso de que me haya olvidado de algún aspecto, ahora llegamos a la pregunta final. ¿Qué hacer? Lo primero abandonar ese tipo de empresas y convertirnos en su competencia. Muchos programadores deciden muy acertadamente ponerse a trabajar por cuenta propia. No todo el mundo se atreve debido a diversas razones. Entre ellas hay dos muy comunes.

    La primera es el miedo a perder la tranquilidad de que vas a cobrar a final de mes. Pero esta tranquilidad no es más que una ilusión. Si en un momento dado la empresa deja de funcionar dejaras de cobrar. Y el problema es que no puedes hacer nada al respecto. Es decir, es posible, muy posible, que un grupo de inconscientes estrelle la empresa contigo dentro. Cuando sólo dependes de ti mismo o de otros como tú al mismo nivel, sí se puede hacer algo. Depende sólo de que hagas las cosas bien, la segunda es una extraña concepción de la moral. Hay gente que considera incorrecto o desleal irse de una empresa para ir a hacerle la competencia. Hay que deshacerse de esa barrera imaginaria. La empresa no dudaría ni un segundo en prescindir de tus servicios si ya no te necesita. Tampoco veras un céntimo de la riqueza que hayas podido generar más, allá de tu mísero sueldo. No sólo se debe hacer por uno mismo, los programas merecen ser bien hechos, por desgracia uno no puede decirle a su jefe que va a ser 10 veces más productivo y que quiere cobrar por lo tanto diez veces más. Tomo prestada esta frase de Paul Graham. Entre sus ensayos podemos encontrar un montón de consejos a la hora de lanzar iniciativas de empresa. Al contrario que yo, el es un hombre con experiencia en este campo. Su colección de bombazos empieza en el 95 con un sistema de comercio electrónico que vendió a Yahoo y que le hizo inmensamente rico, obviamente no estamos hablando del típico que hizo dinero vendiendo ADSL y que ahora quiere hacer programas. Estamos hablando de un gran programador, la falta de ambición es otro gran problema local. Nadie piensa ni de lejos que puede llegar a hacerse inmensamente rico con un producto. Algunos lo dicen, pero ni ellos ni los que les rodean creen realmente en ello. La gente aspira a ganar un poco de dinero para comprar un BMW y poder presumir en el barrio como hombre de negocios, como advertencia a todo aquél que vaya a salir al mundo laboral de la programación como asalariado, aquí viene lo que encontrara:
    salarios bajos. Dependiendo de la región, el sueldo de principiante va desde los 15000 a los 24000 euros al año. Teniendo ya cierta experiencia se puede llegar con suerte a los 30000. A modo de comparación, en Inglaterra, un sueldo de programador raso es de 50000 libras. Unos 80000 euros. Al igual más o menos que el resto de Europa. No mencionamos ya los sueldos de Estados Unidos por no deprimir al lector. La excusa del precio de la vida ya no es valida. Aunque un DVD cueste más que aquí, en Alemania se puede alquilar un piso por 300 euros.
    régimen de desprecio. Generalmente se apila a los programadores en algún cuarto apartado. Si viene alguien importante, o simplemente, el gerente de otra empresa, en caso de que los llegue a ver será a modo de y estos son los programadores. Igual que si se tratara de una jaula de monos. Muchas veces he querido colocar un cartel de no den de comer a los programadores. Este trato se debe a muchos motivos. Pero de todos ellos, el más sangrante es el miedo. El miedo a que alguien de fuera acabe haciendo una oferta a alguno de los programadores para que se vaya con él.
    total anonimato. No tienes derecho a ningún reconocimiento externo por tu trabajo. El producto es de la empresa. Mejor dicho, del presidente de la empresa. Nadie vendrá a felicitarte por lo que has hecho y mucho menos veras un céntimo de los beneficios. En este país hay empresarios que serían capaces de poner a Miguel Ángel a esculpir, hacer millones con sus esculturas y pagarle una miseria de sueldo. Porque al fin y al cabo, el mármol que usa es mío. ¿te gustan las esculturas que hace mi empresa?
    si no nos queda otro remedio que trabajar para una de estas empresas porque haya que pagar una hipoteca o cualquier cosa, mi consejo es el siguiente: jamás regalar ni una sola idea a la empresa. Si se te ocurre cualquier forma de hacer mejor las cosas, lo haces en casa. Lo desarrollas por tu cuenta y ya lo venderás, lo darás como código libre o lo que apetezca. Ya que nos tratan como a ganado, actuemos como ganado. No hacer nada que no se ordene explícita y detalladamente, no ha sido mi intención mostrar al programador como un individuo extremadamente valioso ni superior al resto de los mortales. El énfasis no se debe a una especial estima por la profesión sino al profundo agujero en el que se haya hundida. Pero existe el riesgo de que como pasó con otros colectivos marginados, se produzca un efecto rebote hacia la sobrevaloración. Convendría no esperar a que la herida fuera demasiado profunda o que todos hayan emigrado hacia otros países. Este mal no es además exclusivo de la industria del software. Todos conocemos el fenómeno de la fuga de cerebros que sufren todas las disciplinas intelectuales en España. Este caso es sólo uno más de la lista.
    referencias.
    o ensayos de Paul Graham:
    http://www.paulgraham.com/articles.html.
    o sobre PowerPoint: http://www.norvig.com/gettysburg/
    http://www.unc.edu/~healdric/PowerPoint.html.

  3. Gracias Pepius Agradece este post
  4. #3
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Yafray de la y a la y reflexiones sobre los proyectos de software libre

    Yafray de la y a la y - Reflexiones sobre los proyectos de software libre.

    cuando uno oye hablar del software libre por primera vez le asaltan un montón de dudas. ¿quién desarrolla ese software? ¿por qué se llama libre y no gratis? ¿gratis? ¿por qué se desarrolla y cómo? Si los roedores pudieran roerrobles, ¿cuántos robles roería un roedor? Intentaremos contestar a estas preguntas en el presente documento, siguiendo el ciclo de vida del proyecto en el que me he visto involucrado (en el sentido más amplio de la palabra) en los últimos años: Yafray.

    Yafray. Bajo este nombre de lavavajillas se esconde yet another free raytracer, un raytracer gratuito y multiplataforma, creado por mi gran amigo Alejandro Conty Estévez. Un raytracer es un programa que se vale de una técnica llamada Raytracing para generar imágenes fotorrealistas con un computador, su desarrollo comenzó en Julio de 2002. Inicialmente se trataba de un raytracer básico para el sistema operativo GNU/Linux. Posteriormente se le fueron añadiendo funcionalidades, una de las más importantes fue el cargador de escenas en un formato propio utilizando xml. De este modo fue posible la exportación de escenas desde programas de modelado para la posterior generación de la imagen utilizando Yafray, este hecho produjo un gran interés en comunidades internacionales relacionadas con el mundo de los gráficos tridimensionales (elysiun -ahora Blender artists, Blender.org, Wings3d.org, entre otras), creándose programas que permitían la exportación de escenas desde los modeladores más importantes dentro del software libre como son Blender y Wings3d, como fruto de ese interés se amplió el desarrollo de Yafray a otros sistemas operativos aparte de GNU/Linux. Primero se llevó a cabo la traducción para sistemas operativos Windows. De manera casi simultanea se desarrollaron versiones para Mac OSX, actualmente, Yafray se basa en un modelo de plugins, en el cual el motor de render esta contenido en una librería separada del cargador xml. De esta manera, es relativamente sencillo construir cargadores o invocarlo desde otros programas. A su vez, el motor de render (librería principal) es el encargado de cargar, en tiempo de ejecución, los plugins relativos a los métodos de iluminación (Shaders, luces, etc). Esta modularidad ha facilitado su integración con Blender, en un principio todo el trabajo de desarrollo recaía sobre Alejandro Conty. A medida que pasaba el tiempo y el interés por Yafray aumentaba, aparecían nuevos desarrolladores y colaboradores. Lo que empezó como un proyecto personal para pasar las horas del verano de 2002, se acabó convirtiendo en un largo proyecto de software libre que involucra a programadores de todo el mundo y con una comunidad de cientos de usuarios, antes de entrar de lleno en el proyecto Yafray, me gustaría sentar las bases del modelo de software libre, sin pretender un análisis exhaustivo sobre el ciclo de vida del mismo. No hablaré aquí sobre herramientas de ingeniería.

    O de desarrollo de una manera profunda. El objetivo de este documento, que es el apoyo a la charla del mismo nombre, es introducir al lector en la problemática del software libre, reflexionando sobre las motivaciones de sus desarrolladores, entendiendo el funcionamiento de las comunidades que orbitan alrededor de estos proyectos y sopesando las ventajas e inconvenientes de este modelo, existen multitud de estudios a este respecto mucho más precisos que este, en su mayoría elaborados con rigor científico por personas más capacitadas, pero no dejes de leer aún. Aunque no vayas a encontrar aquí una fuerte base teórica de ingeniería del software (libre), puede que te resulte interesante la experiencia del desarrollo del Yafray, ¿cómo se nutre de aportaciones desinteresadas y sobre todo, ¿cómo esta comunidad de desarrolladores y usuarios se apoya en otras comunidades mayores.

    software libre.

    Es de suponer que alguien que le sobre la evolución de proyectos de software libre sabe a qué se refiere ese tipo de software. Pero como todos hemos sido lectores despistados en alguna ocasión, hay que comentar una vez más que el software libre, según la definición del proyecto GNU, es aquel software que ofrece al usuario las siguientes libertades:
    libertad 0: la libertad de usar el programa, con cualquier propósito.

    Libertad 1: la libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades. El acceso al código fuente es una condición previa para esto.

    Libertad 2: la libertad de distribuir copias, con lo que puedes ayudar a tu vecino.

    Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. El acceso al código fuente es un requisito previo para esto.
    en internet se puede encontrar una inmensa cantidad de literatura, documentación y faq sobre el esta filosofía. El lector que no esté familiarizado con el término debería detenerse en este punto y buscar información al respecto, no sólo para poder seguir con fluidez este documento, sino porque la idea que subyace bajo el concepto es digna de ser meditada. No hay que olvidar que dicha idea se ha convertido para muchos en toda una forma de vida, quizás el software libre parezca una idea actual, una vuelta de tuerca a las protestas contra el sistema. Incluso en EU han llegado a tachar de actitudes comunistas los principios en los que se basa. Pero realmente, aunque estemos acostumbrados al modelo de software propietario (comercial), en los inicios de la informática era imposible concebir el software como un producto aislado, susceptible de ser vendido.

    Las licencias por el uso del software y las restricciones para ejecutarlo o copiarlo, sencillamente no existían, en aquellos tiempos los programas y las máquinas que los ejecutaban estaban íntimamente ligados. No existía el concepto de programa como pieza separada que se tiene hoy.

    Tampoco había usuarios domésticos, sino que las personas que ejecutaban los programas solían tener muchos conocimientos de programación y por lo general eran científicos e ingenieros, entre estos usuarios expertos, lo normal era intercambiar y mejorar los programas, compartiendo sus modificaciones, que a veces recibían el nombre de hacks (de ahí la palabra hacker, tan mal utilizada en los últimos tiempos), uno de aquellos usuarios expertos era Richard Mathew Stallman (a veces nombrado por el acrónimo RMS, basado en su nombre de usuario en los computadores del mit), un personaje a la vez genial y controvertido, imprescindible para comprender el software libre, este físico, graduado en 1974 en Harvard, trabajaba en el laboratorio de inteligencia artificial del instituto de tecnología de Massachusetts (mit) desde 1971.

    En su laboratorio disponían de una impresora que tenía ciertos problemas con la alimentación de papel, de manera que, se atascaba habitualmente y no había otra forma de descubrirlo que desplazarse hasta dónde estaba, Richard se puso en contacto con los fabricantes, con la idea de modificar el software que controlaba la impresora y hacer que enviase una señal al atascarse, de forma que no se perdiese tanto tiempo de trabajo, sin embargo, estos se negaron a facilitarle el código fuente, que son como los planos de un programa y que hace posible modificar su comportamiento.

    Este episodio le contrarió mucho e hizo que terminase de consolidarse su idea de que el código fuente de los programas tenía que estar accesible para todo el mundo, movido por este deseo, abandonó el mit en enero de 1984, para iniciar el proyecto GNU.

    GNU es un acrónimo recursivo qué significa GNU not Unix, GNU no es Unix, en referencia a que el proyecto busca desarrollar un sistema operativo de tipo Unix, pero libre, en sus comienzos, el proyecto GNU se concentró en desarrollar las herramientas necesarias para construir un sistema operativo, como editores y compiladores y en las utilidades básicas para la gestión del sistema.

    Sobre 1985, Richard Stallman creó la licencia GPL (general public license) como mecanismo para proteger el software libre, sustentado sobre el concepto de copyleft. Mediante este concepto, se le da la vuelta a la idea de copyright, definiendo las cuatro libertades mencionadas anteriormente, uno de los conceptos que se suelen mezclar con el software libre (reconozco que me sucede habitualmente) es el de open source (código abierto). Podemos considerarlo como un error justificable, ya que en la práctica el software open source y el software libre comparten las mismas licencias. Aunque la FSF (free software foundation) opina que el movimiento open source es filosóficamente diferente del movimiento del software libre, apareció en 1998 con un grupo de personas, entre los que cabe destacar a Eric s. Raymond (autor de la catedral y el bazar y de fetchmail)y Bruce Perens (padre del proyecto Debian), que formaron la open source initiative (OSI). Buscaban darle mayor relevancia a los beneficios prácticos del compartir el código fuente, e interesar a las principales casas de software y otras empresas de la industria de la alta tecnología en el concepto.

    Estos defensores ven que el término open source evita la ambigüedad del término inglés free en free software, mucha gente reconoce el beneficio cualitativo del proceso de desarrollo de software cuando cualquiera puede usar, modificar y redistribuir el código fuente de un programa. Esta es la idea subyacente de la obra de Raymond, la catedral y el bazar, que analizaremos más adelante. El movimiento del software libre hace especial énfasis en los aspectos morales o éticos del software, viendo la excelencia técnica como un producto secundario Richard se puso en contacto con los fabricantes, con la idea de modificar el software que controlaba la impresora y hacer que enviase una señal al atascarse, de forma que no se perdiese tanto tiempo de trabajo, sin embargo, estos se negaron a facilitarle el código fuente, que son como los planos de un programa y que hace posible modificar su comportamiento. Este episodio le contrarió mucho e hizo que terminase de consolidarse su idea de que el código fuente de los programas tenía que estar accesible para todo el mundo, movido por este deseo, abandonó el mit en enero de 1984, para iniciar el proyecto GNU.

    GNU es un acrónimo recursivo qué significa GNU not Unix, GNU no es Unix, en referencia a que el proyecto busca desarrollar un sistema operativo de tipo Unix, pero libre, en sus comienzos, el proyecto GNU se concentró en desarrollar las herramientas necesarias para construir un sistema operativo, como editores y compiladores y en las utilidades básicas para la gestión del sistema. Sobre 1985, Richard Stallman creó la licencia GPL (general public license) como mecanismo para proteger el software libre, sustentado sobre el concepto de copyleft. Mediante este concepto, se le da la vuelta a la idea de copyright, definiendo las cuatro libertades mencionadas anteriormente, uno de los conceptos que se suelen mezclar con el software libre (reconozco que me sucede habitualmente) es el de open source (código abierto).

    Podemos considerarlo como un error justificable, ya que en la práctica el software open source y el software libre comparten las mismas licencias. Aunque la FSF (free software foundation) opina que el movimiento open source es filosóficamente diferente del movimiento del software libre, apareció en 1998 con un grupo de personas, entre los que cabe destacar a Eric s. Raymond (autor de la catedral y el bazar y de fetchmail)y Bruce Perens (padre del proyecto Debian), que formaron la open source initiative (OSI). Buscaban darle mayor relevancia a los beneficios prácticos del compartir el código fuente, e interesar a las principales casas de software y otras empresas de la industria de la alta tecnología en el concepto. Estos defensores ven que el término open source evita la ambigüedad del término inglés free en free software, mucha gente reconoce el beneficio cualitativo del proceso de desarrollo de software cuando cualquiera puede usar, modificar y redistribuir el código fuente de un programa.

    Esta es la idea subyacente de la obra de Raymond, la catedral y el bazar, que analizaremos más adelante. El movimiento del software libre hace especial énfasis en los aspectos morales o éticos del software, viendo la excelencia técnica como un producto secundario deseable de su estándar ético. El movimiento open source ve la excelencia técnica como el objetivo prioritario, siendo el compartir el código fuente un medio para dicho fin. Por dicho motivo, la FSF se distancia tanto del movimiento open source como del propio término.

    ingeniería del software.

    La ingeniería de software es la rama de la ingeniería que crea y mantiene las aplicaciones de software aplicando tecnologías y prácticas de las ciencias computacionales, manejo de proyectos, ingeniería, el ámbito de la aplicación, y otros campos, este término es relativamente nuevo, ya que no apareció hasta finales de los 60, cuando ya existían grandes compañías informáticas. En aquella época, una serie de estudios sobre desarrollo de software llegaron a la conclusión de que existía una crisis del software. Esta crisis tiene los siguientes síntomas:
    el software no es fiable y necesita de un mantenimiento permanente.

    El software se entrega muy a menudo con retrasos y con unos costes superiores a los presupuestopuestados.

    A menudo el software es imposible de mantener, carece de transparencia y no se puede modificar ni mejorar.

    Como solución a esta crisis surge la idea de aplicar un proceso de ingeniería para el desarrollo de software. Según la definición del explorer, la ingeniería del software es un enfoque sistemático y cuantificable al desarrollo, operación (funcionamiento) y mantenimiento del software: es decir, la aplicación de la ingeniera del software, la ingeniería, no sólo la del software, pretende aplicar con criterio el conocimiento matemático y científico obtenido a través del estudio, la experiencia, y la práctica. En la mayor parte de las ramas de la ingeniería es posible cuantificar con exactitud plazos, recursos humanos, costes y técnicas que lleven a cabo un determinado producto. Pero cuando ese producto se trata de software surgen los problemas, ya que aún no se han encontrado métodos de desarrollo y técnicas que permitan producir software de gran calidad con unos recursos limitados, a pesar de que la ingeniería del software ha conseguido notables éxitos, no es menos cierto que no ha sido capaz de superar la crisis del software. Hay quien piensa que más que de una crisis, estamos hablando de una enfermedad crónica. Es una reflexión plausible, más aun viendo como en los últimos años se han retomado viejos caminos bajo nuevas fórmulas de ingeniería. Quién sabe, quizás sean los nuevos modelos de desarrollos que permitan al software librarse de esta crisis, hasta hoy irresoluble.

    ingeniería del software tradicional: software propietario.

    Dentro del modelo propietario, la propia forma de desarrollar software ha sido quien ha llevado a la ingeniería del software a la crisis. No es una afirmación a la ligera ya que, como afirma Gregorio robles, el formato binario del software, la opacidad en los modelos de negocios, los secretos y barreras comerciales se encuentran entre las principales causas que han imposibilitado estudios cuantitativos y cualitativos a gran escala del software cuyos resultados pudieran ser verificados sistemáticamente por equipos de investigación independientes, es paradójico ver cómo el propio modelo de desarrollo destinado a evitar que un software robusto y potente pueda ser aprovechado por la competencia, impide la consecución del objetivo primordial: conseguir un software robusto y potente.

    ingeniería del software libre.

    No hay que entender al software libre como un competidor directo sobre el software propietario. Hay diferencias de base, como las razones motivacionales, casi filosóficas, de los desarrolladores. Tampoco se puede comparar a nivel económico, ya que el software libre sigue sus propias pautas de mercado y desde luego, no suele coincidir con el software propietario en la forma de obtener beneficios. Y lo que es más importante, la forma de producir software es totalmente diferente, la ingeniería del software no es ajena a todo esto y desde hace unos cinco años viene estudiando este nuevo modelo de desarrollo. En un principio podemos pensar que la propia naturaleza del desarrollo de software libre va a hacer fracasar cualquier intento de aplicación de ingeniería. Por ejemplo, si en el caso propietario la medición de costes es difícilmente cuantificable, en el caso del software libre tendremos que acudir a magos y hechiceros para que nos resuelvan la papeleta. Sin embargo, la transparencia en todos los procesos, la disponibilidad del código y en la mayor parte de los casos de todas las versiones de desarrollo, permiten que podamos analizar profundamente cualquier proyecto.

    Enfermedad crónica. Es una reflexión plausible, más aun viendo como en los últimos años se han retomado viejos caminos bajo nuevas fórmulas de ingeniería. Quién sabe, quizás sean los nuevos modelos de desarrollos que permitan al software librarse de esta crisis, hasta hoy irresoluble, ingeniería del software tradicional: software.

    Propietario.

    Dentro del modelo propietario, la propia forma de desarrollar software ha sido quien ha llevado a la ingeniería del software a la crisis. No es una afirmación a la ligera ya que, como afirma Gregorio robles, el formato binario del software, la opacidad en los modelos de negocios, los secretos y barreras comerciales se encuentran entre las principales causas que han imposibilitado estudios cuantitativos y cualitativos a gran escala del software cuyos resultados pudieran ser verificados sistemáticamente por equipos de investigación independientes, es paradójico ver cómo el propio modelo de desarrollo destinado a evitar que un software robusto y potente pueda ser aprovechado por la competencia, impide la consecución del objetivo primordial: conseguir un software robusto y potente, ingeniería del software libre.

    No hay que entender al software libre como un competidor directo sobre el software propietario. Hay diferencias de base, como las razones motivacionales, casi filosóficas, de los desarrolladores. Tampoco se puede comparar a nivel económico, ya que el software libre sigue sus propias pautas de mercado y desde luego, no suele coincidir con el software propietario en la forma de obtener beneficios. Y lo que es más importante, la forma de producir software es totalmente diferente, la ingeniería del software no es ajena a todo esto y desde hace unos cinco años viene estudiando este nuevo modelo de desarrollo. En un principio podemos pensar que la propia naturaleza del desarrollo de software libre va a hacer fracasar cualquier intento de aplicación de ingeniería. Por ejemplo, si en el caso propietario la medición de costes es difícilmente cuantificable, en el caso del software libre tendremos que acudir a magos y hechiceros para que nos resuelvan la papeleta. Sin embargo, la transparencia en todos los procesos, la disponibilidad del código y en la mayor parte de los casos de todas las versiones de desarrollo, permiten que podamos analizar profundamente cualquier proyecto.

    Pero. ¿quienes son los miembros de las comunidades? Al hablar de comunidades de software libre nos suele venir a la cabeza un grupo de frikis discutiendo sobre Star Wars y las posibles consecuencias de enfrentar a Batman ya la masa. Es una injusticia que a las personas que amamos el software libre se nos encasille de esta manera, así que, es hora de desmitificar la leyenda. De todos modos, espero que quede claro que la masa patearía el culo a Batman, las comunidades de software libre son actualmente el objetivo de estudio de economistas, psicólogos y sociólogos. Se trata de una nueva forma de comunidad virtual, con reglas y jerarquías propias, y en muchos aspectos totalmente diferentes a las que conocemos en la sociedad tradicional. Saber quién forma parte de estas comunidades y cuáles son sus motivaciones es determinante para entender este movimiento.

    En el caso de los desarrolladores las incógnitas son aún mayores, debido a que en una sociedad de consumo es difícil entender por que las personas dedican su tiempo libre a una actividad, aparentemente costos a y con beneficios directos prácticamente nulos, hay una gran cantidad de recientes estudios científicos que intentan definir el perfil del desarrollador de software libre. En el documento introducción al software libre de la UOC podemos leer:
    «los desarrolladores de software libre son generalmente personas jóvenes. La media de edad está situada en torno a los 27 años. La varianza de la edad es muy grande, ya que el grupo predominante se encuentra en una horquilla que va desde los 21 a los 24 años, siendo la mediana - El valor que aparece con mayor frecuencia - Los 23 años.

    Es interesante observar cómo la edad de incorporación al movimiento de software libre tiene sus máximos entre los 18 y 25 años, siendo especialmente pronunciada entre los 21 y 23 años, lo que equivaldría a la edad universitaria. Esta evidencia contrasta con la afirmación de que el software libre es cosa principalmente de adolescentes, aunque su presencia es evidente (alrededor de un 20% de los desarrolladores tiene menos de 20 años). En definitiva, podemos ver cómo los desarrolladores suelen ser mayoritariamente veinteañeros (un 60%), mientras que los menores de 20 y los mayores de 30 se reparten apartes iguales el 40% restante.»
    en el mismo texto se hace referencia a otros estudios, en los que se llega a la conclusión de que la mayor parte de los desarrolladores, el 60%, tienen pareja e incluso un 16% tiene hijos. Con esto se acaba de desmoronar el mito del desarrollador de software libre como una persona adolescente y aislada, sin más conocimientos ni relación con el mundo exterior que los que llegan a través de su ordenador. El hecho de que el perfil del desarrollador coincida con el del universitario medio no debería chocarnos, a fin de cuentas, el movimiento del software libre tiene sus orígenes en ambientes universitarios. Richard Stallman recuerda su trabajo en el artificial intelligence lab del mit en los años setenta, cuando el software compartido se consideraba parte fundamental del proceso:
    «a nuestro software no lo llamábamos software libre, porque ese término aún no existía, pero es exactamente lo que era. Cuando gente de otra universidad o una empresa querían un programa para hacerlo compatible y utilizarlo, se lo prestábamos con mucho gusto. Si veías a alguien usar un programa desconocido que te interesaba, siempre podías pedir que te dejaran ver el código fuente para así poder leerlo, cambiarlo o desmontarlo para crear un nuevo programa.»
    sin embargo, otro de los grandes mitos se torna real en las encuestas. El software libre es desarrollado en su mayor parte por varones. La presencia de las mujeres en las comunidades varían entre el 1% y un 3%, compitiendo duramente por el protagonismo en las gráficas estadísticas con el error de muestreo, mientras que es relativamente sencillo saber la distribución de los desarrolladores según su edad, sexo y estatus social, averiguar las motivaciones por las cuales se emplea tiempo y, en ocasiones, dinero, resulta una tarea mucho más complicada. A veces los propios desarrolladores no tienen demasiado claras las motivaciones o, lo que es muy habitual, existe una conjunción de varios factores.

    Desde luego las encuestas nos sirven para eliminar posibles causas de participación, la primera causa en ser descartada es la económica porque, aunque es totalmente factible obtener beneficios económicos con el software libre, estos beneficios nunca se podrán obtener de una forma directa por la venta de licencias, como en el caso del software propietario. Aun así, el 50% de los desarrolladores encuestados afirman haber obtenido recompensa económica como causa de su implicación en un proyecto de software libre. Sin embargo, hay muchos que no lo ven tan claro. El propio Richard Stallman, ante la pregunta de que debe hacer un desarrollador de software libre para ganar dinero, suele responder: puede trabajar de camarero. Personalmente opino que quitando la palabra libre a la pregunta, la respuesta no varía, al ser preguntados por su ocupación profesional, los desarrolladores se definen como ingenieros software (33%), estudiantes (21%), programadores (11%), consultores (10%), profesores de universidad (7%), etc. Es interesante observar cómo, a pesar de que en el software libre no se aplican técnicas clásicas de ingeniería del software, hay tres veces más de personas que se definen a sí mismos como ingenieros de software antes que programadores.

    Una vez descartada la motivación económica se suele recurrir al ego de los desarrolladores. Si el lector estaba pensando en desarrollar software libre buscando la fama, puede ir olvidando la idea. En el documento: free/libre and open source software-ware: survey and study -part IV de Ghosh, Glatt, Krieger y robles (2002) se incluyó una pregunta, dirigida a los desarrolladores, para que indicaran a que colegas de una lista dada conocían, no necesariamente de manera personal. Los resultados fueron determinantes, la mayor parte de las personas conocían a pesos pesados del desarrollo, personas como Stallman, Icaza (Gnome)o Torvalds (Linux), eran conocidas por la práctica totalidad de los encuestados. Ni.

    Que decir tiene que son personas que se dedican a algo más que al desarrollo y que tienen grandes connotaciones filosófico-históricas dentro del mundo del software libre. Lo curioso es que otros grandes desarrolladores que venían en la lista, como Jörg Schilling (Cdrecord), Marco Pressenti Gritti (Galeón), Guenther Bartsch (Xine)o Bryan Andrews (apache Toolbox) tenían el mismo grado de popularidad que Martín Hofstede o Ángelo Roulini, personas inexistentes y hábilmente añadidas por los encuestadores para averiguar el margen de error de las encuestas, así que, amigo lector, olvide el desarrollo del software libre como vehículo para obtener fama y fortuna.

    A menos, claro está, que sea realmente bueno sirviendo copas y que su aspiración sea obtener la misma fama que las personas que no existen, aunque no sé han realizado estudios rigurosos, podemos afirmar que el proyecto Yafray encaja en los valores medios comentados anteriormente. Comparte una parte de su comunidad con Blender. Martine Albers de la Ámsterdam university realizó un estudio sociológico entre 746 personas de la comunidad de desarrolladores y usuarios de Blender, entre los que nos encontramos gran parte de los miembros del proyecto Yafray, se refrendaron algunos datos anteriormente comentados, como la baja participación femenina. No obstante, en el caso de Blender, la horquilla de edad es mayor (un 85% entre 15 y 35 años), sin duda debido a que existe una gran cantidad de usuarios adolescentes. Sin embargo, sólo un 21% de los encuestados reconocían haber desarrollado parte del software, un dato interesante es que el 91% de los encuestados se consideraban usuarios de Blender, lo cual supone que los desarrolladores son, además, usuarios del producto final, en cuanto a las motivaciones que llevan a las personas a formar parte de la comunidad de Blender, la respuesta obtenida fue la siguiente (ordenada de mayor a menor motivación):
    entretenimiento. Participar por diversión.

    Altruismo. Querer ayudar a la gente sin obtener nada a cambio.

    Ayuda a la comunidad. Participar porque estás comprometido con la comunidad.

    Reciprocidad. Querer ayudar a la gente y esperar recibir algo a cambio.

    Reputación. Participar para labrarse una reputación.

    Mejoras en el software. Participar por querer o necesitar mejoras en el software.

    Recompensa económica. Participar para ganar dinero.
    Como se ve, las motivaciones que se pueden considerar más egoístas son las que están menos presentes. De hecho, en el propio estudio se resalta la inesperada posición del altruismo entre las motivaciones.


    La catedral y el bazar
    .

    En 1997 Eric s. Raymond escribió el primer documento que trataba de describir las características de los modelos de desarrollo de software libre, comparándolas con el modelo propietario. El artículo, como hemos mencionado antes, se titula la catedral y el bazar y se ha convertido en uno de los más conocidos y criticados del mundo del software libre, hasta el punto que para algunos supone el comienzo de la ingeniería del software libre, Raymond establece una analogía entre el modo de construir las catedrales medievales y la forma de clásica de producir software. En ambos casos existe una distribución de tareas diferenciada, en la que el diseñador está por encima de todo, controlando el desarrollo de la actividad. También la planificación está totalmente detallada desde el principio, marcando las funciones de cada uno de los participantes y las técnicas que han de utilizar para llevar a cabo su labor, dentro de esta idea de catedral no sólo esta incluido el desarrollo clásico de software propietario. Raymond encuentra que proyectos de software libre como GNU o NetBSD están fuertemente centralizados, ya que unas pocas personas son las que realizan el diseño e implementación del software. Si una persona quiere entrar a formar parte del equipo de desarrollo, los supervisores del proyecto le asignan un rol y una tarea. Además, este tipo de proyectos tiene unas entregas del software releases espaciadas en el tiempo siguiendo una planificación bastante estricta.

    En contraposición al modelo de la catedral esta, según Raymond, el modelo del bazar. En un bazar no existe una autoridad que controle todos los procesos que se están desarrollando ni que realice una planificación de lo que ha de suceder. Los roles de los participantes son difusos, ya que los vendedores se pueden convertir en clientes, y viceversa, sin indicación externa, al contrario que en el modelo de la catedral, en el bazar hay entregas tempranas del software (reléase early). En el caso de Yafray, ¿cómo se ha dicho, se liberó desde prácticamente el primer momento. Esto suele motivar que aparezcan rápidamente personas que tenían el mismo problema (en el caso de Yafray, que querían desarrollar un raytracer)o que puedan estar interesadas en la solución (que necesitan lo que Yafray les puede ofrecer), las pruebas son, ¿cómo se ha comentado, una de las labores más pesadas en el desarrollo de software. Afortunadamente son un proceso altamente paralelizable. La reléase early de Yafray permitió que muchas personas se pusieran a probar el software simultáneamente, llevando así a cabo la fase de pruebas. Su uso aumentó drásticamente cuando Andrea carbone realizó la primera versión de Yable, un exportador de escenas desde Blender programado en Python. De este modo Andrea, usuario de Blender, se convirtió en desarrollador de parte del proyecto dentro del bazar Yafray, este tipo de relación en que todo el mundo puede aportar algo es altamente productiva. Los usuarios encuentran motivación en encontrar, notificar y corregir errores, ya que saben que su petición va a ser atendida casi inmediatamente. Además, existe cierta satisfacción personal por haber aportado algo, algo, así como un yo también he puesto mi granito de arena de cara al reconocimiento de la comunidad. De hecho, algunas comunidades se apoyan en una meritocracia, es decir, las decisiones más importantes las toman las personas que más aportan a la comunidad, el modelo del bazar, con frecuentes entregas del software, puede asustar a usuarios que buscan la estabilidad. Algunos proyectos, como Blender, mantienen ramas diferentes de desarrollo. Una más estable, en la que las nuevas funcionalidades sólo se añaden después de muchas pruebas, asegurándose que no repercuten en la estabilidad del producto final. Y otras experimentales como Tuhopou, The Evil Tree o la reciente rama orange, creada específicamente durante el desarrollo del corto Elephant dreams, pero el bazar no es solo aplicable a los desarrolladores. En ocasiones la vorágine del bazar intimida a nuevos usuarios, lo cuales pueden llegar a encontrar bruscos algunos comportamientos de los usuarios más antiguos. Este recelo de los veteranos de la comunidad suele ser debido a la repetición sistemática de los mismos errores por parte de los nuevos miembros.

    Como ejemplo de esto, en la tristemente extinta comunidad de usuarios de Blender hispanos, nicodigital, los nuevos usuarios realizaban las mismas preguntas de novato una y otra vez. Los usuarios más veteranos se cansaban de repetir las mismas respuestas continuamente. Se llegó a hacer famosa la frase ¡usa el buscador, en relación al poco uso que daban los novatos al buscador del foro para encontrar posibles respuestas a sus preguntas. Con el doble fin de evitar preguntas innecesarias por parte de los nuevos y motivar a los veteranos a contestar, el administrador del foro (Nicolás morenas, alias Caronte) creó un sistema de créditos. Los créditos se obtenían, entre otras formas, por visitar la web y contestar preguntas, mientras que se perdían por realizarlas. A los pocos meses se creó toda una sociedad basada en el intercambio de créditos. Es una lástima no haber podido seguir la evolución de este experimento, ya que la imposibilidad de mantenerse económicamente, junto con una serie de desavenencias, precipitaron el cierre de la comunidad, a pesar de la buenas intenciones en el modelo del bazar, las decisiones tienen que estar controladas. Raymond supone que todo proyecto de software libre ha de contar con un dictador benevolente, una especie de líder que generalmente coincide con el fundador del proyecto, para guiarlo reservándose siempre la última palabra en la toma de decisiones. Sobre el papel, esa persona ha de saber motivar y coordinar un proyecto, entender a los usuarios y desarrolladores, buscar consensos e integrar a todo aquel que pueda aportar algo al proyecto. Pero la realidad es que esa persona, ¿cómo queda dicho, suele ser el propulsor original de la idea. Por tanto es un desarrollador al que le apasiona producir software, pero que, habitualmente, se preocupa poco por los usuarios y las relaciones dentro de la comunidad. Este tipo de desarrolladores suele ver cómo una perdida de tiempo las labores de ingeniería social organizativa.

    Yafray: de la catedral al bazar organizado.
    Yafray ha seguido desde un principio el modelo de procesos en el software libre. Surge como un proyecto personal y la persona que lanza el desarrollo es la que realiza las labores de dictador, considerado por todos benevolente porque si no, nos pegara, inicialmente, en la primera etapa de liberación del código (versión 0.0.1), la página web de Yafray era un simple documento html de fondo blanco con letras negras. Contenía una explicación del proyecto, un par de imágenes y un enlace al código. Si Yafray hubiese sido una empresa, esta presentación tan pobre habría desencadenado un suicidio colectivo del departamento de marketing. Desafortunadamente, Yafray no pudo hacer este favor a la humanidad ya que era un proyecto de un estudiante de informática. Aprovecho la ocasión para saludar a los chicos de marketing de mi empresa.

    A pesar de esta puesta en escena tan austera, el proyecto tomó gran interés por parte de los usuarios de Blender, que, por aquel entonces no contaba con un motor de render de calidad. Este interés obligó a mejorar aquella web, incluyendo documentación extra y un foro para que los usuarios pudieran solventar sus dudas. Deberíamos reflexionar cómo una buena idea, en el momento adecuando, crece por si misma sin necesidad de envolverla en una nube de Bullshit dentro de extensas presentaciones de PowerPoint, ya hemos dado el primer paso de la catedral al bazar casi sin darnos cuenta. La necesidad de crear un foro de usuarios surge de la imposibilidad de Jandro para contestar a todos los correos de los usuarios, que emocionados con el nuevo raytracer no paraban de hacer preguntas. El arquitecto de la catedral pierde más tiempo en resolver dudas sobre el proyecto que en su desarrollo. La solución esta clara, permitir que la comunidad se comunique para que los usuarios más experimentados puedan ayudar a los nuevos, de manera casi simultanea al anuncio del proyecto, el hola Alfredo de Gref comenzó a aportar código, convirtiéndose en uno de los grandes impulsores del proyecto haciéndose responsable de la integración con Blender. Otros vinieron después, casi todas fueron pequeñas, pero importantes aportaciones. En poco más de un año Yafray contaba con una comunidad de usuarios grande, teniendo en cuenta el reducido ámbito del proyecto, en 2004, durante las jornadas boingboingblend, tuve la oportunidad de realizar una ponencia similar a esta. Entonces la situación de Yafray era bastante delicada. El proyecto estaba en crisis. Alejandro no tenía tiempo para dedicar al desarrollo, Alfredo estaba volcado en otros proyectos y no aparecían nuevos programadores. Por otra parte, la poca documentación que existía estaba desfasada y la web lleva años sin cambiar de aspecto. Mis conclusiones de entonces eran bastante pesimistas. El proyecto estaba en una situación de interbloqueo. Las pocas personas interesadas en colaborar, bien desarrollando código o documentando, no sabían cómo hacerlo porque la poca documentación existente era de mala calidad. Toda la información estaba en la cabeza de los desarrolladores, que precisamente carecían de tiempo para documentar. La pescadilla que se muerde la cola, el código no estaba libre de problemas. El diseño inicial, pensado para un pequeño raytracer ya no soportaba más parches para introducir las nuevas funcionalidades que los usuarios requerían. Eso llevó a Alejandro a pensar en empezar un nuevo diseño desde cero, mejor estructurado y con algoritmos de raytracer más avanzados. Para un programador interesado en colaborar era muy complicado ampliar el viejo código y el nuevo no era más que un esbozo.

    Con este panorama, las pocas personas que intentaban ayudar, al poco tiempo escapaban del desastre organizativo que era el proyecto. Necesitábamos más compromiso y para ello optamos por un arma infalible: la vergüenza pública. Durante aquellas jornadas de Barcelona, en mitad de la ponencia pedimos a ciertas personas que colaborasen con el proyecto y que se comprometieran allí mismo, cara a cara con otros miembros de la comunidad. La jugada no salió mal: apenas recibimos amenazas de muerte y conseguimos que Javier galán diseñase una nueva imagen para Yafray y su web, mucho más profesional, en mi opinión aquello fue clave para el estado actual de Yafray. Dos años después, la documentación esta creciendo gracias al ingente trabajo de Álvaro luna. Mathias Wein ha tomado las riendas del proyecto, introduciendo grandes mejoras al código original, mientras el nuevo rediseño (llamado Fryrender) va madurando. Quiero agradecer desde aquí a estas personas y a tantas otras que con su trabajo, sus mensajes en los foros y sus trabajos artísticos de calidad profesional están consiguiendo que Yafray crezca cada día más.

    desarrollo libre para el software libre.

    Hemos hablado de la cooperación de las comunidades en el desarrollo de proyectos de software libre, pero ¿cómo se comunican sus miembros? ¿Qué herramientas se utilizan para coordinar los esfuerzos? Afortunadamente la comunidad de software libre se retroalimenta y existen multitud de herramientas libres útiles para el desarrollo de software y la cooperación entre personas de todo el mundo, los foros y las listas de correo son el epicentro de las comunidades. De hecho, son la parte visible de la comunidad. Ambas herramientas permiten la comunicación y las dos comparten la idea de facilitar el envío de mensajes a todos los miembros. Su diferencia fundamental el sentido en el que viaja la información. En las listas de correo la información llega pasivamente a los usuarios, los mensajes enviados a la lista llegan a toda la comunidad. Sin embargo, en los foros son los usuarios los que se acercan a la información. Por esto, las listas se deberían utilizar para intercambiar información útil para todos sus destinatarios. Un ejemplo clásico es una lista para los desarrolladores, donde cada miembro envía un registro de sus modificaciones, en los foros, sin embargo, el usuario es el que decide leer o no un mensaje. Se dividen en secciones y cada usuario le sólo la que le interesa. La información esta ahí, sólo hay que ir a buscarla. Son una herramienta útil tanto para usuarios como para desarrolladores. No sólo se utilizan para resolver dudas sobre el uso de un software, sino que sirven para poner en contacto a los desarrolladores y los usuarios, una de las herramientas que está invadiendo la escena del software libre es el wiki. Del hawaiano wiki wiki, rápido, es una forma de sitio web en donde se acepta que usuarios creen, editen, borren o modifiquen el contenido de una página web, de una forma interactiva, fácil y rápida. Dichas facilidades lo convierten una herramienta efectiva para la escritura colaborativa. En el proyecto Yafray, la instalación de un wiki (una wiki para algunos (algunas para algunos/as)) le ha permitido salir de la penosa situación documental que se encontraba durante el último año. Se está redondeando una documentación completa y actualizada. Además, la wiki ha permitido que los usuarios pudieran traducir por sí mismos la documentación a otros idiomas, como el español, portugués o chino, en cuanto al desarrollo en sí, hay que decir que Yafray empezó siendo desarrollado con herramientas libres, desde el compilador GNU hasta el VIM con el que Jandro tecleó las primeras líneas. Actualmente el único software propietario que se utiliza es el compilador visual c Toolkit (la versión gratuita del compilador de Microsoft para Windows). Aunque inicialmente se utilizó el Cygwin como herramienta de compilación para Windows, la idea se abandono ya que la integración con Blender, usando Yafray como plugin, requería el uso del compilador de los de Redmond, en el momento en el que más de una persona aportaba código al proyecto se hizo necesario el uso de una herramienta para el control de versiones, cvs en el caso de Yafray. El cvs (concurrent versións system), implementa un sistema de control de versiones: mantiene el registro de todo el trabajo y los cambios en la desarrollo de un proyecto (de programa) y permite que distintos programadores colaboren. La mayor parte de los proyectos de software libre utilizan esta herramienta o la más avanzada subversión, para terminar este pequeño repaso por las herramientas de desarrollo quiero hacer una mención a las utilidades de tipo BugTracker, literalmente rastreador de errores. Se trata de una especie de foro (en muchas ocasiones se utiliza como tal) en el que los usuarios dejan constancia de los fallos que van encontrando en el software, permitiendo en muchos casos añadir sugerencias sobre nuevas funcionalidades (feature requests). El BugTracker permite asignar programadores al problema, que serán los encargados de investigar las causas del error y subsanarlo. Es una herramienta muy potente y que recomiendo a todos aquellos proyectos que empiecen a tomar cierta relevancia.

    conclusiones.

    El ámbito de aplicación y desarrollo del software propietario suele (o debe) estar definido de antemano. Se puede realizar una predicción, más o menos acertada, sobre la envergadura del proyecto, así como del número y perfil de los usuarios finales, pero el software libre es totalmente impredecible. Un proyecto inicialmente pequeño, comenzado desde cero por una única persona puede volverse muy grande en muy poco tiempo, el desarrollador que empezó por diversión empieza a ver qué los usuarios demandan su ayuda y piden nuevas funcionalidades al software. Aparecen los primeros bugs que hay que resolver, lo que genera nuevas peticiones de los usuarios. Todo empieza a dejar de ser divertido. Usuarios curiosos inundan la cuenta de correo del programador. Aparecen nuevas personas intentando colaborar. En este caos organizativo el desarrollador debe asumir que su proyecto es de interés para la comunidad, utilizando parte de su tiempo en la organización de la comunidad que se ha formado alrededor de su software. Muchos lo verán como una perdida de tiempo, pero es necesario, ya que una buena planificación a tiempo favorecerá un desarrollo más fluido del proyecto, los desarrolladores han de tener en cuenta que afortunadamente no están solo, ya que existen una amplia gama de herramientas libres que permiten crear comunidades organizadas. Sabiendo el potencial de estas herramientas se podrá poner en las manos de los usuarios la oportunidad de colaborar. Conociendo las alternativas y eligiendo los instrumentos adecuados se puede formar una comunidad que se automantenga, haciendo que sean los usuarios los que contesten sus dudas y escriban la documentación, uno de los principales errores de Yafray fue descuidar estos aspectos y ha costado mucho levantar el vuelo. Si tú, amigo lector, estas empezando a desarrollar software libre ten en cuenta que deberás dedicar parte de tu tiempo al cuidado de las personas que se agrupan alrededor de tu proyecto. Si por el contrario lo tuyo no es programar y el menú del vídeo es todo un misterio para ti, no te preocupes. Hay mucha labor que hacer en el proyecto de tu software favorito. Cualquier aportación, como ayudar a los usuarios más inexpertos, puede hacer mejorar el software, no quiero terminar sin agradecer a Alejandro Conty la oportunidad de participar en un proyecto como Yafray. Mil gracias también a Alfredo de Gref, Javier galán, Mathias Wein, Álvaro luna y a toda la comunidad hispana e internacional de usuarios de Yafray, con especial cariño a los de Blender.

    Llegados a este punto sólo queda contestar a una pregunta: ¿cuántos robles roería un roedor, si los roedores royesen robles? Bien, un roedor no roería robles, ya que los roedores no roen robles, pero si un roedor pudiera roer y royera alguna cantidad de robles, ¿cuántos robles roería un roedor? Aunque un roedor pudiera roer robles y, aunque un roedor royera robles, ¿debe un roedor roer robles? Un roedor debería roer si un roedor pudiera roer robles, siempre que el roedor royera robles.

    Referencias[/SIZE]
    o Gregorio robles. ingeniería del software libre. Una visión alternativa a la ingeniería del software tradicional. 2002.
    o Jesús González Barahona, Joaquín Seoane, Gregorio robles. introducción al software libre. 2003
    o Eric s. Raymond. la catedral y el bazar. 1997
    o Martine Albers, motivation for participating in an online open source software community. 2004
    o https://pulsar, unizar.es/gluz/manual-sl/c35.html
    o https://es.wikipediaorg

  5. #4
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    La retrocomputacion esta de moda

    ¿la retrocomputación está de moda?
    Javier Belanche Alonso.
    xbelanch@gmail.com:


    ¿la retrocomputación está de moda? Es evidente que sí. El sentimiento de nostalgia por la tecnología del ordenador personal, consolas y máquinas recreativas (no puedo encontrar un nombre mejor) de la época comprendida entre mediados de los 70 y 80, ha ido tomando mayor fuerza y visibilidad en el momento actual.

    Esta charla tratara de describir las diferentes manifestaciones de la retrocomputación y, en particular, de la necesidad para muchos de volver a repetir el embargo emocional que representa jugar, programar, construir y coleccionar la informática de 8 bits.

    Un poco de historia.

    El punto de partida es la aparición del primer videojuego comercial en Estados Unidos en 1974. Pong, idea y diseño de Nolan Bushnell y formalizado por el ingeniero de al Alcorn, inaugura el festival del ocio informático popular como la industria que, a excepción de un tiempo de crisis a mediados de la década de los 80, en la actualidad factura un volumen de ingresos superior a la del cine.

    De la primera máquina recreativa surge la idea, poco más tarde, de Nolan Bushnell de trasladar la experiencia de las máquinas recreativas al entorno doméstico, reinventa un proyecto tan fallido como visionario, la consola Magnavox Odyssey. La edición home del pong fue un éxito de ventas de las navidades del 75. Es la época de confrontación entre Atari y Colecovisión por dominar el mercado de máquinas recreativas y consolas domésticas. Frente a la producción masiva de Colecovisión, la atari de Nolan Bushnell determinara, mediante el acto de la innovación, un tercer paso hacia la definición contemporánea de la consola: la invención del cartucho o la posibilidad de intercambiar juegos en la misma consola. Seguirán años de creatividad e innovación en cuanto al diseño y producción de juegos para dos mundos que conviven inevitablemente, el de las máquina recreativas, superior en calidad gráfica al segundo, y el de las consolas domésticas. Space Invaders, Pacman, Donkey Kong, Asteroids.



    Se convertirán rápidamente en la primera colección de clásicos de la historia de los videojuegos. No sorprende, por lo tanto, que serán objeto de variaciones, con mejor o peor gusto hasta nuestros días y que tendrán representación en soportes y medios tan diferentes como singulares.

    La segunda parte de esta historia la ocupa el ordenador doméstico. Tres años después del éxito de pong, Steve Jobs y Steve Wozniak presentan en 1977 el Apple ][, con el procesador 6502 de la casa y que tendrá un enorme eco comercial, en parte por su cualidad técnica y en gran medida por la aplicación de ofimática visual, la primera hoja de cálculo de la historia.

    Pero el principal interés que nos trae aquí la obra de Wozniak y jobs es por un motivo clave para la evolución del videojuego: gracias al intérprete de basic, los usuarios podían desarrollar y programar sus propios juegos, almacenarlos y, finalmente compartirlos o venderlos. De nuevo, como fue en el caso de atari, la empresa Apple descubre una doble industria (la del software y la del hardware) que, en poco años, se inundará de un largo número de ordenadores domésticos, de los que destacamos la producción del Commodore 64, Sinclair ZX Spectrum 48k, MSX y CPC 464 de Amstrad. Durante los primeros cinco años de los 80, la explosión de creación de videojuegos para los modelos antes mencionados se verá reforzada por el desarrollo, entre profesional y el amateur, de muchos jóvenes que, aprenden a programar ensamblador para dos micros, el Z80 y el 6502, en sus habitaciones, aspirando a poder vivir de sus propios trabajos. No resulta extraño que, desde la perspectiva actual, se considera ese momento como la edad de oro del software español. Edad que vio su punto más álgido con la obra maestra del programador Paco Menéndez, la abadía del crimen.



    Punto final a esta historia lo pondrá Nintendo o, por que no, del encuentro entre Yamauchi y Shigeru Miyamoto. En 1985 aparece la consola Nes de Nintendo y su juego estrella, super Mario Bros, y que culmina dos años más tarde con the Legend of Zelda.

    Intenciones.

    He clasificado el contenido de esta ponencia en función de unos pocos conceptos que engloban la gran totalidad de proyectos que han girado alrededor de la informática de 8 bits.

    Coleccionismo.

    Lowprogramming/hardwiring.

    Emulación/recreación.

    Reinterpretación/reinvención.

    La mayor parte de manifestaciones o acciones retro puede referirse a estos cuatro apartados básicos, y que, si bien se pueden tomar por apartados independientes, la estrecha relación entre ellas se hará evidente a lo largo de la explicación de este texto. Empezaremos con el más pasivo de los cuatro, coleccionar, y acabaremos por el que más se aleja de la retroinformatica y sí se aproxima al medio de la práctica del arte actual.

    Coleccionismo.

    Coleccionar, reunir o agrupar objetos de una misma índole o tema, que despiertan un sentimiento entre nostalgia, pasión y deseo, es probablemente la categoría más pasiva de las cuatro. La acumulación de ordenadores domésticos de 8 bits, consolas, calculadoras no es diferente de la de coleccionar sellos, sin ocuparnos ahora si hay sospechas de un futuro fórum retroinformático. En España contamos con algunos de las colecciones privadas de retroinformatica más importante a escala internacional.

    Sin duda, el componente de interés del coleccionismo es el encuentro con lo diferente, la excepción o la singularidad y, por lo tanto, con el objeto más preciado. Quiero destacar varias piezas, explicar su excepcionalidad como la magia y encanto que han suscitado desde su desaparición en el mercado informático. Es probable que la elección no sea la correcta, la mejor o la más representativa, pero cada vez que aparecen en subasta, los precios finales rebasan habitualmente los seiscientos euros.



    En primer lugar, Júpiter hace de cantab, ordenador británico que, literalmente, nació muerto a principios de los 80. Creado por Richard Altwasser y Steven Vickers, parte escindida del equipo original del desarrollo del ZX Spectrum, el Júpiter ace heredaba del ZX81 su fisonomía, pero de superficie blanca. Micro Z80 a 3.21 Mhz con 3que de Ram ampliables a un máximo de 48 y una resolución gráfica de 24x32 caracteres en blanco y negro, el Júpiter ace se fundamentó en la estandarización de sus componentes digitales. El ace, a diferencia de las ULA (unidad aritmético lógica) de la línea Sinclair, se diseñó bajo el paraguas de la lógica transistor-transistor y, por lo tanto, con chips de serie. Quizá, su peculiaridad mayor fue el intérprete de Forth en lugar del habitual basic. El ace contenía una rom de 8que con el so y el intérprete de Forth. Aunque la velocidad de ejecución era superior al resto de intérpretes de basic del momento, el Júpiter ace se encontraba en desventaja frente a otras máquinas debido a su insuficiente capacidad gráfica como de sonido, limitando las ventas del ace hasta el punto de su desaparición tres años más tarde.



    En segundo lugar, el Sam coupé, también británico, hace su aparición en 1989, cuando el mercado de los ordenadores domésticos de 8 bits ha entrado en caída libre. La empresa responsable fue miles Gordon technology. Al igual que el Júpiter ace, el Sam coupé tenía el Z80 de Zilog por microprocesador, a 1 Mhz de reloj, 256kb de Ram ampliables a 512 Kb. Una característica que luego se convirtió en motivo de confusión fue la posibilidad de ejecutar juegos de la gama Sinclair gracias al chip ASIC, compatible con el ULA del ZX Spectrum 48k. Confusión que llevó a entenderse el Sam coupé como un clónico ampliado del ZX Spectrum. Lamentablemente, después de tres cambios de propietarios, la producción del Sam coupé finaliza en 1992, tras 16000 unidades vendidas y con el imparable mercado del PC compatible como fondo.



    Finalmente, el rainbow-i fue un ordenador de 8 bits que apareció en 1989 en la localidad de Manchester, bajo el diseño de los hermanos Ian y Stephen Smith, dos jóvenes apasionados de la electrónica digital, la informática, la música de Madcheter, la literatura y arte decadente inglés del siglo XIX y las drogas. El rainbow-i nunca superó las 100 unidades: la caja era de madera de cerezo, con grabados de ornamentación en gran parte de su superficie, se vendía a petición personal o se regalaba a colegas. Más en la línea del romanticismo del homebrew computer que de la producción comercial, el rainbow-i tuvo un cierto eco en revistas especializadas debido al uso de dos micros Z80 en paralelo, mejorando considerablemente la profundidad de color. Un año más tarde, Ian Smith se suicidó destruyendo toda la información y el poco stock disponible de los rainbow-i. De muy vez en cuando, aparece como artículo de subasta de Ebay, en particular de la región del Reino Unido, algún prototipo del rainbow-i, superando los 2500 euros.



    Emulación/recreación.

    Hablar de la vida de estas máquinas nos lleva a la segunda categoría, la emulación/recreación. La emulación es la solución pobre de una experiencia real, pero si sumamos la recreación, la sensación es mayor y más próxima al sentimiento original. La retro-emulación es un extraño virus: se extiende con suma facilidad a todas los dispositivos digitales actuales, desde relojes hasta las consolas de última generación, pasando por todas. El interés de la emulación es doble: la satisfacción que produce el reproducir el comportamiento de una vieja máquina, una cierta necrofilia digital y, una línea quizá menos habitual, pero no por ello menos atractiva y enriquecedora, la programación de emuladores de máquinas de 8 bits.

    El principio que subyace la emulación en el campo de la informática es la compatibilidad. Que el software de un primer ordenador sea compatible con un segundo es posible sí, gracias si está disponible el código fuente y podamos compilar el binario en la segunda máquina. Tarea esta última difícil si entre las dos máquina la arquitectura es diferente. Un camino alternativo es la ilusión de poder emular el comportamiento del primer ordenador en el segundo. De esta manera podríamos ejecutar el software del primer ordenador sin dificultad en el segundo.

    Los primeros emuladores de máquinas viejas de 8 bits aparecen a principios de los 90, con la desventaja de la todavía precaria velocidad del micro para ejecutar con suavidad el sistema emulado, como un emulador del Commodore 64 para amiga.

    Con el rápido incremento de la velocidad de los microprocesadores para los PC compatible, la aparición a mediados de los 90 de una emuscene se cristalizó en los primeros emuladores de la serie de máquinas de 8 bits de principios de los 80, Sinclair ZX Spectrum, MSX, Commodore 64, amiga e incluso Apple ][, pero también las primeras consolas como la Nes, la super Nes o la Sega master system. La ventaja en cuanto a implementación y programación de estos emuladores es que todas estas máquinas guardan similitudes técnicas y de diseño muy parecidas, muchos compartían micros de 8 bits, Intel 8080, Motorola 6809, Zilog Z80 o MOS 6502. Las diferencias venían por los dispositivos externos (teclado, cintas o disco de almacenamiento) o el chip gráfico (la ULA famosa del ZX Spectrum) o del sonido.

    Contrariamente a lo que podamos pensar, la documentación alrededor del diseño y programación de emuladores es bastante limitada y dispersa si la comparamos con el volumen de comunidades, proyectos y usuarios interesados en la emulación desde su arista más lúdica. En general, la motivación que hay detrás de la programación de emuladores es variada: aprender más sobre computación y la arquitectura de los ordenadores y consolas de 8 bits, saber cómo funcionaban los videojuegos de antes y que había detrás de ellos -pregunta muy razonable cuando éramos niños-y, desde un lado más humano, preservar la memoria de nuestra infancia.

    Acorde al movimiento de la emuscene y del sentimiento de preservación del pasado de 8 bits, el 5 de febrero de 1997 Nicola Salmoria publica la versión 0.1 de mame, acrónimo de multi arcade Machine Emulator, siguiendo una filosofía estricta de la emulación a nivel de registros e instrucciones, contrariamente a la técnicas high level de emulación. La velocidad de la emulación no es tan importante como el grado de realismo de la emulación, por lo que mame dependerá siempre de velocidades de reloj enormemente elevadas para una emulación fluida.

    Mame representa en la actualidad un gigante centro de gravedad en lo que se refiere al universo de la emulación de videojuegos: el número de juegos que alcanza emular está en los 10000, aunque también se sabe que alrededor de 600 se encuentran fuera de los límites de su emulación por mame. Al mismo tiempo, mame representa un quebradero legal: en cuanto a emulador, la pertenencia y distribución de mame es legal, su venta es ilegal. Respecto las rom, la mayoría están sujetas en la actualidad al copyright de la empresa o autores propietarios y, por lo tanto, imposible su venta y distribución. Esta situación se vuelve surrealista en función de la situación legal de cada país, en el hecho de que las Roms dejaron de ser objeto de mercado hace tiempo o que, rozando el ridículo, algunas empresas propietarias de las Roms dejaron de existir. Estas Roms pasan a ser consideradas huérfanas, pero mantienen paradójicamente su copyright, sin que por ello beneficie económicamente a nadie. Lawrence Lessig, padre del Creative Commons, debate y denuncia en la actualidad la irregularidad del copyright de los juegos huérfanos y defiende el traspaso al dominio público.

    He mencionado más arriba la técnica de emulación high level, en contraposición de la filosofía seguida por los desarrolladores de mame. Dos años después de la primera versión pública de mame, se anuncia un nuevo emulador, ultrahle, que difiere en cuanto a metodología de emulación y, por tanto, el enfoque conceptual de emulación. A diferencia de mame, que representa la técnica lle (low level emulation) y concentra sus esfuerzos en emular a bajo nivel todo los componentes del sistema emulado, con especial atención en la CPU, ultrahle intenta adivinar que necesita el juego en cada momento y emula la petición con gran rapidez. De hecho, ultrahle se hizo enormemente popular en muy poco tiempo. Fue el primer emulador con éxito de la Nintendo 64, de juegos imposibles de emular como super Mario 64 y Zelda: ocarina of the time.

    Ultrahle murió de éxito repentino. Pocas horas después de su publicación, los desarrolladores abandonaron el proyecto, aunque poco después, realityman, uno de los desarrolladores, volvió a la carga para sucumbir debido a las sugerencias de Nintendo para olvidar el proyecto, incluso la emulación.

    Recreación.

    La recreación es bicéfala: busca obtener una experiencia más rica al dotar a la emulación de un soporte físico específico y próximo al original. Las retromacas ilustran a la perfección esta idea. La lástima es que está recreación se limita a la habitación del retrogek. La recreación perfecta, casi como siempre, es colectiva y en este sentido la experiencia original se debería completar en una sala llena de humo de tabaco negro, ceniceros quemados y llenos de nicotina, el estar a punto de conseguir una bandera 10 en el galaxian mientras una multitud anónima y silenciosa admira tus movimientos y, ¿cómo no, un jubilado con mono azul y riñonera llena de monedas de 25 de las viejas pesetas.



    La aparición de mame, su capacidad técnica para emular fielmente los videojuegos clásicos, lo convirtieron en el software ideal para la recreación de una máquina recreativa, o maca. La construcción/obtención/compra de una maca se ha convertido en sí mismo en fenómeno unido a la experiencia de la retro emulación. Podemos comprarla de segunda mano, readaptarla, recuperarla del cementerio de recreativas, podemos construirla desde cero (from scratch) y ser nosotros quienes definamos el diseño, entre el clásico y el cocktail, o estilo mesa. El mercado de kits de construcción de macas es cada vez mayor, se venden accesorios como los monederos clásicos, las arcade controls y tarjetas gráficas de frecuencias de refresco inferiores a los 60Hz, j-pac.



    Hago un alto. He de hablar de la GP2x, sucesora de la malograda GP32. Tras una tortuosa gestación y sin llegar al año de vida en el mercado virtual (la consola oficialmente sólo se distribuye a través de internet), la GP2x ha sabido encontrar un público fiel y adepto a la retroinformatica. Gran parte de la atención recibida se debe a su orientación de desarrollo libre de videojuegos, aplicaciones y emuladores. Sin pasar del límite de los 170 euros, la GP2x contiene un firmware -finalmente-libre (basado en GNU/Linux) sobre un procesador arm9 de doble núcleo, velocidad reloj de 200 Mhz, almacenamiento en tarjetas SD, 64 Mb de Ram y resolución de pantalla de 320 por 240 (QVGA). Dispone de un SDK oficial igualmente bajo licencia GNU, aunque la mayoría de programadores prefieren usar SDL nativas de la GP2x.



    Destacar la importancia de la escena española concentrada en la comunidad GP32spain, liderada por Franxis.

    Al basar su sistema operativo en GNU/Linux, no ha sido raro que la consola se beneficiara rápidamente de las comunidades. Destacar que es la primera consola de mano que tiene un intérprete de Python (Pygame) y Ruby para el desarrollo rápido de videojuegos y aplicaciones.

    Hardware emulation.

    La máxima expresión de la emulación/recreación corresponde al uso de chips FPGA que traspasan la frontera misma de la emulación por software. Identificamos la clonación perfecta mediante la emulación por hardware al uso de la recreación de máquinas y consolas de 8 bits antiguas. Los chips de altera y Xilinx, el lenguaje VHDL y un enorme conocimiento de la máquina a emular (y tiempo, mucho tiempo) se suman para aparecer en forma de viejas máquinas recreativas y antiguos ordenadores domésticos. Quizá, del conjunto de proyectos basados en FPGA orientados a la retro experiencia, señalar sin duda el de Jeri Ellsworth, autodidacta en la programación de chips FPGA, el c-one.



    C-one representa una iniciativa de Jeri Ellsworth por mejorar el Commodore 64 original, pero que finalmente derivó en una placa base que permitiera la clonación de cualquier máquina de 8 bits. C-one es una suerte de multi-hardware (en lugar de multiplataforma) que, mediante el uso de FPGA y una expansión modular de la CPU (que por defecto incorpora el 65c186 del Commodore 64) se logra implementar la emulación por hardware de cualquier máquina de 8 bits y que, por su naturaleza abierta y modular, permite nuevos diseños personalizados.

    Hardwiring/low programming.

    El año pasado, André Lamothe, autor especializado en la publicación de libros sobre diseño, creación y programación de videojuegos (cuenta con casi una veintena de libros), da un giro radical de contenidos y celebra una vuelta radical al pasado: crear videojuegos desde una perspectiva lowlevel: electrónica, diseño digital, programación en ensamblador, conocimiento del conjunto de instrucciones del micro. Esta vez el libro no es un simple recetario de algoritmos, ejemplos y código para nuestro enésimo proyecto de videojuego fallido en DirectX. En su lugar, el libro es una mezcla de curso de electrónica y justificación de la elección del diseño de la Xgamestation, una consola basada en el microcontrolador SX52 y de la que los usuarios pueden aprender a programarla -en ensamblador, por supuesto-o ampliar.



    ¿es la Xgamestation un caso aislado? Dentro del libro, Andre Lamothe explica el desarrollo de una edición mínima del Xgamestation, el pico edition. Un protoboard, el SX52 y un set de resistencias y algún condensador proporciona una infraestructura mínima en el que podemos jugar a nivel de montaje (hardwiring) y de programación del SX52 (lowprogramming), el pico edition no es novedad y André Lamothe debe su iniciativa a un anterior proyecto personal de un estudiante sueco de electrónica, Rickard Gune, al utilizar microcontroladores de la familia pic y SX para diseñar sistemas de videojuegos amateur. La sensibilidad homebrew console es evidente y trascienden el simple acto recreativo al puro cacharrismo make (revista actual dedicada al hardware y tecnología amateur): nuevos proyectos de homebrew computers (incluso con intérpretes de basic.) y homebrew games.

    Homebrew games representa un paso final que nace desde el interés de la emulación de retro videojuegos, pasando por el estudio de cómo estos juegos se programaron entonces y finalmente programando un juego que probaremos en nuestro emulador favorito y que, una vez conseguido, desearemos transformar el juego en un cartucho.

    La escena de los homebrew games es todavía muy incipiente. Programar en ensamblador en estos días parece un acto de excentricidad y de frikismo. Añadir la dificultad que ello comporta en cuanto al aprendizaje como el de un suficiente control para poder desplegar sprites y la animación de estos por la pantalla. El último reto, superado lo anterior, pasa por la fabricación del cartucho. De nuevo el puente entre el lowprogramming.

    Al hardwiring o viceversa. Habitualmente, los pocos creadores de homebrew games tienen dos opciones: cambiar la rom de un viejo cartucho y reemplazarla por la nueva rom o, el más difícil todavía, crear tu propio circuito impreso (PCB) y el packaging del cartucho. Un ejemplo magistral de lo que hablo son las tiradas limitadas del juego I, ciborg, de George Peloni, para la mítica consola Vectrex.



    La retroinformatica y el arte actual:la deconstrucción como reinvención de los clásicos.

    He querido dedicar el último apartado de esta charla a las relaciones que, desde el 2000, se han ido estableciendo entre los videojuegos y el arte actual y que, tal como ya dije al principio, es la cara de la otra moneda del sentimiento del retrocoleccionista. Gran parte de la exploración del artista en la iconografía de los videojuegos remite a clásicos de los 70-80 como Arkanaoid, Asteroids, space Invaders, pong o Pac-Man. Generalmente, la finalidad de estas intervenciones es desvirtuar el propósito original del juego (matar marcianos, vencer a tu contrincante, ganar a la máquina o tomar todas las pastillas en un lugar oscuro bajo música electrónica.) y presentar un discurso diferente, contrario o inmerso en la ironía.

    Si un estudio detallado de la relación entre el arte actual y los videojuegos escapa a los límites de esta charla, no pierdo la oportunidad de mencionar unos pocos, en particular dos: el proyecto Spaceinvaders y la Painstation.

    Spaceinvaders es un proyecto personal del francés Invaders de intervención urbana: la invasión del espacio cristalizada en forma de pequeños mosaicos que, no es hola la elección del soporte, reivindican el píxel como unidad de medida gráfica. Sus mosaicos de Invaders están repartidos por toda la geografía del primer mundo, en especial Europa y Estados Unidos.



    Painstation es una maca especial del tipo mesa. Los jugadores compiten en el clásico terreno del pong, a diferencia que, el jugador que pierde un tanto de partida recibe una descarga eléctrica.



    Para saber un poco más.

    Forster, Winnie, game. Machines, the encyclopedía of consoles, Handhelds & home computers 1972-2005, 2005, Gameplan.

    Moya del barrio, Víctor, study of the techniques for emulation programming (by a bored and boring guy), 2001, UPC.

    Kohler, Chris, retro gaming hacks, tips & tools for playing the classics, 2005, Oreilly.

    Lamothe, André, the black art of video game console design, 2006, Sams.

    Martínez, David de super Mario a Lara Croft, la historia oculta de los videojuegos, 2003, Dolmen editorial.
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 
Nombre: blendiberia2006.jpg 
Visitas: 8949 
Tamaño: 181.5 KB 
ID: 93602   Clic en la imagen para ver su versión completa. 
Nombre: blendiberia20061.jpg 
Visitas: 7969 
Tamaño: 114.7 KB 
ID: 93603   Clic en la imagen para ver su versión completa. 
Nombre: GP2X.jpg 
Visitas: 8112 
Tamaño: 167.5 KB 
ID: 93604  

  6. #5
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender Seccion II fundamentos texturas procedurales



    Texturas procedurales
    Carlos López Yrigaray.
    [email=Klópes@unizar.eKlópes@unizar, es[/email]:
    Fundamentos de los conjuntos fractales.

    Conjuntos conceptualmente simples, como puntos o líneas en un espacio matemático común como el euclídeo, no dejan lugar a dudas sobre sus propiedades características. Un punto, por ejemplo, sabemos que tiene dimensión 0 porque es la intersección de dos rectas que se cortan, e igualmente un segmento de curva tiene dimensión 1 porque, sin ser un punto, puede incluirse en una recta y cumple la exigencia intuitiva de algo continuo.

    Condiciones básicas de dimensión.

    No todos los conjuntos son tan simples, a pesar de poder ser encerrados en trozos pequeños, o cualquier, poder generarse sin levantar el lápiz del papel, o por sencillas reglas recursivas. De hecho, la dificultad de la definición del conjunto no tiene que ver con la complejidad de su representación gráfica. Para estos conjuntos en los que las definiciones intuitivas de sus propiedades no parecen encajar, se hace necesaria una definición rigurosa, como la del caso que nos ocupa: el concepto de dimensión.

    Para abarcar las posibilidades de la definición de dimensión para un.

    Conjunto por decir, exigiremos cumplirse las siguientes propiedades:
    1, DIM{p}=0, DIM(i)=1, y en general, DIM(in)=n para el hipercubo n-dimensional in.
    2. Monotonía: si xy entonces DIM(x)<dim(y).
    3. Estabilidad contable: si {xj} es una sucesión de ℝn conjuntos cerrados de, entonces.



    4. Invariancia: para una aplicación arbitraria
    Perteneciente a
    Cierta subfamilia del conjunto de homeomorfismos de en , se tiene:


    Las condiciones (1) y (2) se cumplen fácilmente, mientras que la tercera se puede flexibilizar requiriendo solamente una cantidad finita de.

    Subconjuntos de :
    3. Si x1, x2. Xm son subconjuntos cerrados de , entonces.




    la condición (4) implica invariancia topológica del concepto de dimensión. No es trivial ver que las condiciones (1) y (4) no se contradigan, como podría parecer por la construcción que Peano hizo de una aplicación continua de [0, en el cuadrado [0,x[0. Afortunadamente, esta aplicación no es homeomorfismo por no ser biyectiva.

    Dimensiones topológica y de Haufsdorf.

    Urysohn y otros construyeron una función dimensión que es invariante topológica y toma valores enteros. A esta la llamaremos dimensión topológica, dimt.

    Se basa en la idea de dar el valor n+1 al conjunto del cual otro que tiene dimensión n es borde, inductivamente. En topología general se definen tres tipos de dimensión sobre conjuntos de un espacio métrico contable. Podemos llamar dimensión topológica a cualquiera de ellas, puesto que los valores enteros son coincidentes en las tres.

    A finales del siglo XIX, Borel investigó sobre la idea de longitudes, áreas y volúmenes en busca de definición precisa, lo que estimuló a Lebesgue en su teoría de la medida. Carthéodory generalizó este trabajo a la medida s- Dimensional en R y, finalmente Haufsdorf, viendo que s daba sentido a la teoría aún sin ser entero, definió la dimensión que lleva su nombre.

    La dimensión de Haufsdorf satisface las condiciones impuestas al principio tomando como familia de aplicaciones de la condición (4) el conjunto de funciones bi-lipschitzianas. Denotamos a la dimensión de Haufsdorf como DIMh.

    Conjuntos fractales.

    En general, se cumple
    Decimos que un conjunto x de
    Es fractal cuando:


    También definimos de forma pareja, el grado fractal, que nos da la idea de la complejidad gráfica del conjunto:


    Esto conlleva, en primer lugar, que conjuntos como puntos aislados o segmentos no son fractales, por ser su dimensión topológica un número entero y, por tanto, igual a la de Haufsdorf.

    Debemos, pues, alejar la idea de que los conjuntos fractales son aquellos que lo parecen por ser gráficamente complejos, o los que albergan el concepto de auto-similaridad que, si bien es característico en muchos de estos conjuntos, no es una propiedad exclusiva.

    Texturas iterativas.

    Comoquiera que la idea de lo fractal implicaría la realización de infinitos cálculos, lo que podemos conseguir mediante técnicas por ordenador es iterar el proceso de obtención de estos conjuntos para acercarlos al límite de lo distinguible por los sentidos. Esto no sólo nos permitirá representar estos conjuntos de forma satisfactoria, sino que podremos flexibilizar el proceso para conseguir dibujos con menos detalle que el que daría el cálculo completo, si así lo deseamos.

    Aquí abandonaremos la palabra fractal y lo que conlleva, para retomar el tema como la generación de gráficos complejos mediante técnicas iterativas.

    Las texturas que nos ocupan se basan en variaciones de un proceso de cálculo sencillo, que se aplica a conjuntos de números generados por distintos tipos de ruidos. Veamos que es esto.

    Funciones de ruido.

    Iniciamos la generación de texturas mediante ruido creando una función
    [0, base, que no es más que la interpolación de un número (discreto) de puntos aleatorios p1, p2, pm cuya segunda coordenada esta elegida en el rango [0,. Esta interpolación debe hacerse, naturalmente, de manera que, los valores intermedios no salgan de este rango, comenzamos eligiendo como primeras coordenadas de {pi} los valores enteros 1,2, m, de esta manera podemos representar tal función así:


    esto nos lleva a definir conceptos análogos a los de teoría ondulatoria tradicional, como amplitud (que vendrá dado por el rango de la curva funcional obtenida) o longitud de onda, que será la interdistancia entre puntos consecutivos, considerando esta como una cantidad constante. En este caso inicial, esta longitud es 1. La frecuencia será, directamente, la inversa de la longitud de onda.

    En cuanto a la elección de los valores en {pi}, los hemos recorrido elegido en un intervalo [0, de manera equiprobable, pero podríamos haber escogido cualquier función de probabilidad. Es más, un método habitual de escoger estos números es el utilizado para generar plasmas y superficies de Mandelbrot (su versión tridimensional):
    1. Se determinan valores aleatorios en los extremos del intervalo, o bien en los vértices de una rejilla. El objetivo es calcular las intensidades en los demás puntos del espacio. Elegimos un número de subdivisiones (habitualmente d=2), y una cantidad h que determina la variación en cada iteración. Habitualmente, en torno a 1/d. Hacemos i=1 para comenzar el proceso iterativo.
    2. Se subdivide el intervalo/rejilla en de partes, obteniendo nuevos puntos a los que les asignamos los valores por interpolación de algún tipo, respecto de los vértices originales adyacentes.
    3. Recurrimos a la función de ruido (puede ser una cantidad aleatoria), o cualquiera de las que se explican más abajo. El valor obtenido se multiplica por (1/d)IHD.
    4. Volvemos a 2 si los píxeles del dibujo no se han completado.

    El proceso que pretendemos explicar es mecánicamente parecido, pero permite generalizar la generación de puntos iniciales y el uso de las funciones de ruido.

    Funciones de ruido perlin.

    Ken perlin creó las funciones que llevan su nombre sumando funciones de interpolación de ruido sucesivas, f1, f2, Fn, cuyas amplitudes disminuyen progresivamente, mientras que las frecuencias van aumentando. Estas variaciones son geométricas, es decir, frecuencia y amplitud cambiaran en cada nueva función según factores multiplicadores constantes.

    Llamemos lacunarity y fracdim (lagunaridad y dimensión fractal) a las variables que representan, respectivamente, a estas proboolean. A estas funciones las llamaremos octavas, y darán el grado de detalle deseado a la textura. La función resultante queda, entonces:


    Por ejemplo, tomando lacunarity=2 y fracdim=05, podemos obtener un sucesión de funciones perlin (según el número n de octavas) como esta:


    El dr. Forest kenton (Ken) musgrave, cuyo método se comenta más abajo, usó el término persistence para referirse directamente a la amplitud de cada sumando de la función de perlin, de manera que:
    Amplitud = persistencia.

    Sin ninguna dificultad, podemos extender esta forma de trabajar a.

    Dominios en , pudiendo obtener con este proceso, por ejemplo, un valor numérico para cada punto en el espacio bio tridimensional real. Por ejemplo, dado un punto en una superficie que queremos texturizar, podemos aplicar un sencillo algoritmo tipo perlin para obtener hasta la tercera octava, obteniendo como suma esta textura:


    Ruidos en Blender 3d.

    Perlin, tal cual ha sido definido, no es la única manera de crear ruidos en Blender, aunque sí la más adecuada para crear paisajes y eventos de carácter natural: terrenos, texturas nubosas, superficies líquidas. Existen métodos para dibujar escenas pseudoaleatorias que nos permiten crear entes más o menos regulares, basados en la misma suma de funciones de interpolación sobre puntos al azar, solo que ya no son tales funciones, sino algoritmos que generan otros tipos de funciones, y que pueden requerir más parámetros. Discutiremos la definición y uso de la triangulación de voronoi, sus parámetros (constantes de Worley), y los resultados de aplicarlo sobre distintas definiciones de distancia:


    (generaliza las anteriores).

    Y se verá también el método de musgrave, usado por Terragen y el generador de mundos del propio autor, mojoworld, para crear paisajes y nubes.

    Terrynoise.

    Cuando Blender no disponía de texturas generadas por ruido, Alfredo de Gref, conocido como Eshlo en nuestros foros, escribió una librería en c que contenía funciones para generar números aleatorios y basados en algoritmos como los explicados anteriormente. El objeto de esta librería, llamada dynoise, era usarla como base para el proyecto Dynamica, con el que se pretendía crear un motor de partículas y simulador de tejidos físicamente creíbles. Dynamica fue abandonado, pero dynoise seguía disponible para quien quisiera acceder a ella desde sus scripts.

    Fue en esa época cuando programé Terrynoise, para aprovechar esta capacidad que tan lejos quedaba para Blender por aquel entonces.

    De las funciones disponibles, Terrynoise utilizaba:
    multifractal.

    Rigged multifractal.

    Hybrid multifractal.

    Heteroterrain.

    Cellnoise.

    Turbulence.

    Vlnoise.

    Noise.

    Random.

    El script actuaba sobre los vértices aplicando en la coordenada z una cantidad generada por la función elegida por el usuario. La primera funcionalidad consistió en seleccionar que vértices iban a ser afectados por el cálculo y en qué medida. Esto se consiguió usando el grupo de vértices llamado dynoise, en homenaje a la librería de Eshlo.

    Blender integró en la versión 2.33 las funciones en su código, además de los nuevos tipos de textura procedurales:
    diestorted noise (calcula ruido usando como lagunaridad el valor de otro)
    Voronoi (algoritmo de voronoi de cercanía, con sus variantes w1-4)
    Musgrave (aplicar la síntesis espectral al ruido, previamente ampliado e interpolado)
    lo que, unido a los ya existentes (clouds, marble, wood) creó una nueva forma de generar texturas con la nueva gama de ruidos:
    Cellnoise.

    Voronoi crackle.

    Voronoi f2-f1
    Voronoi f4
    Voronoi f3
    Voronoi f2
    Voronoi f1
    Improved perlin.

    Original perlin.

    Blender original.

    Lo que supuso un gran avance en la creación de materiales en Blender. Esto, unido a la implementación de mapas de desplazamiento en la versión 2.32, hizo que Terrynoise fuese de repente obsoleto, ya que fue incluso superado por la existencia de la opción simple subdivisión, que permite usar el mapa de desplazamiento sobre los vértices generados por subdivisión en tiempo de render.

    La ventaja, sin embargo, reside siempre en la visualización del ruido durante el modelado, ya que se crea una nueva malla modificada, lo que permite exportarla tal cual, o incluso usarla en el motor de juegos de Blender.

    La incorporación de texturas procedurales hizo que pronto los desarrolladores del Api de Python programaran un acceso a estas características funciones de ruido mediante métodos en una nueva librería, Blender. Noise.

    El paso siguiente fue obvio: programar la posibilidad de que los vértices fueran afectados a lo largo de sus normales, para producir efectos de ruido sobre objetos ya existentes, no sólo levantar meros paisajes sobre planos.

    La reciente intervención de Mathias Panzenbök (Panzi) en el código fuente fue decisiva: realizó una limpieza de código, e implementó la posibilidad de que el usuario entrara sus propias funciones matemáticas implícitas, usando como variables las coordenadas de los vértices y los operadores estándar, junto a las funciones matemáticas incluidas en la librería math de Python.

    Panzi también se encargó del tratamiento de ficheros para grabar y salvar parámetros. Gracias a estas mejoras Terrynoise recibió un nuevo impulso, completando sus capacidades más, allá de sus aspiraciones iniciales, implementando entre otras nuevas mejoras la posibilidad de animar la proyección del ruido sobre la malla y su intensidad, consiguiendo efectos de burbujeo, oleaje, vuelos sobre terreno, o zoom, además de introducir el tiempo como nueva variable para las funciones matemáticas.



    Finalmente, es de reseñar que puede aplicarse sobre cualquier número de mallas, existiendo un objeto activo sobre el que se trabaja, lo que permite además iterar ruidos si lo aplicamos sobre una malla previamente modificada. Esto se consigue usando las propiedades que existen en el motor de juegos para cada objeto, usándolas como variables de configuración.

    .
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 
Nombre: Imagen5.jpg 
Visitas: 7036 
Tamaño: 108.9 KB 
ID: 93605   Clic en la imagen para ver su versión completa. 
Nombre: Imagen6.png 
Visitas: 7139 
Tamaño: 35.8 KB 
ID: 93606   Clic en la imagen para ver su versión completa. 
Nombre: Imagen7.jpg 
Visitas: 6553 
Tamaño: 3.6 KB 
ID: 93607   Clic en la imagen para ver su versión completa. 
Nombre: Imagen11.jpg 
Visitas: 6528 
Tamaño: 2.9 KB 
ID: 93612  

    Clic en la imagen para ver su versión completa. 
Nombre: Imagen12.jpg 
Visitas: 6538 
Tamaño: 4.3 KB 
ID: 93613   Clic en la imagen para ver su versión completa. 
Nombre: Imagen15.jpg 
Visitas: 6854 
Tamaño: 2.9 KB 
ID: 93615   Clic en la imagen para ver su versión completa. 
Nombre: Imagen16.jpg 
Visitas: 6483 
Tamaño: 3.3 KB 
ID: 93616   Clic en la imagen para ver su versión completa. 
Nombre: Imagen21.jpg 
Visitas: 6428 
Tamaño: 5.2 KB 
ID: 93618  

    Clic en la imagen para ver su versión completa. 
Nombre: Imagen22.jpg 
Visitas: 7084 
Tamaño: 87.5 KB 
ID: 93621   Clic en la imagen para ver su versión completa. 
Nombre: Imagen23.jpg 
Visitas: 6677 
Tamaño: 21.2 KB 
ID: 93622   Clic en la imagen para ver su versión completa. 
Nombre: Imagen24.jpg 
Visitas: 6534 
Tamaño: 14.0 KB 
ID: 93623  
    Imágenes adjuntadas Imágenes adjuntadas     
    Última edición por 3dpoder; 04-02-2009 a las 17:47

  7. #6
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender Psicofisiología de la percepción

    psicofisiología de la percepción.

    Fernando arroba rubio.
    gnotxor@gmail.com :

    Cuando hablamos de percepción solemos tender a pensar inmediatamente en la percepción visual. Como sistema perceptivo dominante es el que analizaremos a continuación, tanto desde un punto de vista funcional como psicológico.

    El ojo es una esfera que cumple con la estructura de una cámara oscura. Sus funciones son tanto ópticas como sensoriales. En su funcionalidad óptica se comportaría como una cámara fotográfica: su cometido es recibir la luz, a través del iris (diafragma) y enfocarla con su sistema de lentes compuesta de córnea y cristalino, ajustando los rayos luminosos sobre la retina (película sensible).

    El sistema visual.

    La esclera o esclerótida correspondería con la caja o cuerpo de la cámara. (hay que ver lo original que soy haciendo estas analogías). Aunque en realidad la analogía mejor no es la cámara fotográfica sino la de video.

    Atravesamos las estructuras en la misma dirección que lo haría la luz y veremos su funcionalidad de manera rápida.

    El ojo esta estructurado en tres capas: la superficial o fibrosa, que comprende la esclera y la córnea, la túnica vascular, tracto uveal o úvea, que comprende la coroidea, el cuerpo ciliar y el iris, y la túnica interior o retina, que incluye la porción fotosensible de la pared posterior del ojo.

    La primera estructura que nos encontramos es la córnea. Tras atravesarla nos encontramos en la cámara ocular, un espacio lleno de líquido entre la córnea y el cuerpo vítreo. Este espacio se encuentra dividido en dos (cámara anterior y cámara posterior) por el iris. El humor acuoso que lo llena es el resultado de un ultrarrefinado de la sangre y su función es aportar nutrientes y oxígeno a la lente y a la córnea, que son avasculares.



    Figura 1. Corte transversal del ojo, vista sagital.

    Por último, en la parte posterior nos encontramos la retina. Es el elemento fotosensible. Podemos distinguir en la retina varias formas o estructuras especiales. Destacando el dico óptico y la macula. El primero es el punto ciego de la retina y la segunda presenta una fosa que es la zona más sensible a la luz.

    Aspectos funcionales de la retina.

    Podemos considerar la retina como la parte móvil del cerebro. Es una estructura del sistema nervioso central que se mueve con el ojo. No entraremos en las subestructuras que la componen sino en la funcionalidad de la misma, comenzando con los fotorreceptores, los conos y los bastones.

    Bastones y conos.

    Tanto los conos como los bastones son células receptoras alargadas. Ambos tipos de células difieren anatómicamente según se encuentren en el centro de la retina o en la periferia. Los bastones pueden medir 2 de diámetro en la zona central de la retina y llegar en las periféricas. Los conos de la fosa miden 1,5 mientras que los de las zonas que la rodean alcanzan de 5 a 8.

    La rodopsina es el fotopigmento de los bastones. Los conos, por su parte, pueden contener tres fotopigmentos diferentes, sensibles a los 435 nm (azul) cianolabe, 535 nm (verde) clorolabe y 565 nm (rojo) eritrolabe.

    La cantidad de energía radiante y las longitudes de onda son los factores físicos de la luz esenciales para el proceso visual. La cantidad de energía radiante se interpreta como brillantez mientras que las longitudes de onda son la base para la discriminación del color.

    Los bastones son los sensores ligados a la percepción del blanco, gris y negro, respondiendo a todas las radiaciones del espectro visual e incluso a las de la banda ultravioleta. A diferencia de los bastones, los conos sólo son sensibles a diferentes longitudes de onda de manera selectiva.

    La visión en color depende de dos procesos. El primero es la actividad receptora de tres tipos de conos. El segundo el procesamiento dentro del sistema nervioso central. Del primer proceso se sabe mucho y está bien estudiado, sin embargo, del segundo se desconoce prácticamente todo.

    Teoría Dual de la visión.

    La teoría Dual de la visión se basa en la concepción de la retina como si fuera un mosaico de cuatro tipo de receptores (los bastones y los tres tipos de conos). Los bastones son sensibles a la luz de baja intensidad y los conos se especializan en la visión en color y en el registro de detalles finos.

    Las modernas variante de esta teoría no hacen hincapié en la distinta funcionalidad de conos y bastones, sino más bien en la interacción entre conos, bastones y otras neuronas retinianas.

    Sin embargo, el nombre de esta teoría evoca otra dualidad curiosa. La dualidad de la luz, como partícula y como onda. Parecería que los bastones son sensibles a los fotones como partículas mientras que los conos lo serían como ondas.

    Campos receptores de la retina.

    En la retina de cada ojo existen unos 120 millones de bastones, 7 millones de conos y algo más de un millón de células gaglionares cuyas fibras forman el nervio óptico. La desigualdad entre el número de receptores y de células transportadoras evidencia el fenómeno de convergencia que opera en la retina. Esta convergencia es lo que conocemos como campos receptores. Un campo receptor es la superficie que cubren los receptores que estimulan al mismo neurocito ganglionar.

    La fosa o macula carece de bastones y contiene entorno a los 4.000 conos y la misma cantidad de neurocitos. En ella, el campo receptor se corresponde con los 2 aproximadamente, lo que corresponde con un ángulo córneal de sólo unos pocos minutos. Esta zona es la región de mayor discriminación de la retina y la parte del objeto percibido con más detalle es el que se proyecta sobre esta zona.

    En la retina periférica un campo receptor puede tener hasta $1mm$ de diámetro, lo que corresponde con un arco de 3º en el campo visual (que abarca 160º).

    Estos campos receptores extrafoveales con sensores mezclados (conos y bastones) no son muy precisos, pero a cambio pueden trabajar con estimulaciones y umbrales más bajos.

    Aspectos funcionales de la visión.

    Para nosotros es imposible mantener los ojos quietos un solo instante, ni aun cuando concentramos nuestra mirada en algo, siempre se producen pequeños movimientos. Esta especie de barrido de alta frecuencia es esencial para mantener una imagen visual. Cuando experimentalmente se consigue mantener la proyección de una imagen sobre la retina de forma estática, la misma tiende a desvanecerse, a disminuir su coloración y a que sus contornos se desvanezcan, ¿cómo se puede advertir en la figura 2.



    Figura 2. Si fijamos la vista en el punto central la corola parece difuminarse.



    Figura 3. El efecto de inhibir los bordes tiene como resultado la aparición de puntos negros fantasmas.

    agudeza de contornos y contraste.

    En la percepción de los contornos se encuentra implicado un fenómeno perceptivo que se conoce como inhibición lateral. El fenómeno es un mecanismo de interacción entre las neuronas para enfatizar los límites. Por ejemplo, si colocamos un folio blanco sobre una zona negra. Los efectos de esta peculiaridad se pueden apreciar en la figura 3.

    La percepción de los contornos, del color y del contraste, es por tanto, una apreciación distorsionada desde la misma recepción del estímulo. Algunos efectos son llamativos como el del ejemplo de Edward h. Adelson, que se puede apreciar en la figura 4. En dicha figura los cuadros a y b son exactamente el mismo tono de gris, sin embargo, el entorno y los contrastes con las zonas adyacentes hacen que se interpreten como cromatismos diferentes.

    Adaptación, agudeza visual y visión cromática.

    El ojo no es sensible siempre a la misma cantidad de luz. Un ojo adaptado a la oscuridad puede ser estimulado con una diezmilésima parte de la energía que estimularía al mismo ojo adaptado a la luz. Sin embargo, la velocidad a la que se adapta el ojo es variable. Se considera que se tarda una media hora en que el ojo se adapte a la oscuridad, mientras que la adaptación a la luz se realiza en pocos segundos.



    Figura 4. Los cuadros marcados con la a y la b presentan el mismo matiz de gris sin embargo, son percibidos de manera distinta por el ojo.

    La capacidad que tiene el ojo para adaptarse a la oscuridad no depende sólo de la cantidad de luz. Se ha comprobado que determinados estados de ánimo, la cantidad de oxígeno en sangre y otros factores influyen en la adaptación de la pupila.

    La agudeza visual del ojo es la medida en que puede distinguir detalles. Dicho de otro modo: la agudeza visual la podemos medir como la distancia mínima entre dos puntos para que sean percibidos como tales y no como una sola forma. Por supuesto la zona de mayor agudeza de la retina es la fóbea.

    Clínicamente la agudeza visual se mide con una fracción cuyo numerador es siempre 20. Ese número representa el número de pies (6 metros aproximadamente) que se toma por referencia. Es decir, una persona con una agudeza visual normal tendría un valor 20/20, es decir a veinte pies puede distinguir letras que se distinguen a 20 pies. Si tiene una agudeza visual de 20/100 quiere decir que está distinguiendo a 100 pies las letras que una persona normal distinguiría a 20. Si la agudeza visual es de 20/15 quiere decir que distingue las letras a tan sólo 15 pies.

    La visión cromática es la interpretación que hace el cerebro de la recepción de distintas longitudes de onda y es por tanto una experiencia subjetiva. La interpretación de la luz amarilla cuando se estimulan simultáneamente receptores rojos y verdes se considera que es consecuencia del procesamiento cortical. La percepción del color es algo limitado a algunos vertebrados diurnos. Parece que durante la filogenia la percepción del color evolucionó de forma independiente muchas veces.

    El tono de un color es la medida de la longitud de onda que se percibe, el rojo, verde, azul y amarillo son tonos diferentes.

    El brillo de un color es la sensación subjetiva determinada por la cantidad de negro en el color. El más negro es el menos brillante, es decir, a mayor cantidad de negro se absorbe una mayor cantidad de luz y por tanto se refleja una cantidad menor.

    La saturación o pureza de un color es la sensación subjetiva determinada por la cantidad de blanco dentro del mismo. El blanco altera el tono debido a que está compuesto por colores. Cuanto menos blanco tenga se dice que el color esta más saturado o es más puro su matiz.

    El efecto Purkinje.

    El efecto Purkinje debe su nombre a dicho experimentador que observó que había diferencias de percepción cromática en situaciones de poca intensidad lumínica. Observó que las flores ligeramente azules lo eran más a la caída de la tarde, mientras que en el crepúsculo las flores rojas parecían prácticamente negras. De hecho, esa es la explicación para la abundancia del color rojo en el fondo marino, muchos peces, corales y animales presentan dicho color para camuflarse en la oscuridad.

    El ojo adaptado a la oscuridad es más sensible al verde, mientras que el adaptado a la luz lo es más al amarillo.

    Postimágenes.

    Las postimágenes son sensaciones ópticas que persisten después de presentado el estímulo y pueden ser de dos tipos: las postimágenes negativas y las postimágenes positivas.

    Las postimágenes negativas se producen cuando miramos un estímulo durante unos 10 segundos y después fijamos la mirada en una superficie blanca. La imagen que se produce es complementaria al estímulo original. Tenemos un ejemplo en la figura 5.

    La postimagen positiva se produce cuando un estímulo iluminado intensamente se presenta durante 2 o 3 segundos y después se cierran los ojos. Esta postimagen se parece al estímulo original en color y forma, aunque no en intensidad.



    Figura 5. Mirar fijamente a la cruz durante unos 10 segundos y después fijar la mirada en la cruz de la derecha, la postimagen formada debería corresponder con los colores de la bandera española1.

    Aspectos psicológicos de la percepción.

    Uno de los factores que más influyen en la percepción es la atención. Todos conocemos la diferencia de actitud que hay entre ver y mirar o entre escuchar y oír. La atención es pues uno de los primeros factores psicológicos que van a modificar la percepción.

    La atención dista bastante de ser una forma de información pasiva. Al contrario, consiste en modificar el estado de vigilancia sobre determinados estímulos, de forma que aumenta el nivel de alerta que producen los mismos. La cantidad de estímulos a los que puede atender el cerebro humano de forma simultanea esta limitada a un rango de 6 a 11, según los casos. Esta limitación se ve compensada por la concurrencia de otras características o propiedades funcionales.

    Esta limitación de amplitud exige que se haga una selección de estímulos juzgando la relevancia de unos y otros. En esencia, sirven para establecer esta relevancia factores como el contraste, el tamaño, la intensidad y el movimiento de los objetos o estímulos.

    Leyes de la percepción.

    Las llamadas leyes de la percepción fueron formuladas en su mayoría por los llamados psicólogos de la forma o Gestalt. El gran número de éstas podemos reducirlo a tres grupos fundamentales: las que se refieren a la separación entre figura y fondo, las que aluden a las propiedades de las totalidades figurables y las que precisan las condiciones por las que se agrupan estímulos en figuras.

    Por ejemplo, Helson definió cinco principios:
    1. Ley de la primacía, en virtud de la cual los todos son primarios y aparecen con prioridad a las partes.
    2. Percibir todos es más natural que percibir partes. Ley de la pregnancia.
    3. Los todos (figuras) tienden a articularse de la forma más completa, simétrica, sencilla y perfecta posible. Ley de la buena figura.
    4. La ley de la autonomía que los todos tienden a ser regulados por factores intrínsecos, más que por factores externos a ellos.
    5. Finalmente, las partes derivan sus propiedades de su posición, o función en el todo. De ahí la posibilidad de que un mismo estímulo sirva de base a la percepción de figuras diferentes, como en el caso de las figuras reversibles. Ley de la flexibilidad del contorno.

    Las leyes que rigen la agrupación de los estímulos mencionan los siguientes factores:
    1. Proximidad: a igualdad de circunstancias, los estímulos más próximos tienden a percibirse como formando parte de un mismo objeto.
    2. Semejanza: a igualdad de circunstancias, los estímulos más semejantes tienden a percibirse como formando parte de un mismo objeto.
    3. Continuidad: a igualdad de circunstancias, tendemos a percibir como formando parte de una misma figura los estímulos que guardan entre sí una continuidad de forma.
    4. Simetría: la tendencia a organizar los estímulos en una forma simétrica, puede competir con alguna de las anteriores leyes, por ejemplo, con la de la semejanza, y configurar unitariamente estímulos heterogéneos.
    5. Constancia: la tendencia a percibir los objetos exteriores de una manera estable. Por ejemplo, si observamos un objeto a un metro de distancia y nos separamos de él, su imagen en nuestra retina se hace más pequeña, sin embargo, seguimos percibiendo sus dimensiones de manera constate.




    Figura 6. Algunas figuras que ejemplifican las leyes de la percepción.

    El número de las leyes de la percepción excede con mucho las expuestas aquí. Sería imposible en este espacio de tiempo hablar de todas ellas. Éstas, las expuestas por la Gestalt, junto con algunas otras como la de la constancia perceptiva, constituyen el cuerpo básico de las leyes de la percepción siendo las demás meros derivados o incluso redundancias de las mismas.

    .

  8. #7
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender La matemática de los gráficos 3d

    la matemática de los gráficos 3d
    Juan David González cobas.


    Este documento aporta un repaso de matemáticas pertinentes a las tareas que afrontan cada día artistas y desarrolladores 3d. Se incluyen aspectos de la geometría de los gráficos3d, la representación de objetos y sus transformaciones geométricas.

    Sistemas de coordenadas.

    La descripción de escenas tridimensionales requiere usualmente el empleo de un sistema de coordenadas cartesiano. Los puntos del espacio quedan determinados de forma única por sus tres coordenadas cartesianas (x y, z).

    Hay otros sistemas que no se emplean tanto en gráficos 3d. Los más corrientes son las coordenadas cilíndricas y esféricas.

    Los tres sistemas asignan coordenadas a los puntos de acuerdo al esquema de la figura 1. Cada sistema usa tres de las dimensiones que, allí se referencian:

    las ecuaciones que nos permiten cambiar entre un sistema y otro son:



    Figura 1. Sistemas de coordenadas cartesianas, cilíndricas y esféricas.

    De mayor importancia en gráficos por computador son las coordenadas homogéneas o proyectivas. Los puntos ordinarios del espacio tridimensional reciben cuatro coordenadas en lugar de tres:

    esto introduce una redundancia evidente, de forma que a cada punto del espacio le asignamos infinitas cuaternas de coordenadas homogéneas, de acuerdo con la equivalencia:

    de forma que cuaternas proporcionales denoten el mismo punto. La terna usual (x y, z) se identifica con la cuaterna (x y, z, 1), y la cuaterna (x y, z, w) denota un punto (x/w, y/w, z/w) del espacio ordinario.

    Si w=0, tenemos un punto del infinito, lo que logramos con la introducción de cuaternas es, precisamente, una coordinación de la geometría del espacio proyectivo tridimensional. Esta es la primera ventaja de la representación: no se necesita ningún tratamiento especial para puntos del infinito casos especiales de paralelismo. Las transformaciones proyectivas se traducen fácilmente a transformaciones lineales en el espacio de 4tuplas.
    (es decir, a matrices 4 x 4). Otra ventaja es que las transformaciones afines usuales también se tratan de forma regular como productos de matrices, como veremos en la sección 4.




    Figura 2. Coordenadas proyectivas.

    álgebra vectorial.

    Operaciones con vectores
    Los vectores del espacio tridimensional se representan por lo común por sus coordenadas cartesianas, y las operación con vectores se definen en términos de ellas:



    Figura 3. Interpretación geométrica de las operación con vectores.

    Interpretaciones geométricas.

    La interpretación geométrica de estas operación puede verse en la figura 3. En ella vemos que el producto escalar tiene la interpretación alternativa y el producto vectorial es ortogonal a los factores, con módulo igual al área del paralelogramo que definen:

    de esto deducimos que los dos productos son de especial interés, al permitirnos calcular los elementos métricos de un modelo: distancias, ángulos, área, volúmenes, ortogonalidad y paralelismo. Veamos algunos ejemplos:




    figura 4. Volumen de un paralelepípedo.

    El ángulo f entre v y w es
    Dos vectores son ortogonales si y sí y sólo si v x w=0.

    Un Vector normal al plano definido por v y w viene dado por v x w.

    El volumen del paralelepípedo (celda) definido por los vectores u, v, w (ver figura 4) es


    Esta cantidad se conoce también como el triple producto de los vectores u, v, w o, más corrientemente, su determinante. El cómputo del mismo sigue reglas bien conocidas en las que no nos detendremos demasiado.

    Bases
    Dado cualquier conjunto de vectores , el subespacio engendrado por ellos es el conjunto de todos los vectores que podemos construir como combinación lineal de , usando la suma y la multiplicación por escalares:






    El conjunto
    Es libre, o linealmente independiente, si.

    o, de otro modo, si ningún Vector del conjunto puede expresarse como una combinación lineal de los demás. Un conjunto libre que genera el espacio total en consideración es una base del mismo. En nuestro espacio tridimensional, todas las bases tienen tres elementos. Además, una base b
    Donde vectores diferentes son ortogonales se denomina ortogonal. Si además es decir, todos los vectores son de norma unidad, la base es ortonormal. En una base ortonormal, los vectores se pueden expresar de forma simple y conveniente como sigue:

    geometría afín y proyectiva
    En la sección previa hemos mencionado de pasada la distancia entre puntos, y usado sin restricción la notación, que para referirnos al Vector que une el punto p con el punto qué. Rigurosamente hablando, esto sólo es legítimo si al espacio tridimensional ordinario (carente de coordenadas) lo dotamos de una estructura afín.

    Esto significa, simplemente, que existe una operación para trasladar cualquier punto p por cualquier Vector v, de forma que el resultado sea otro punto que denotaremos por p+v. La operación de traslación debe satisfacer las propiedades obvias siguientes:
    1. Para cada Vector v, la correspondencia
    + v es uno a uno.
    2. Para cada punto, se cumple p+ 0= p.
    3. Para cada punto p y vectores v, w, tenemos (p + v) + w = p + (v + w)
    estas propiedades son tan obvias en el trabajo 3d ordinario, que las usamos sin conciencia de ello. La existencia de un Vector que une p con que, por ejemplo, es una consecuencia de ellas, la asignación de coordenadas en el espacio ordinario también lo es. Si añadimos a esto la existencia de un producto escalar, podemos definir conceptos de distancia, ángulos y ortogonalidad, de forma que cualquier problema de geometría métrica puede resolverse de forma analítica.



    Figura 5. Ecuaciones de un plano.

    Resumimos a continuación los hechos más simples relativos a entidades «rectas» en geometría afín tridimensional: puntos, líneas y planos. Estas son las variedad afines o lineales de la geometría habitual, y pueden definirse siempre por medio de sistemas de ecuaciones lineales.

    Planos
    Un plano se suele definir de dos maneras:
    Ecuación implícita
    Por medio de una sola ecuación lineal que satisfacen las coordenadas de los puntos del plano.

    Ax + by + cz + d = 0.

    ecuación paramétrica
    Los puntos del plano se obtienen barriendo todos los posibles valores de dos parámetros reales u y v. En forma vectorial o, en coordenadas.
    los vectores (a, b, c) y (a, b, c) son vectores de dirección del plano. Es fácil pasar de una representación a otras: a partir de la ecuación implícita es fácil obtener tres puntos no colineales
    Que nos dan las ecuaciones paramétricas. El paso de las ecuaciones paramétricas a la implícita requeriría, en principio, eliminar por reducción los parámetros u. Pero hay un método más fácil usando el producto vectorial:
    Líneas
    Las rectas pueden definirse por un punto y una dirección, o por la intersección de dos planos. Esto da lugar a las posibles representaciones analíticas de la recta con ecuaciones implícitas. dos ecuaciones lineales (independientes) que definen la línea como intersección de dos planos:

    ecuación paramétrica
    Nos dan las coordenadas de puntos de la línea al barrer un parámetro real u todos los valores posibles:

    de nuevo, la conversión entre las dos representaciones es sencilla. La ecuación paramétrica puede ponerse en forma implícita eliminando el parámetro u, y de las ecuaciones implícitas obtenemos fácilmente dos puntos con los que construir la paramétrica, o un punto y el Vector de dirección, proporcionado por la expresión.




    Figura 6. Ecuaciones de una línea recta.

    geometría de la incidencia y geometría métrica
    Con estos conceptos, y teniendo en mente las propiedades del producto escalar y vectorial, podemos resolver cualquier problema de geometría analítica elemental. Mejor que una enumeración de problemas-tipo, vamos a resolver algunos problemas sencillos para adquirir una impresión de las técnicas que conllevan. Por ejemplo, queremos calcular la distancia entre dos rectas, ¿cómo se muestra en la figura 7. Ambas rectas r1 y r2 vienen dadas por puntos pi y vectores directores UI. Un poco de reflexión nos convencerá de que la distancia mínima de entre las dos rectas se alcanza entre puntos q1 y q2 tales que el segmento q1q2 es ortogonal a las rectas dadas. Podemos ver esto más claramente construyendo los planos paralelos p1 y p2 que contienen a cada recta, entonces,q1q2 es perpendicular a ambos. Así pues y entonces q1q2 = u1 × u2. Ahora, el Vector p1p2 une puntos de ambas rectas, que son ortogonales a q1q2. Entonces, el producto escalar con el Vector unitario u1 × u2 nos dará el módulo de la proyección de p1p2 sobre q1q2, que es exactamente d. Obtenemos.




    Figura 7. Ejemplo de la distancia entre dos rectas.

    matrices y transformaciones geométricas
    Las tareas que podemos realizar con los conceptos vistos hasta ahora son bastante elementales. Un tratamiento más potente de los objetos geométricos exige poder expresar operación complejas con las formas. El método habitual de representar transformaciones lineales, y de calcular sus efectos, es el uso de matrices.

    Una matriz x n es una tabla rectangular de números de la forma que se escribe de forma más compacta como
    O simplemente como (aij) si las dimensiones de la matriz se sobrentienden.

    Al igual que los vectores, las matrices pueden sumarse y restarse componente a componente. El producto de matrices viene definido por la regla.

    observemos que, incluso cuando m=n=p, tenemos, es decir, el producto de matrices no es conmutativo. La transpuesta de una matriz se obtiene intercambiando filas y columnas:

    una matriz cuadrada a de dimensión nn es regular si existe otra matriz b de la misma dimensión que cumpla que ab = bellas artes = 1. Si existe, la matriz b se denomina inversa de a, y se denota por a-1, normalmente, usaremos vectores fila y vectores columna para representar puntos y vectores, y matrices cuadradas para representar transformaciones lineales. Las dimensiones de nuestras matrices serán 33 o bien 44 casi siempre, comencemos expresando matricialmente el efecto sobre un objeto de una traslación de Vector v = (vx, vy, z). Una transformación de este tipo manda un punto (x y, z) a otro (x y, z), donde o, de manera más compacta, p = p + v. Vemos aquí que está transformación no es, estrictamente hablando, lineal: sus ecuaciones presentan términos independientes. ¿cómo expresaríamos analíticamente una reflexión especular alrededor del plano xy? Tal reflexión cambiaría el signo de las coordenadas z, dejando las demás intactas. Tales cambios independientes se expresarían por medio de ecuaciones

    de hecho, cualquier transformación lineal puede ponerse en forma matricial. La receta es:
    1, escogemos una base e1, e2, e3
    2, aplicamos la transformación a los vectores de la misma, obteniendo f1 = te1, f2 = te2, f3 = te3
    3, ponemos los vectores así obtenidos como columnas de la matriz deseada.

    otra transformación usual es la homotecia o escalado por un factor l. Naturalmente, si 0<l<1, tenemos una contracción, mientras que si l >1 tenemos una dilatación. Cuando l =-1, la denominamos reflexión respecto al origen. Cada coordenada de un punto queda multiplicada por l, de modo que la rotación constituye un caso más interesante. Queda determinada por el eje de rotación y un ángulo. La rotación de ángulo f respecto al eje Z puede calcularse usando la receta anterior:

    1. Sea (1, 0, 0), (0, 1, 0), (0, 0, 1) la base.
    2, rotémosla, obteniendo los vectores (cos f, sin f, 0), (-sin f, cos f, 0), (0, 0, 1).
    3, construyamos una matriz con esas tres columnas.



    figura 8. Cizalláje de un cubo.

    Esto tiene como efecto desplazar las «capas superiores» de un cubo de una manera parecida a como ocurriría con un mazo de cartas, según se muestra en la figura 8.
    ¿Qué sucede si queremos componer un cizalláje con una traslación, y después aplicar una rotación? La cosa se desorganiza un poco:
    Por culpa de los términos independientes en el producto. En general, obtendremos siempre una transformación del tipo.

    ahora podemos apreciar la ventaja de usar coordenadas homogéneas. El espacio afín ordinario puede dotarse de coordenadas con una cuarta componente adicional, de valor unidad, de manera que, la ecuación anterior se podrá escribir como todas las transformaciones anteriores pueden escribirse así y cualquier transformación afín admite, en coordenadas homogéneas, la forma de una transformación lineal, componiéndose entre ellas por simple producto de matrices.

    Sumario proyectivo.

    Como resumen, veamos la forma que adoptan, en 4-coordenadas proyectivas, algunas de las transformaciones mencionadas anteriormente:

    Determinantes
    Consideremos una transformación lineal arbitraria, como la representada en la figura 9. La transformación distorsiona la caja azul, convirtiéndola en un paralelepípedo representado en rojo. Hemos hecho coincidir las aristas de la caja con los vectores de la base canónica e1, e2, e3, de modo que las aristas azules correspondientes se transforman en los vectores f1=te1, f2=te2, f3=te3 que son aristas que definen el paralelepípedo rojo.

    ¿Cuál es el volumen del paralelepípedo? Hay tres hechos obvios.

    Las propiedades indicadas son validas, naturalmente, para cualquier posición funcional de v(·). Estas resultan ser las propiedades que definen de forma única (excepto un factor constante) al determinante de una matriz. Escribimos


    Para órdenes mayores, esto es inútil, y resulta preferible usar las propiedades que definen el determinante, a saber: podemos añadir a cualquier fila una combinación lineal de las demás. Esto permite ir haciendo ceros una columna de forma que el cálculo se reduce a un determinante de orden inferior en virtud del desarrollo anterior det(a). Pero hay una forma mucho más rápida de aplicar esta receta, la explicaremos en la sección siguiente.



    figura 9. Determinante como medida de volumen.
    álgebra lineal numérica y resolución de ecuaciones.

    En la sección 5, observamos que algunas tareas tienen bastante coste computacional. Nos gustaría aliviar ese coste para que nuestros programas no se perpetúen en bucles interminables. Necesitamos a menudo.

    Invertir una matriz.

    Calcular un determinante.

    Resolver un sistema de ecuaciones lineales.

    Encontrar una base ortogonal/ortonormal de un subespacio.

    Encontrar los ceros de un polinomio.

    Resolver ecuaciones y sistemas no lineales.

    Ajustar una curva o función a un conjunto de puntos.

    La mayoría de estas tareas son el tema del álgebra lineal numérica, en la cual, no nos importan las propiedades algebraicas de las operación lineales, sino solamente encontrar una solución que sea correcta de la forma más rápida posible. Las tareas de la lista anterior en las que no intervienen matrices son el objeto del análisis numérico en general. De nuevo, tampoco nos interesan las propiedades matemáticas elegantes, sino resolver las cosas, rápido y con precisión suficiente.

    La descomposición lu
    Llamamos así a una forma embellecida de lo que usualmente se denomina eliminación Gaussian: el proceso de hacer ceros en una matriz combinando filas linealmente. La idea nos lleva, al final, a una matriz en forma triangular superior (la parte u de la descomposición). Si además llevamos cuenta de las operación realizadas, aplicándolas a una flamante matriz unidad, obtendremos una matriz triangular inferior (la parte l del monstruo) y, mágicamente, llegaremos a algo como esto:

    Y, magia.

    Lu = a.

    El procedimiento puede realizarse in situ (sobre la propia matriz original). Cualquier paquete respetable de álgebra lineal numérica contiene una función estándar que proporciona, por lo común, las partes l y u combinadas en una sola matriz, y una permutación de filas, que se usa para pivotar por razones de estabilidad numérica, así, la descomposición LU se humilde, de forma «oficial», en.

    Pa = lu.

    Donde p es una matriz de permutación cuyo efecto es permutar las filas de a. Por ejemplo, si alimentamos a la rutina linpack de descomposición.

    Lu con.



    Esta descomposición se usa, principalmente, en tres problemas.

    Calculo de determinantes.

    Obtenemos.

    Det(a) = det(p) det(l) det(u).

    Una matriz de permutación como p tiene determinante ± 1 según la paridad de la permutación. La matriz triangular inferior tiene obviamente det(l)=1, y obtenemos, entonces, que, salvo un signo, det(a) es el producto de los elementos de la diagonal principal de u. Esto nos permite el cálculo de determinantes en tiempo o (n3), que es la complejidad usual de la descomposición LU.

    Resolución de sistemas de ecuaciones lineales.

    Supongamos que nos dan un sistema de ecuaciones lineales como éste.



    Que escribiremos en forma matricial.




    Observemos que si hay que resolver un sistema lineal con varios juegos de términos independientes, la descomposición lu puede reutilizarse, siendo las sustituciones hacia delante y hacia atrás procesos de coste o (n²) solamente. Esto tiene una aplicación directa en.

    Inversión de matrices.

    Aplicando los procesos 3 y 4 a las columnas de la matriz identidad, obtenemos las columnas de la inversa. Este es, en la practica, el procedimiento de inversión más efectivo para matrices densas.


    Resolución de ecuaciones.
    ¿Qué hacemos si necesitamos resolver una ecuación no lineal? Pongámonos en el caso siguiente: hemos modelado una superficie por medio de una función paramétrica p(u, v) que nos da el Vector de posición de un punto genérico de la mismo como función de los parámetros u, v. Y ahora precisamos encontrar la intersección de la superficie con el eje Z.




    Que se conoce como el jacobiano de f, evaluado en UI, vi, zi. Si existe la duda, sí: este es el mismo jacobiano que encontraremos posteriormente en la sección? Si tenemos suerte, los puntos sucesivos que iremos obteniendo se aproximaran cada vez más a una solución de la ecuación tras unas cuantas iteraciones. Y, si no tenemos suerte.

    La convergencia del método de newton es cuadrática si tenemos la fortuna de comenzar suficientemente cerca de una solución. Esto quiere decir que en cada iteración duplicamos el número de cifras exactas de la solución, si todo va bien (lo que, naturalmente, no tiene por qué ocurrir cuando más lo necesitamos).

    Geometría diferencial en cuatro palabras.




    Figura 10. Triedro móvil de frenet.

    Donde te es una función que mide cuanto dista la curva de ser plana: la torsión. Llamamos a b el Vector binormal, y las ecuaciones? Son las fórmulas de frenet-serret.

    Sólo para físicos: sin duda, se habrán dado cuenta ya de que.



    Superficies.

    En la sección 9 veremos que, además de por mallas triangulares o poligonales, podemos modelar superficies empleando funciones más complicadas, como polinomios bicúbicos. En general, podemos describir una superficie por un parche coordenado, una función de valor vectorial con dos parámetros (u,) que recorre lo puntos de la superficie a medida que u y v van barriendo su dominio de valores, según vemos en la figura 11. Resulta importante saber cómo realizar cálculos con esta representación.



    Figura 11. Superficie paramétrica.

    En la figura se ve fácilmente que, al mantener fijo v y hacer variar u, obtenemos una familia de curvas (una curva por cada v fijo), y, cambiando los papeles de las dos coordenadas, se obtiene otra familia parametrizada por u. Se obtiene, pues, una red de curvas coordenadas que cubren todo el parche. El Vector x(u,) es una función de dos variables. Derivando parcialmente obtenemos los dos vectores tangentes.




    O área de superficie.



    Una vez más, el radical es el jacobiano de la aplicación que lleva (u, v) a la superficie intrínseca.

    Interpolación y aproximación.

    Estos dos problemas aparecen frecuentemente en modelado geométrico.

    Fórmula de interpolación de Lagrange.




    Es obvio qué.



    porque ningún par de abscisas coincide. Y esto resuelve nuestro problema.

    La fórmula 6, no obstante, no es muy útil en los cálculos. Los coeficientes del polinomio de interpolación se encuentran mejor resolviendo un sistema de ecuaciones lineales, o mediante un uso inteligente de la simetría o la elección hábil de los puntos de muestra (xi, yi).






    ajuste por mínimos cuadrados.

    Otro problema distinto es el de aproximación: obtener una curva que pase cerca de los puntos dados, en algún sentido establecido. Se trata de un problema vasto y difícil. Los criterios de cercanía varían mucho según las aplicaciones, y aquí vamos a aproximarnos sólo cuadráticamente (con perdón).

    Nos referiremos tan sólo a la forma más primitiva, humilde y, sin embargo, útil de aproximación: el ajuste por mínimos cuadrados. Una aplicación corriente de esta técnica es la solución de un problema de interpolación sobredeterminado, en el que tenemos más ecuaciones que incógnitas.

    Supongamos, por ejemplo, que nos dan una serie de puntos.

    Pi = (xi, yi).

    Con i = 1, n, y sea n > 4. Nos obligan a aproximar a ellos una curva que tiene que definirse por un polinomio cúbico p(x) = ax³ + bx² + cx + d. Así que tratamos de hacer mínimo.



    esto es, como máximo, una función cuadrática de los parámetros indeterminados que constituyen los coeficientes a, b, c, d. Para minimizar, obligamos a que las derivadas parciales de e respecto a ellos sean nulas:


    Los coeficientes a, b, c, d pueden hallarse finalmente resolviendo la expresión anterior.

    Modelado de curvas y superficies: Splines.

    Nos dan n + 1 puntos , y desearíamos construir una curva que pase por ellos con la menor contorsión posible. Se trata de un problema de interpolación. En otras ocasiones, los puntos dados son simplemente puntos de control, y queremos que la curva pase cerca de los puntos, o toque algunos de ellos mientras que solamente se acerque ha otros. Se trata de un problema de aproximación.

    En gráficos por computador, normalmente resolvemos estos problemas usando funciones enlatadas (¿precocinadas?) con juegos definidos de parámetros que es preciso calcular para que la curva cumpla nuestros requisitos. Hay una serie larga de opciones a nuestra disposición:
    Splines naturales.

    Interpolantes de Hemite.

    Curvas de Bézier.

    B-Splines.

    Nurbs.

    Splines naturales.

    Un primer enfoque es intentar interpolar por segmentos. El segmento de curva que va de pi a pi+1 será una función pi (t) con te recorriendo el intervalo (0, 1). Las condiciones a imponer son cuatro.



    Porque cada pi es un polinomio cúbico. Las dos últimas identidades son condiciones de regularidad, para que la curvatura no tenga «saltos».

    El inconveniente de este enfoque es que cada uno de los puntos de control afecta a todos los segmentos, obligando a recalcular todo si cambiamos un simple punto. Y ello implica la resolución de un sistema de ecuaciones para cada tramo.

    Interpolantes de Hemite.




    En la aplicación más corriente, las curvas de Bézier aparecen como parches con cuatro puntos de control. Es un ejercicio sencillo (hágase), comprobar que
    Determinan la tangente (la velocidad, de hecho) en los extremos, y que la curva pasa por los puntos de control finales , ¿cómo se ve en la figura 15.

    B-Splines.

    Un problema de las técnicas usuales de interpolación es que la curva completa depende de cada punto de control, el cambio de uno de ellos obliga a calcular de nuevo (y dibujar también) toda la solución.




    Figura 14. Gráficas de las funciones de base b-Spline para el conjunto de nodos {0,2,3,6,7,8,11,13}. En la gráfica inferior (suma de los anteriores), se verifica la propiedad de partición de la unidad.

    Esta vez, hemos escogido nodos uniformemente espaciados. Podemos observar que la curva esta contenida en el cierre convexo de los puntos de control, lo que es una consecuencia de la positividad de la base de bsplines, y de que su suma es la unidad.



    Figura 15. Curva de Bézier ajustada a los puntos de control extremos y con tangentes que, apuntan a los puntos de control intermedios.

    nurbs.

    Los b-Splines pueden aplicarse sin cambios si trabajamos con coordenadas proyectivas, y obtenemos así Nurbs (siglas de non-uniform rational b-Splines). La fórmula resultante.



    En que el denominador puede tomarse como la componente homogénea de los puntos de control en coordenadas proyectivas, incorpora también factores de peso wk, lo que tiene como consecuencia que las funciones de base son ahora funciones racionales del parámetro.

    La ventaja principal de esto es su invariancia proyectiva: un b-Spline no racional, transformado por una proyección, deja de ser normalmente un b-Spline. Dicho de otro modo, el b-Spline de los puntos de control transformados no coincide con el transformado del b-Spline original. Sin embargo, esa coincidencia sí se da en los b-Splines racionales, de forma que para transformarlos basta aplicar la transformación a los puntos de control.



    Figura 16. Aproximación a cinco puntos de control por b-Spline cúbico uniforme.

    Splines para superficies paramétricas.

    Cuando trabajamos con superficies, podemos aplicar las mismas técnicas que con curvas, palabra por palabra. Ahora que tenemos dos parámetros, u, v, precisamos como base el producto tensorial de las bases Spline en cada uno de ellos. Por ejemplo, podemos interpolar un parche de superficie a través de una red de puntos de control PIJ por medio de la fórmula.



    La propiedad de partición de la unidad sigue siendo valida en la base producto. El mismo truco se aplica a parches de Bézier o Nurbs.

    \n
    \n
    \n

    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 
Nombre: Imagen36.jpg 
Visitas: 4964 
Tamaño: 3.2 KB 
ID: 93723  
    Última edición por 3dpoder; 10-02-2009 a las 02:12

  9. #8
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender Tu cara me suena-blendiberia-200

    tu cara me suena. Emilio José Molina Cazorla.
    [email=ej-Molina@terra.eej-Molina@terra, es[/email] :


    La luz y el sonido tienen algo, así como una relación de hermandad. La luz es, valga la redundancia, el hermano luminoso, el bonito, el que todo el mundo conoce y en el que todos se fijan. Quién más y quién menos ha oído hablar de fotones, conos y bastoncillos retinas, colores.

    Inst. Conceptos básicos.

    El sonido es el hermano malo, el del lado oscuro. Nadie se acuerda de él, excepto cuando falla. Porque, si la imagen es el físico, el sonido es, desde luego, el alma de lo audiovisual. Vamos a intentar darlo a conocer durante las próximas líneas.
    ¿Qué es el sonido?

    Como hermanos que son, el sonido y la luz tienen muchas cosas en común, y otras particulares. Mientras que la luz es una onda electromagnética, capaz de propagarse en el vacío y excitar mediante fenómenos fotoquímicos los terminales nerviosos de nuestras retinas, el sonido es una onda de presión, que se propaga mediante procesos de compresión-descompresión del medio en el que se encuentra. Para hacerse una imagen Mental, es algo parecido al típico juguete de movimiento continuo (figura 1).

    Por ello, en el vacío no se propaga al no haber nada (venga, va, quisquillosos: casi nada) que comprimir, y esto tiene dos graves consecuencias:
    • todas las películas de batallas espaciales son un gran embuste.
    • en el espacio, nadie puede oír tus gritos.



    figura 1. Típico juguete de movimiento continuo.

    velocidad del sonido, refracción, reflexión, interferencias.

    Sin embargo, comparte con la luz el que su velocidad cambie según el medio que atraviesa, y los fenómenos de refracción, reflexión e interferencias. En medios poco densos (por ejemplo, el caucho), su velocidad de transmisión será menor que en otros más densos (por ejemplo, el acero).

    La velocidad de la luz (casi 300.000 km/s en el vacío) es inmensamente más alta que la del sonido (340 m/s en el aire a 20ºc). Veremos aquello que provoca un sonido antes de escuchar el sonido que ha provocado. Primero vemos el relámpago y luego escuchamos el trueno. Esto tiene alguna implicación en la creación de animaciones, sobre todo en lo que respecta al lipsync o sincronización labial: si colocamos la voz del personaje a la vez que el movimiento labial, nuestro cerebro se quejara. Sin embargo, si lo desplazamos un par de frames más tarde, se verá (y escuchara) de forma mucho más natural.

    El fenómeno de refracción es fácilmente perceptible cuando estamos buceando. Las voces que vienen de fuera (las que vienen de dentro son otro problema que ha de ser tratado con medicación) se escuchan distorsionadas por el cambio de velocidad y de dirección de la onda.



    Figura 2. Onda típica.

    La reflexión, nos es mucho más familiar. Tiene mucho que ver con los coeficientes de absorción de los materiales, y vulgarmente lo conocemos como eco (más adelante entraremos en detalle sobre este aspecto). El reflejo no siempre es idéntico a la onda original, al igual que los objetos reflejan todas las frecuencias de la luz, excepto las que absorben (dando lugar a la percepción de los colores), también absorben más ciertas frecuencias de sonido, provocando efectos curiosos como el de la carencia de eco del pato, que en realidad no es más que el producto de la absorción de ciertas frecuencias, reflejando sólo una porción no audible para el oído humano.

    a menos que seáis constructores de auditorios y teatros, o queráis buscar la localización idónea de vuestro flamante nuevo equipo de home Cinema, no es necesario que os preocupéis de este asunto.

    el sonido es una onda y, como tal, sufre fenómenos de interferencias. Los sonidos cuyas crestas están en la misma fase, incrementan su intensidad. Los que están en fases contrarias, se atenúan. El primer caso es muy importante de cara al audio digital, donde los sonidos fácilmente saturan el tope de sensibilidad de los micrófonos, provocando un resultado cascado. El segundo es interesante de cara a aplicaciones experimentales de reducción de ruido en lugares cercanos a sitios con alta contaminación acústica, ya que programas en tiempo real producen ondas complementarias que contribuyen a disminuir localmente dicho ruido, cancelando las fases del sonido. También se utiliza en la reducción de ruido en el mensaje-procesado de audio.

    Tono, timbre, intensidad.

    Hemos hablado de crestas de ondas. Veamos una imagen de una onda típica (figura 2).

    Una imagen esta compuesta de diferentes colores con distinta saturación que dibujan formas. Una onda tiene una frecuencia fundamental (inversa a su longitud de onda), más o menos amplias y con unas determinadas frecuencias secundarias.

    El tono es la altura del sonido. Cuanto menor sea su frecuencia (y por tanto, más amplia su longitud de onda), más grave será la nota. Al igual que en la luz sólo llegamos a captar frecuencias hasta un nivel de rojos (por encima de los infrarrojos), empezamos a captar sonidos a partir de los 20Hz (un hercio es un ciclo por segundo). Los tonos medios corresponden a frecuencias de unos 300 a 5000Hz (5 Khz), y los agudos alcanzan hasta los 20 Khz, que sería el límite de la audición humana (en la luz equivaldría al límite entre violeta y ultravioleta).

    El timbre es la forma de la onda, sus frecuencias secundarias, y es lo que nuestro cerebro utiliza para distinguir la voz de Darth Vader de la de nuestra madre. Bueno, dependiendo de lo mucho que fume. O un piano, un violín o un oboe (por poner un ejemplo más clásico, suponiendo que estén tocando ese tipo de música) de una taladradora (según la pericia del practicante, la diferencia puede radicar en el sutil vibrar de la taladradora).

    Podemos ver un ejemplo de las diferencias entre una nota de un piano, un violín, un oboe y un taladro en la figura 3.



    Figura 3. Diferencias entre una nota de un piano, un violín, un oboe y un taladro. Figura 4. Envolvente de una onda.





    También es muy importante la forma general de la onda (llamada envolvente), que también utiliza intensivamente nuestro cerebro para catalogar qué tipo de sonido estamos procesando (percusión, voz humana, instrumentos de viento).

    La intensidad de la onda tiene relación con la amplitud de dicha onda, y se traduce en el volumen con el que percibimos un sonido. Recordemos que el sonido es una onda de presión (y como tal, se podría medir en pascales). Sin embargo, el convenio general para medir el sonido es el de la relación de la intensidad del mismo con respecto a la intensidad de un ruido base, y su unidad son los decibelios. Al igual que los terremotos, sigue una escala logarítmica, donde cada grado superior implica multiplicar la potencia. En la figura 5 podemos ver las distintas intensidades, en decibelios, de varias fuentes de sonido distintas.

    Psicobiología de la percepción acústica

    En realidad, ya hemos empezado a hablar de percepciones, de lo que el cerebro interpreta o deja de interpretar. Sigamos, pues, con ello.

    Antes hablábamos del fenómeno de la reflexión, y decíamos que se conocía como eco. En realidad, el eco no es más que una reflexión que tarda más de 50 milisegundos en llegar a nuestros oídos a partir de la fuente original. A menores tiempos, el cerebro no lo entiende cómo dos ondas diferentes, sino como una reverberación de la misma onda, una cola residual que, a efectos psicológicos, dota de calidez, profundidad e intensidad a un sonido (sólo hay que pensar en el estudiado efecto de reverberación de las catedrales y los órganos, o en el leve eco que se suele dejar en las baladas). De la misma forma, la iluminación global o secundaria, proporciona mayor calidez y organización a las imágenes que hacen uso de ella, le da mucha más riqueza.

    En el mundo sonoro, por tanto, hay que tener muy en cuenta cual va a ser la reverberación final para conocer el impacto que un sonido tendrá sobre el público. Los estudios de grabación, las salas de cine, y por supuesto los auditorios y teatros han de estudiar a fondo los materiales y su disposición para incrementar o menguar los efectos de reverberación.

    En la figura 6 podemos ver gráficamente cómo Jandro (el creador de Yafray.) recibe un haz de ondas sonoras.



    figura 5. Fuentes de sonido y sus intensidades. Figura 6. Jandro recibe un haz de ondas sonoras.



    La resonancia es la vibración simpática que se da en algunos objetos cuando la frecuencia fundamental de una onda que suena cerca es múltiplo (también llamado armónico) de su propia frecuencia de sonido. Por ejemplo, ciertas notas tocadas por instrumento de viento son capaces de hacer vibrar las cuerdas de una guitarra, si sus notas son las mismas o frecuencias múltiplos (octavas superiores). O las cuerdas del interior de un piano, cuando se toca una nota (ejercicio practico: tocar fuerte una nota y, tras soltarla, pulsar el pedal de sostenido enseguida, las cuerdas, destensadas, vibraran cada cual según su resonancia con la nota que hubiéramos pulsado). También nuestras cuerdas vocales tienen resonancia con nuestra propia voz, lo que produce frecuencias secundarias, armónicos, que le dan su timbre característico.

    Estéreo, surround, efecto Doppler.

    Tenemos percepción de profundidad en la visión gracias a Poser un par de ojos (a menos que seas alguna especie de tipo raro con casco espacial y no distingas a tu suegra de un piano de cola). Esta estereoscopia permite a nuestro cerebro calcular la profundidad de un objeto a partir de las pequeñas diferencias de ángulo de la imagen recibida por cada ojo individual. Con los oídos pasa tres cuartos de lo mismo: dependiendo de su posición, una onda sonora llegara antes a un oído que ha otro.

    Si la fuente está más cerca de nuestro oído izquierdo, llegara antes hasta éste, atravesara el cráneo y estimulara más tarde el oído derecho.

    Por la forma de nuestro pabellón auditivo, también escucharemos mejor los sonidos que provengan de nuestro frente que de nuestra espalda.

    Con ambos factores, somos capaces de descubrir con bastante precisión la localización y lejanía de una fuente sonora a partir de las pequeñas diferencias de tiempo e intensidad.

    Con una situación adecuada de fuentes sonoras, podemos conseguir un efecto envolvente (surround), sobre todo si contamos con un altavoz especial para bajos (subwoofer), ya que los altavoces convencionales apenas son capaces de reproducir ciertas frecuencias muy graves.

    El efecto Doppler, al igual que se aplica a la luz para descubrir si un emisor se aleja -tiende al rojo-o se acerca -tiende al azul-al observador, muestra el mismo comportamiento en el sonido (al fin y al cabo, en ambos casos hablamos de frecuencias de ondas que se acercan o se alejan). Cuando un sonido se aleja, tiende a escucharse más grave (sus ondas nos llegan alargadas), mientras que si se acerca, se escucha más aguda (sus ondas nos llegan comprimida). Este efecto nos resulta muy familiar, todos reconocemos el sonido de una ambulancia acercándose y alejándose.

    Zonas de percepción.
    ni escuchamos las mismas frecuencias por igual, ni todos tenemos los mismos límites de audición. Las razones: milenios de evolución.

    Como decía Jack, vayamos por partes. Literalmente. En la figura 7, podemos ver el sistema auditivo con una serie de partes detalladas.

    Recapitulemos: los sonidos son variaciones de presión que se transmiten por un medio no vacío. En el caso humano, este medio suele ser aire. Las ondas son recogidas y concentradas por el pabellón auditivo, que las conduce hasta el tímpano. El tímpano no es más que una membrana (como la de un tambor) que transmite está vibración a los huesos del oído (martillo, yunque y estribo), que a su vez los transmite (ya con mucha menos fuerza) al oído interno (canales semicirculares y caracol). El oído interno se encarga, aparte del importante tema de escuchar, del no menos importante tema de conservar el equilibrio, estático o dinámico (también se encarga de averiguar si nos estamos moviendo). Una vez en el caracol, el sonido que ha sido transmitido por el estribo hace vibrar el líquido que lo contiene. Gracias a su forma en espiral estrechada, cada sección del caracol tiene resonancia con unas determinadas frecuencias. Desde los sonidos graves en la ancha base (a partir de 20 Hz) hasta los más agudos en la punta final (20 Khz). Los enlaces nerviosos de la zona se encargan de traducir la energía mecánica de la vibración a energía eléctrica, que mandan seguidamente a través del nervio auditivo.



    figura 7. Sistema auditivo.



    Figura 8. Respuesta frecuencial.

    Si la intensidad es muy elevada, corremos el riesgo de romper la membrana timpánica, aunque podemos soportar mejor la intensidad en ciertas frecuencias, precisamente por la menor respuesta que tenemos ante las frecuencias graves y agudas.

    Además, de esto, la pérdida de audición por la edad también es diferente en hombres y mujeres, siendo mucho más acusada en los hombres. Algunos sugieren que es por escuchar continuadamente los gritos de dichas mujeres. Nunca lo sabremos con certeza.

    Algún día, todo será digital.

    Algún día, todo será digital. Por ahora, el audio ya lo es. Con las tecnologías de reducción de ruido como Dolby, la calidad del audio digital es, simplemente, perfecta.

    La captura de sonido se realiza mediante micrófonos, que pueden ser de varios tipos según la direccionalidad del sonido que capturan (omnidireccionales, bidireccionales, unidireccionales o cardiodies.) o el método que utilizan para convertir el sonido de presión a electricidad (principalmente, dinámicos y de condensador). Las diferencias son principalmente de cantidad de sonido captado y de capacidad de soportar fuertes intensidades sin que el sonido sature y se rompa, lo cual suele ser inverso al rango de matices que son capaces de captar. Dicho de otra forma, las sutiles variaciones de potencial de la corriente eléctrica necesarias para recoger con gran precisión cierto tipo de sonidos, pueden provocar que, ante sonidos intensos, el voltaje se dispare al máximo, destrozando así la forma de onda y convirtiendo toda la información que llevaba ese sonido en un molesto ruido.

    Cuando el sonido llega a la tarjeta de ídem, ésta muestrea la señal eléctrica x veces por segundo (frecuencia de muestreo), adjudicando a cada valor de entrada un determinado valor y de salida dentro de un rango de bits (resolución). Dicho de otro modo, volviendo a las analogías con la imagen, la frecuencia de muestreo sería el tamaño en píxeles de la imagen, y la resolución sería la profundidad de colores de la misma. Cuanta más resolución, mayor número de grados intermedios de intensidad tendrá la onda. Cuanta mayor sea la frecuencia de muestreo, más muestras tendremos por segundo. En conjunto, la onda mostrada será más parecida a la analógica real cuanto mayores sean los valores mencionados.



    Figura 9. Conversión analógico-digital.

    formatos.

    Después de esto, nuestra onda original se ha convertido en un chorro de números enteros (o incluso reales) en memoria, tantos como canales tuviera el sonido (un canal si es mono, dos si es estéreo, e incluso más para sonidos cuadrafónicos y surround). A la hora de guardar esta información en disco, tenemos dos opciones: guardarlas en formato bruto sin compresión (pcm, pulse code modulation) o utilizar alguno de los formatos de compresión sin pérdida (flac) o con pérdida (más populares): mpg-1 audio layer 3 (mp3) o vorbis-og (ogg). En contra de lo que normalmente se piensa, el conocido formato (*.wav) (Waveform audio format) es sólo un formato contenedor (igual que el avi para vídeo), el audio que lleve en su interior puede ir en bruto o comprimido con cualquiera de los métodos existentes.

    En ambos formatos, (*.mp3) y (*.ogg), la compresión se centra en las frecuencias de la onda inaudibles para el oído humano (siguiendo un modelo psicoacústico), utilizando una tasa de bits variable (distinta cantidad de información por segundo, según lo que esté sonando).

    Las diferencias:.

    Mp3 es un formato patentado por Thompson (por el que cobran importantes sumas en concepto de derechos de códecs en reproductores) y utiliza la transformada rápida de fourier para codificar el sonido.

    En cambio, (*.ogg) (formato libre) utiliza la transformada de cosenos discretea modificada y se espera que pronto pueda usar wavelets, una forma mucho más sofisticada de codificación y análisis, basada en armónicos.

    La combinación de alta calidad y formato libre del (*.ogg) esta produciendo una debacle del formato (*.mp3), si bien es lenta por la enorme extensión de uso del (*.mp3) y el desconocimiento general de la existencia del (*.ogg).

    Surfeando en la onda.

    Una vez tenemos el audio en formato digital, podemos hacer mil virguerías con el utilizando un programa de retoque de audio como el programa libre Audacity http://Audacity, Source Forge, org. Podemos cambiar la resolución y el muestreo de una onda, pasar de estéreo a mono y viceversa, cambiar el panning (la posición del sonido en el estéreo), agregar eco o reverberación, invertir los picos de la onda, invertir la onda al completo, reducir el ruido, acelerar o decelerar la reproducción, variar el tono, modificar su envolvente o su intensidad. Incluso este programa nos ofrece la posibilidad de dibujar la onda, ampliando muchísimo el zoom en ella.

    También podemos generar sonidos digitalmente. Para ello tenemos dos opciones: la síntesis aditiva o la síntesis sustractiva. Al igual que en el color tenemos los mapas aditivos (RGB) y sustractivos (CMYK) según si sumamos luces al negro o restamos tintas al blanco, en el timbre podemos añadirle al silencio distintas frecuencias generadas mediante funciones sinusoidales o similares, o podemos restarle a una frecuencia dada una serie de frecuencias.

    Conclusión y cierre.

    Según la Wikipedia, la teoría es una de las candidatas a convertirse en la teoría del todo. Tiene su origen en la teoría de las cuerdas, según la cual todas las partículas son en realidad diminutas cuerdas que vibran a cierta frecuencia, y nosotros vivimos en universo vibrando a cierta frecuencia.

    No deja de ser poético el pensamiento de que, después de todo, nuestro universo, con todo lo que contiene, es sólo una increíble sinfonía. Demasiado bonito como para dejar de lado algo tan cercano a esta realidad.
    Última edición por 3dpoder; 04-02-2009 a las 23:22

  10. #9
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender Visión estereoscópica

    Visión estereoscópica. Javier Alonso Albusac Jiménez. Miguel García corchero.
    jalbusac@gmail.com
    grenbite@gmail.com


    El mecanismo de visión de los seres humanos es estéreo por naturaleza. Cada uno de los ojos obtiene una imagen del escenario en el que nos encontramos (visión binocular), con un ángulo ligeramente diferente. Las imágenes adquiridas tendrán bastante contenido visual en común, pero cada una proporcionara información que la otra no tiene, lo que denominamos como disparidad.
    ¿Qué es la visión estereoscópica?
    una vez que los ojos han servido como mecanismo de captación del medio, llega el turno del cerebro, que será el encargado de procesar las imágenes. El cerebro analiza las imágenes generando una imagen en estéreo, producto de la combinación de las similitudes y la detección de las diferencias, pudiendo de esta forma tener la sensación de profundidad, lejanía o cercanía de los objetos que pertenecen al escenario del mundo real. Al proceso de fusión de las imágenes se le conoce como estereopsis.

    El procedimiento de estereopsis puede variar en función de la distancia de los objetos que estamos observando, cuando los objetos son lejanos los ejes ópticos de los ojos permanecen en paralelo, mientras que si de lo contrario se encuentran a una distancia cercana los ejes de los ojos convergen. Se conoce como fusión a la suma de alguno de los mecanismos citados anteriormente, más la acomodación y enfoque para ver nítidamente los objetos del escenario.

    La capacidad que tienen las personas para apreciar los detalles situados en distintos planos varía con facilidad, esta capacidad esta directamente relacionada a la distancia interocular. Cuanto mayor es la distancia entre los ojos mayor es la distancia límite a la que se puede seguir apreciando el relieve de los objetos. La distancia límite puede varias entre 60 y cientos de metros entre diferentes personas.

    La visión estéreo es necesaria en el día a día de cualquier ser humano, la utilizamos constantemente, sin ella sería prácticamente imposible practicar cualquier deporte, introducir una llave en su cerradura o conducir un automóvil entre otras muchas actividades.

    Cómo imitar la visión estereoscópica humana.

    Para poder conseguir simular la visión estereoscópica necesitamos de algún dispositivo físico que realice las mismas funciones que los ojos y realicen una captura del entorno, una vez obtenidas las imágenes necesarias se aplicarán una serie de métodos o técnicas para conseguir la sensación de espacio (tarea de la que se encarga el cerebro).

    Como dispositivos se suele utilizar una o dos cámaras, tomando un par de fotografías del entorno y separadas a una distancia similar a la que se encuentran los ojos. Por tanto tendríamos una fotografía similar a la vista tomada por el ojo izquierdo, y otra a la del ojo derecho.

    Existen diferentes métodos para la obtención de imágenes estereoscópicas:
    Slide bar.

    En este método tan sólo se utiliza una cámara que se encuentra situada sobre una barra de desplazamiento graduada, por lo que moviendo la cámara a lo largo de la barra podremos obtener imágenes desde distintas posiciones similares.

    Twin cameras.

    Se dispone de dos cámaras situadas en un soporte físico. Las fotografías son tomadas en el mismo instante de tiempo, debe existir por tanto un mecanismo de sincronización entre ambas cámaras.

    Beam Splitters
    En este caso se dispone de una sola cámara SLR(single Lens Reflex Camera) y un sistema de espejos o prismas situados enfrente de las lentes de la cámara. La colocación correcta de los espejos permite obtener la versión de la parte derecha y la de la izquierda.

    Con la aplicación de cualquiera de estos métodos llevamos a cabo la tarea correspondiente a los ojos, la captación de las imágenes, queda por tanto realizar el trabajo del cerebro, consiguiendo así un efecto tridimensional.

    Métodos de visualización
    Podemos clasificarlos en dos clases. Aquellos en los que no es necesario ninguna herramienta o dispositivo para conseguir la unión de las dos imágenes, conocido como visión libre, y aquellos en los que sí es necesario.

    Visión libre
    En la visión libre podemos encontrar dos métodos de visualización, visión paralela y visión cruzada.

    Visión paralela
    Los ojos mantienen sus ejes ópticos en paralelo, como si mirásemos al infinito. El ojo izquierdo mira la imagen izquierda y el derecho la imagen derecha. Al cabo de un tiempo, deberíamos ser capaces de fusionar las dos imágenes en una única tridimensional. Este método es utilizado en los libros con estereogramas de puntos aleatorios (ojo mágico).

    Visión cruzada
    Las imágenes son cambiadas de orden, la imagen izquierda se sitúa en la parte derecha, y la derecha en la izquierda, los ejes ópticos también se cruzan, el ojo derecho mira a la izquierda y el izquierdo a la derecho, para conseguirlo podemos situar uno de nuestros dedos entro los dos ojos y mirarlo.

    El método de visión paralela suele utilizarse cuando las imágenes no son superiores a 65 milímetros entre sus centros, en el caso contrario, cuando la distancia entre los centros de las imágenes supera los 65 milímetros (la imagen virtual aparece más pequeña) se utiliza la visión cruzada.

    Métodos de visualización con utilización de dispositivos
    proyección
    El efecto estéreo se consigue con la utilización de un proyector con dos lentes, o bien dos proyectores normales encargados de mostrar la imagen correspondiente al ojo izquierdo y la del derecho. A cada una de las lentes se le aplica un filtro polarizador asegurando así que, cada ojo vea únicamente la imagen que le corresponde.



    Figura 1. Esquema de proyección con luz polarizada.

    Las imágenes deben ser proyectadas sobre una pantalla de aluminio distinta al color blanco para evitar la despolarización de la luz proyectada (ver figura).

    Anaglifo
    Al igual que en los métodos anteriores se trata de engañar al cerebro para aparentar una sensación tridimensional a partir de imágenes planas. Para conseguir que cada ojo se centre únicamente en la imagen que le corresponde se tiñen las imágenes de un determinado color y se utilizan unas gafas apropiadas con filtros de colores.

    Se pueden utilizar varías combinaciones de colores, pero la más común consiste en teñir la imagen izquierda de color azul y de rojo la imagen derecha. En la gafas el orden de los colores de los filtros es inverso, el filtro derecho sería azul mientras que el izquierdo sería rojo.

    Este método es de los más económicos, pero presenta grandes inconvenientes:
    • alteración de los colores originales.
    • perdida de luminosidad.
    • cansancio visual después de un tiempo prolongado.



    figura 2. Si los filtros polarizadores están alineados (arriba), puede pasar la luz. Si rotamos uno de los filtros 90 grados, cortan la luz en dos ejes, volviéndose totalmente opacos (abajo).
    Polarización
    El sistema es similar a los anaglifos, pero en este caso no se utilizan colores para la separación de las imágenes, si no que se utiliza luz polarizada.

    Este sistema se puede construir con dos proyectores, dos filtros que se colocan delante de cada proyector y unas gafas polarizadas. Cada uno de los filtros y cada una de las lentes de las gafas están polarizadas en una dirección y difieren en 90 grados (ver figura 2).

    Este método solventa algunos de los inconvenientes que presentaban los anaglifos:.
    • respecta en gran medida los colores de la toma original.
    • disminuye el cansancio visual.
    • como inconveniente tenemos que existe pérdida de luminosidad con respecto a la toma original.

    Alternativo
    En este sistema se utilizan gafas dotadas con obturadores de cristal líquido (denominadas LCS, Liquid Crystal Shutter Glasses o LCD, Liquid Crystal Shutter Glasses). Las imágenes son presentadas de forma secuencial, alternando las imágenes para el ojo izquierdo y para el derecho. El parpadeo no es perceptible ya que se utiliza una frecuencia alta de proyección.

    Las gafas serán las encargadas de cerrar el obturador del ojo derecho cuando se proyecten imágenes para el ojo izquierdo y viceversa.

    Como gran ventaja tienen que la señal sincronizada es enviada a las gafas por rayos infrarrojos y no necesita de ningún cable, pero por contra estas son bastante voluminosas y pesadas.

    Casco estereoscópico
    Head mounted display (HMD). El casco consta de dos pantallas, una para cada ojo. El casco está conectado a un sistema encargado de enviar las imágenes. Es utilizado principalmente en el área de realidad virtual y en videojuegos.

    Pose algunos inconvenientes:
    • elevado coste.
    • voluminosos y pesados.
    • provocan fatiga visual.


    Monitores auto-Stereo

    Se trata de unos monitores que, aún se encuentran en fase de experimentación y desarrollo. Utilizan microlentes situadas de forma paralela y vertical sobre la pantalla del monitor, generando la desviación de dos o más imágenes. Estos monitores no necesitan el uso de ningún tipo de gafas para obtener la sensación de profundidad.

    Efecto Pulfrich
    El llamado efecto Pulfrich fue descubierto por el médico alemán Carl Pulfrich en 1922. La diferencia con respecto a otros sistemas de visualización estéreo es la utilización de una única imagen 2d animada, esto no resta que puedan obtenerse efectos estereoscópicos muy espectaculares filmando con una única cámara en movimiento.

    Este fenómeno consiste en la observación de una imagen en movimiento horizontal, el observador debe utilizar un filtro en uno de los ojos. La imagen captada por el ojo en el que se encuentra el filtro postura menor luminosidad que la imagen original provocando que llegue al cerebro con un retardo de centésimas de segundo, el cerebro percibe la imagen con una diferencia de posición horizontal generando el efecto estereoscópico.




    áreas de aplicación
    Una de los campos donde más se utiliza la visión estereoscópica es en la topografía tomando fotografías aéreas. Para poder llevarla acabo correctamente, el avión debe volar a una altitud constante y realizar fotografías verticales. Suele existir grandes distancias entre una fotografía y la siguiente, dando una gran sensación de relieve que sin la visión estereoscópica no se podría apreciar.

    Como ya habíamos mencionado anteriormente la separación media interocular es de 65 y es la distancia que se suele utilizar para realizar las fotografías estereoscópicas. Cuando la distancia entre las fotografías tomadas para formar la imagen estereoscópica es bastante elevada hablamos de hiperestereoscopia. Es lo que ocurre en el caso de las fotografías aéreas donde se suelen tomar distancias que permitan dar la sensación de ver el objeto como si se estuviera a tres metros de distancia del mismo.

    Existe una fórmula con la que podemos calcular la distancia que debe existir entre las diferentes tomas, para obtener una imagen estereoscópica donde se pueda apreciar la sensación de relieve de los objetos a gran calidad.
    (0,065m/3m) / (d/l).

    • 0,065m distancia interocular.
    • 3m distancia a la que se quieren observar los objetos en la imagen virtual.
    • d distancia que queremos calcular.
    • l distancia entre el punto desde dónde se realizan las fotografías y los objetos que queremos captar en la imagen.

    Despejando d, tenemos que d= 0,021667 x l, aproximadamente de = (1/50) x l, por tanto si el avión estuviera tomando imágenes a una distancia de 6 km el intervalo de tiempo que se debería producir entre captura y captura debería ser de 120 metros.

    Como vemos es muy sencillo calcular la distancia que hay que recorrer para tomar una nueva fotografía, no sería complicado por tanto poder calcular las distancias que existe entre elementos que aparecen en la fotografía. Esta técnica es utilizada también en la fotogrametría donde se realiza la medición de distancias a partir de las fotografías tomadas.

    Hemos mencionado la hiperestereoscopia, el fenómeno contrario es conocido como hipoestereoscopia que sucede cuando existe poca distancia entre el punto donde se realizan las fotografías y los objetos a fotografiar pudiendo provocar que aquello que queremos fotografía salga fuera del fotograma. Para calcular la distancia adecuada nos vale la misma formula, simplemente vasta con variar la distancia a la que queremos ver los objetos en la imagen virtual, por ejemplo:
    (0,065m/0,25m) = d/l despejando de tenemos de = 0,25 x l.

    principios matemáticos, cálculo de distancia Focal
    Si queremos crear una imagen estereoscópica con dos cámara fotográficas, lo primero que tenemos que calcular es la distancia a la que deben estar las lentes de las dos cámaras, es lo que conocemos como distancia Focal o Stereo base.

    Para realizar el cálculo necesitamos tener en cuenta los siguientes aspectos:
    La distancia entre los objetos dentro del campo de visión debe ser la adecuada, es lo que conocemos como profundidad de campo o Depth of Field.
    • asegurarse de que el Stereo Paralláx no excede 1.2mm (formato de 35mm) o 2.3 milímetros (en el formato de 60mm). Stereo Paralláx es la distancia que existe entre los objetos cercanos y los lejanos en la vista utilizada. Stereo Paralláx suele ser expresado como angular Parallax o linear Parallax.

    • angular Parallax se refiere al grado de convergencia necesario para fundir un objeto. Un objeto en el infinito estereoscópico tiene una angular Parallax de cero en el mundo real.

    • linear Parallax es la diferencia que existe entre la distancia de los puntos homólogos en el par estéreo. Recordemos que cuando tomábamos dos fotografías para construir la imagen estereoscópica existían gran cantidad de puntos en común en ambas y puntos únicos en cada una de ellas.

    • seguir los principios estéticos de una buena imagen estéreo.

    Tanto la profundidad de campo como el Stereo Parallax son conceptos matemáticos que pueden ser calculados fácilmente, mientras que los principios estéticos que se sigan dependerán únicamente de la creatividad y capacidad artística de cada persona.

    Para realizar el cálculo de la distancia Focal utilizamos la fórmula desarrollada por Jhon Bercovitz obteniendo el máximo efecto estereoscópico en las imágenes dentro de lo permitido.

    B = p/(l-n) (ln/f -(l+n)/2)
    • b: base estéreo (distancia entre los ejes ópticos de la cámara)

    • p: Paralláx obtenido, en milímetros.

    • l: distancia más lejana de las lentes de la cámara.

    • n: distancia más cercana a las lentes de la cámara.

    • f: distancia Focal de las lentes.

    La profundidad del sujeto suele coincidir con l - n = d aunque no siempre se cumple, sobre todo con distancias grandes. Según Bercovitz, cuando la distancia al objeto más alejado de la cámara sea infinito podemos utilizar: b = p (n/f -½), pudiendo aplicarla para vistas ortogonales.



    Configuración en Blender
    La configuración en Blender es bastante sencilla. Basta con añadir dos cámaras a la escena que estén emparentadas con un objeto que controlara su rotación y posición. Para ello, este objeto padre tendrá una restricción de tipo track todo con un objeto Empty (ver figura 3). El render habrá que realizarlo con cada una de las cámaras, componiendo el resultado de las dos cámaras en una misma imagen o fotograma del video resultado.

    Referencias.
    Última edición por 3dpoder; 05-02-2009 a las 09:40

  11. #10
    Administrador, fundador y milenario... Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    27,512
    Gracias (Dadas)
    3603
    Gracias (Recibidas)
    5133

    Blender Técnicas de animación en Blender



    Técnicas de animación en Blender
    Carlos López Yrigaray.
    [email=Klópes@unizar.eKlópes@unizar, es[/email] :


    el arte ha encontrado en la infografía su última forma de expresión, y la generalización de esta ha llevado a la aparición de un sinnúmero de artistas que, a su vez, han sabido transmitir su obra a través de la red. Recíprocamente, la popularidad de los programas gráficos, y en particular los que favorecen la creación de personajes y su animación, han impulsado la creación de programas de licencia libre como Blender y la mejora constante del software disponible en todos los ámbitos.

    Estas mejoras se hacen especialmente patentes en cuanto a la facilidad de uso de las utilidades, permitiendo la creación de escenas expresivas con un esfuerzo menor, sin menoscabo de la capacidad artística, que se ve por el contrario más libre en cuanto a las limitaciones del programa.

    Como el proceso de modelado, que ha pasado a dividirse en varios tipos (desde la creación de estructuras malladas polígono a polígono hasta la escultura virtual usando herramientas adecuadas), o la creación de materiales y entonación de la luz (que van pasando por sucesivas fases de calidad, refinándose para acercarse cada vez más a la realidad de una fotografía, o haciéndose tan manejables como para modelar el ambiente de forma creativa), el de la animación ha evolucionado hacia el modulado de la composición de acciones en una línea de tiempo, o la implementación de sistemas de toma de decisiones de los propios personajes mediante algoritmos de inteligencia artificial.

    En esta exposición se pretende comentar el estado del arte en el momento de escribir estas líneas, en cuanto a la animación en Blender 3d, desde el movimiento de un objeto hasta las posibilidades de animar un personaje.

    Moviendo Blender
    El movimiento de un objeto lo definiremos tal cómo se usa en su sentido matemático, es decir: su desplazamiento por el espacio 3d, junto con sus giros y sus cambios de escala en los tres ejes de referencia, esto es: la modificación de su matriz característica.



    A cualquier otro cambio aparente del objeto (cambios en su geometría, deformación esquelética o por curvatura del espacio, roturas, color, material.) lo llamaremos, en general, animación, y ya está.

    Inicialmente, un movimiento se describe mediante curvas que indican el valor del parámetro en el tiempo, ya sean valores coordenados, ángulos, intensidades. Si un objeto sólo va a dar botes por la escena sin moverse del sitio, sólo habrá que definir una curva en el canal locz (figura superior).




    Estas curvas se agrupan en objetos de la llamada clase IPO, y sus curvas son las curvas ipo. Podemos ver copias del objeto animado en cada uno de sus puntos de cambio (nodos, keys) para hacernos una idea de su evolución.

    Los objetos también pueden estar animados simplemente por restricciones, cambiando su posición, orientación y aspecto por la acción de otros elementos, como el conservar la orientación hacia un objetivo, clonar sus coordenadas u orientación, recorrer una curva, estas restricciones también están controladas a su vez por una curva ipo que las puede desactivar cuando su valor es 0. También podemos generar animación con modificadores: enganchando vértices a otro objeto (hooks), pasando a través de una rejilla deformada (lattice), construyendo un esqueleto.




    Python
    evidentemente, existiendo un entorno de programación dentro del propio Blender (un Api para lenguaje Python), estamos capacitados para crear curvas ipo mediante un programa, explícitamente o en base a un interfaz controlado por el usuario. El movimiento, entonces, estaría calculado previamente en el momento de uso del script. Pero también podemos evitar el paso de crear curvas modificando directamente las características del objeto en cada fotograma. Para ello hacemos uso de los script links, enlaces directos desde una entidad de Blender (un objeto3d, cámara, material, o una escena completa) a programas que se ejecutaran en cada cambio de cuadro.

    Dirigiendo el movimiento externamente: drivers
    Otra de las últimas herramientas añadidas en Blender son los drivers, que controlan curvas ipo individualmente por medio de otra curva, o bien con una línea o un programa escrito en Python (pydrivers). A grandes rasgos, nos permite crear animaciones que dependen de otras animaciones o de movimientos de objetos.

    Como era de esperar, todas las curvas ipo de todo tipo pueden ser controladas por drivers, también las que cambian los parámetros de los materiales, luces y cámaras, y las que controlan los gestos en las RVKS (ver más abajo).



    aprovechando el game-engine
    Otra de las utilidades recientemente implementadas es la generación de movimientos generados por el motor de juegos de Blender, lo que nos da la posibilidad de añadir complejidad física a la escena con colisiones y comportamiento realista de los objetos.



    Esqueletos en Blender
    El más potente modificador, casi imprescindible, para la creación de personajes animados, es el uso de esqueletos, en Blender llamados armatures, que constan de segmentos (huesos, Bones) que pueden emparentarse formando una estructura móvil que se puede animar.

    A la preparación de un esqueleto completo, adecuando al objeto que pretende deformar, con sus controles para usar de manera cómoda, se le llama rigging.

    Acciones
    El movimiento de los huesos responde a Ipos de un tipo especial, actions, que permite desplazamiento, rotación y escalado de estos individualmente. Hay que hacer notar que las rotaciones utilizan 4 parámetros, según el método de orientación de los cuaternios de Hamilton (w, x y, z) en lugar de los ángulos de Euler (x y, z) que usan los objetos 3d, para aumentar la velocidad de cálculo y evitar los ejes privilegiados y puntos nodales.




    La situación de los huesos de un esqueleto en un instante forma una pose, y una secuencia de posturas genera una acción. Así que podemos crear una secuencia completa animando un esqueleto en una acción única con posturas sucesivas, si bien podemos pensar que ciertas partes de la acción pueden repetirse, en esta u otras acciones (menear la cabeza, aplaudir, dar un paso), con lo que lo ideal es descomponer la animación en acciones sucesivas, que pueden mezclarse unas con otras, más cuando en una acción no tienen por qué intervenir todos los huesos, así que, podemos crear acciones para los pies, acciones para los brazos, para los dedos, la cabeza, la cola.

    En las últimas versiones de Blender no sólo podemos incluir secuencias de posturas de esqueletos, sino que podemos combinarlas con movimientos de objetos o de la propia armature como objeto en sí mismo. Esto adquiere sentido si tenemos objetos conectados al esqueleto o al modelo que los están controlando, como complementos de la ropa que se mueven al caminar, objetos de control que tiran de los ojos hacia adelante en una acción de sorpresa, etc.

    Deformación de mallas | esqueletos
    A estos esqueletos podemos asociar una malla para que se deforme con el movimiento de los huesos, aunque también podemos usarlos emparentando objetos directamente a los huesos, como componentes rígidos robóticos. La deformación de una malla asociada a un esqueleto (llamada skinning) se puede producir de varias maneras, ya sea mediante grupos de vértices que, siguen a determinados huesos, por asignación automática de cercanía a estos (envolventes), o una combinación de ambas técnicas.

    Vertex keys
    Esta herramienta es la más importante para dar expresividad a nuestros personajes, pues es la manera más cómoda de modificar las mallas en una secuencia para que cambien su apariencia con el tiempo. Consiste en crear copias modificadas de la malla original (gestos, shapes), de manera que, podemos conseguir una colección de gestos para mezclarlos y combinarlos en la animación. Si bien existe una forma básica de usar las vertex keys, de forma absoluta, haciendo uso de ellas una tras otra linealmente, la opción más interesante es usarlas de forma relativa (RVKS). Esto significa que en cada momento, estamos sumando los gestos de una cara que nos interesan, para conseguir que un personaje pueda hablar, parpadear y mover las cejas a la vez. El mecanismo es simple de entender, y ahora muy fácil de gestionar gracias a los botones de la ventana de acciones: cada gesto está controlado por una curva IPO, que indica con cuanta intensidad se realiza: con 0 no tiene lugar, con 1 vemos el gesto tal cual, y con valores superiores podemos incluso exagerarlo. Gracias a la posibilidad ya comentada de introducir animaciones de objetos dentro de acciones, también podemos añadir secuencias de RVKS dentro de estas, consiguiendo sumar la expresividad de la malla a los movimientos de los huesos.




    animación facial y sincronización labial
    Como apartado especial quedan estas actividades, imprescindibles para dar expresividad y lenguaje a nuestros personajes y que por sí mismas constituyen una ocupación en la organización de un proyecto animado. La expresividad es responsabilidad del animador y de su capacidad artística, y la sincronización labial (lipsync) exige un esfuerzo a veces impredecible, y conocimientos del bien y la fonación en el idioma en el que bien el personaje. Supondría material para una charla que, por otra parte ya se impartió en otro encuentro, así que, en este apartado nos limitaremos a comentar lo que ofrece Blender para cambiar la expresión de la cara de un personaje. En general, podemos usar las dos técnicas comentadas de forma no excluyente.

    Un rigging facial es adecuando para los motores de tiempo real (MTR), esto es: juegos y aplicaciones interactivas. En la actualidad, raramente un MTR permite combinaciones de mallas para crear expresividad o bien, por lo que todas las deformaciones deben hacerse con esqueletos. Esta tarea no suele ser complicada porque normalmente no se exige una interpretación dramática del actor, pero si fuera necesario, el método consiste en crear un sistema de huesos análogo a la musculatura de la cara, de manera que, al asociar los vértices, estos se muevan como la piel que hay sobre ellos. La aproximación es bastante buena, pero no es un método adecuando para expresividad sutil.






    La manera habitual de dar expresiones a una cara es modelarlas mediante copias de la malla, separadas en mitades si es necesario (ceja derecha arriba ceja izquierda arriba). Estas mallas, en realidad se guardan internamente como desplazamientos relativos de los vértices con respecto a la malla base, de manera que, el programa sólo tiene que sumar, por cada vértice, un Vector por cada expresión activa, este Vector estará previamente multiplicado por la intensidad con que se realiza esa expresión, usualmente un número entre 0 y 1. Esta intensidad es, precisamente, la que nos dan las curvas ipo que se definen en las RVKS.

    La comodidad para insertar nuevos gestos en la animación es muy importante para un trabajo fluido. Esencialmente, toda la potencia para generar animación por RVKS estaba implementada desde hace años en Blender, pero gracias a los nuevos paneles de shapes, su inclusión con deslizadores en la ventana de acciones, la asignación de nombres a cada expresión y otros detalles que poco a poco se han ido añadiendo, es cada vez más rápido conseguir lo mismo y con más control.


    creación de GUI personalizados con drivers.

    La implementación de drivers que controlen el movimiento a abierto un sinfín de posibilidades para la animación, y el más inmediato parece ser el control manual mediante creación de botones (sliders) en el propio espacio 3d. Así, el desplazamiento de un objeto puede generar animación en todos los objetos que tengan un ipo con drivers asociados a él. Johnny Matthews (Guitargek), un experto usuario de Blender, creó un pequeño script que inmediatamente fue añadido a la versión oficial. Genera controles de diversas formas que se usan para enlazar a drivers de una malla con RVKS, de manera que, podemos fabricar una cara esquemática con pequeños objetos que, al moverlos, nos mueven pequeños rasgos directamente sin tocar para nada el sistema clásico de animación.

    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 
Nombre: Animacion.jpg 
Visitas: 4935 
Tamaño: 97.6 KB 
ID: 93767   Clic en la imagen para ver su versión completa. 
Nombre: monkey.png 
Visitas: 4718 
Tamaño: 45.4 KB 
ID: 93768  

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Respuestas: 0
    Último mensaje: 11-07-2021, 01:07
  2. Demencia digital: el peligro de las nuevas tecnologías no FICCIóN
    Por 3dpoder en el foro Libreria fisica y electronica
    Respuestas: 0
    Último mensaje: 25-02-2018, 09:37
  3. Respuestas: 0
    Último mensaje: 22-02-2015, 09:37
  4. Blender Herramientas libres para sintesis 3d
    Por 3dpoder en el foro Un Enfoque práctico a Blender
    Respuestas: 0
    Último mensaje: 10-09-2009, 01:55
  5. Blendiberia 2006
    Por morcy en el foro Noticias
    Respuestas: 251
    Último mensaje: 08-09-2006, 00:48

Etiquetas para este tema