jueves 18 de junio de 2009

GLSL-Cg

GLSL-OpenGL Shading Language

GLSL es el acrónimo de OpenGL Shading Language, una tecnología parte del API estandar de OpenGL, que permite especificar segmentos de programas gráficos que serán ejecutados sobre el GPU. Su contrapartida en DirectX es HLSL.

Vista al pipeline

La siguiente figura es un diagrama simplificado de los estados del pipeline y de la información que viaja a trabajes de estos. Aunque es extremadamente simplificado, es suficiente para mostrar algunos conceptos importantes de la programación con shaders. Notese que este pipeline es una abstracción y no necesariamente concuerda con alguna implementación en particular.


Tranformación de los vertices

Podemos decir que un vertice es un conjunto de atributos como posición en el espacio, al igual que color, normal, coordinadas de la textura, entre otros. Las entradas para este estado son los atributos de los vertices individuales. Algunas de las operaciones realizadas por la funcionalidad modificada son:
  • Tranformación de la posicion de los vertices
  • Iluminación de los vertices
  • Generación y transformación de las coordenadas de la texturas
Texturizado y coloreado de los fragmentos

Información interpolada de los fragmentos es la entrada de este estado. Un color ya ha sido definido en el estado anterior atravez de la interpolación, y aqui puede ser combinado con un texel (elemento de textura) por ejemplo. Coordinadas de la textura han sido tambien interpoladas en el estado anterior. El resultado final de este estado por cada uno de los fragmentos es un valor de color y de profundidad para cada uno de los fragmentos.


Operaciones en la rasterización


Ejemplos del uso de GLSL



Cg - C for graphics

¿Que es Cg?

Cg es un lenguaje de programación que nos permite controlar la forma, apariencia y movimientos de los objetos dibujados, usando hardware de gráficas programables. Combina el control de estos atributos por medio de la programación, con la increíble velocidad y capacidades de los procesadores gráficos de hoy en día.

Cg probé a los programadores con una plataforma de programación que es fácil de usar y permite la creación de manera rápida de efectos especiales y experiencias en tiempo real de calidad cinematográfica en múltiples plataformas.

Cg remueve la necesidad de los programadores de programar directamente en el lenguaje ensamblador del hardware gráfico, y en su lugar lenguajes más fáciles como OpenGL, DirectX, etc. Este es compatible con HLSL para DirectX.

Los programas en Cg operan en los vertices y en los fragmentos que son procesados cuando se renderiza una imagen. Cada vez que un vertice es renderizado o rasterizado genera un fragmento mientras se renderiza una escena en 3D, el programa en Cg se ejecuta.

De ninguna forma Cg sustituye a los lenguajes de proposito general. Cg es un lenguaje auxiliar diseñado especificamente para GPUs. Prograamas escritos para el CPU en lenguajes convencionales como C o C++ pueden utilizar el runtime de Cg para cargar programas en Cg para que se ejecuten. El runtime de Cg es un subconjunto de subrutinas usadas para cargar, compilar, manipular y configurar programas en Cg para ser ejecutados por el GPU. Las aplicaciones proveen programas Cgpara instruir al GPU en cómo llevar a cabo los efectos de renderizado, que de otra manera serían imposibles en un CPU.

Cg tiene un libreria de funciones, llamada la libreria estandar, que probe las operaciones requeridas para los graficos. Por ejemplo, la libreria incluye una función reflect para realizar reflección de vectores.

No todo lo que se puede escribir en Cg puede ser compilado para ser ejecutado en un GPU dado. Cg incluye el concepto de "perfiles" del hardware, el cual se especifica cuando se compila. Cada perfil corresponde a una combinación particular de arquitecturas de GPU y APIs gráficas. Por lo que el programa no solo tiene que estar bien para compilar, sino que tiene que cumplir las restricciones particulares del perfil escogido.


Un poco de historia

Nvidia y Microsoft colaboraron para el desarrollo de Cg. Microsoft llama a su implementación High Level Shading Language, o HLSL. HLSL y Cg son el mismo lenguaje pero reflejan los diferentes nombres que cada compania usa para identificar el lenguaje y la tecnologia en que estan basados. HLSL es parte de DirectX Graphics, un componente del framework multimedia de programacion 3D, por lo que se puede integrar con Direct3D o OpenGL.

Cg trabaja en Windows, Linux, Mac OS X, consolas de videojuegos, o sistemas embebidos. Cg trabaja en la mayoria de los GPUs.


miércoles 17 de junio de 2009

Ecolitaster- Haciendo al E. Coli testear olores

Valencia iGem 2006
¿Qué es la biología sintética?
  • Primeros pasos en el MIT.
  • Enfocada a la manipulación de todas las moléculas y procesos involucrados en el metabolismo de las células.
  • Una nueva forma de ver a los organismos.
  • La idea del ADN como red genética en donde el producto de un gen puede interactuar con otros genes para inhibir o activar la expresión de su producto no es nueva.
¿Podemos usar esta forma de ver las redes genéticas para hacer sistemas biológicos con funciones específicas?
  • La respuesta positiva a esta pregunta recae en la capacidad actual de la ingenieria genética para construir cualquier secuencia imaginable de ADN.
  • Básicamente, si podemos teóricamente diseñar una red genética con una función específica podemos entonces construirla en el laboratorio. Después, podemos insertar esta secuencia de ADN en las células de un organismo y esperar de él un "comportamiento controlado".
Electrónica como inspiración
  • Los métodos de la bilogía sintética están inspirados en los métodos de la ingeniería eléctrica.
  • Los circuitos electrónicos están compuestos por pequeños componentes que juntos pueden formar un dispositivo con una función específica.
  • Lo que es importante es que, un ingeniero no necesita conocer todo el proceso complicado que hay dentro de esos pequeños componentes, si no solo como estos componentes responden a una señal de entrada para generar una señal de salida de las mismas características físicas.
  • Están estandarizados.
  • La biología sintética toma estas ideas y las adapta para diseñar nuevos circuitos genéticos con predeterminadas funcionalidades.
  • Estas secuencias de ADN con funcionalidad especifica dentro de la celula son llamadas Bio-ladrillos.
La situación no es tan fácil como parece

  • En circuitos electrónicos las señales de E/S es el Voltaje, y lo es así para todas las señales de E/S en todos los componentes del circuito. La señal de E/S de los componentes biológicos no es el mismo en todos.
  • Cualquier secuencia del código genético es leído por la polimerasa así que la polimerasa tiene que ser la señal universal de E/S.
  • Por lo que se creo la unidad llamada PoPS o polimerasa por segundo.
  • Contexto celular en el cual nuestro circuito biológico trabaja, dentro de la célula hay muchas otras moléculas que pueden interactuar con la secuencia genética que insertamos, por esta razón se tienen que trabajar con Bio-ladrillos que no interactúen con el medio
La idea


Bio-circuito



Mecanismo

  • Este sensor es un PBP mutado que contiene una molecula de vanilina y desempeña una accion como un inicio de sesion.
  • Este movimiento es propagado al dominio cinetico resultando una autofosforilacion del domino EnvZ y transferencia de fosfato a OmpR
  • OmpR P regula el arbol OmpC
  • La concentracion de OmpR P que activa el promotor del gen CRP que puede ser mas bajo que reprimir el gen cl. Por lo tanto, esto se realiza a concentraciones medianas de OmpR P, CRP y cI.
  • De este modo el promotor AND es activado y GFP se expresa en concentraciones intermedias de OmpR P.
  • Los colores de las celulas segun la concentracion de vanilina son:
  1. Rojo, altas concentraciones
  2. Amarillo, concentraciones intermedias
  3. Verde, bajas concentraciones
  4. Incoloro, sin vanilina.
Lista de Partes

  • Un CDS correspondiente a una fusíon de proteinas entre una proteína de cubierta periplasmàtica o PBPacoplando vanilina y una transmembrana de histidina kinase.
  • Diseño computacional del dominio PBP. Hace correspondencia con un bio-ladrillo.
  • Un promotor con dos reguladores activadores usando ADN lógico.
  • Dos motores activados por OmpR P.
  • Promotor reprimido de OmpR P.
  • Cuatro CDS.
Funcion de trasnferencia