martes, 29 de abril de 2008

MUJERES....

QUITAME LA DUDA...

HABLARE DIRECTO, QUITAME LA DUDA
DIME QUE ESTE UN SUEÑO PUEDE SER
Y NO ES UNA TONTERIA
YO QUE MAS DARIA, PORQUE FUERA CIERTO
ESTE AMOR SECRETO SE VOLVIERA REAL
ES LO YO QUE MAS QUERIA,
YO SABRE ESCUCHARTE, TU NO TENGAS MIEDO
SI NO TE INTERESA TU NO TE PREOCUPES YA NO HABRA REMEDIO

OJALA ME QUIERAS Y SI NO QUE PENA
MAS TE LLEVARE SIEMPRE EN MI PENSAMIENTO
HASTA QUE ME MUERA

OJALA ME QUIERAS ES MI FANTASIA
QUE SE VUELVA REAL QUE YO ME SIENTA TUYO Y QUE TU SEAS MIA
Y SI NO ME QUIERES DIMELO TRANQUILA QUE MI AMOR ES FUERTE
MAS DE LO QUE CREIA

OJALA ME QUIERAS COMO EL SOL EL DIA
COMO LO HE SOÑADO COMO IMAGINE TU BOCA CON LA MIA
LLENOS DEL PERFUME DE UNA CAMA TIBIA
OJALA ME QUIERAS
OJALA ALGUN DIA, OJALA ALGUN DIA

SOLO ES UN INSTANTE PARA QUE RESPONDAS
ESTE ES EL MOMENTO EN QUE ESTOY MAS CERCA DE ABRAZARTE TODA
TOMATE TU TIEMPO MUCHAS MUCHAS HORAS
QUIERO ESTAR ASI ANTES DE QUE ME DES LA GLORIA

OJALA ME QUIERAS, ES MI FANTASIA
QUE SE VUELVA REAL QUE YO ME SIENTA TUYO Y QUE TU SEAS MIA
Y SI NO ME QUIERES DIMELO TRANQUILA QUE MI AMOR ES FUERTE MAS DE LO QUE CREIA

OJALA ME QUIERAS COMO EL SOL EL DIA
COMO LO HE SOÑADO COMO IMAGINE TU BOCA CON LA MIA
LLENOS DEL PERFUME DE UNA CAMA TIBIA
OJALA ME QUIERAS
OJALA ALGUN DIA, OJALA ALGUN DIA.....

lunes, 28 de abril de 2008

EXPOSICIÒN DEL MÈTODO DE GOURAUD

POR: Pacheco Melendez Luis ANTONIO
Exposición: Jueves 24 de Abril-2008

MÉTODO DE GOURAUD ( EXPOSICION No1 )

La luz que cae de forma directa sobre una escena será fuertemente reflejada mientras que la luz que cae oblicuamente apenas se reflejará. Esto era proporcional al ángulo de incidencia de dicha luz sobre la superficie.
Vamos a aplicar este modelo para nuestro terreno. Una opción posible sería calcular para cada punto nuestra superficie el ángulo de incidencia (el coseno de dicho ángulo es el producto escalar entre el rayo de luz y la normal a la superficie en ese punto), pero está claro que hacer esto supondría una disminución de la rapidez de los cálculos. En vez de ello, calcularemos solamente una vez para cada triángulo.





De esta forma calcularíamos la luz que incide sobre cada uno de los puntos de nuestro terreno.
Un fallo que aparece a simple vista utilizando este método es que obtenemos un sombreado plano, esto es cada triángulo tiene un color único. Esto va en contra de la definición propia de nuestro terreno (debe ser continuo tanto en altitud como en color) ya que al tener cada triángulo un simple color no cumple la propiedad de continuidad, triángulos adyacentes tendrían diferentes colores produciéndose cortes entre uno y otro.
Para solucionar el problema necesitamos introducir un mejor modelo de sombreado, el llamado Sombreado de Gouraud. Consiste en calcular el color para cada vértice del triángulo y interpolar suavemente estos colores para el interior de dicho triángulo.


El método de Gouraud nos permite asegurar la continuidad del color. Nosotros simplemente calcularemos el color para cada punto de la cuadrícula de nuestra superficie, y asignaremos este color a los vértices de nuestros triángulos. Si dos triángulos son adyacentes tendrán vértices en común y por tanto compartirán el color en sus límites. Para calcular esto sólo necesitaremos calcular la normal a la superficie en cada uno de los vértices del triángulo que se realizará de igual forma que en el caso de un punto individual. Solamente para aquellos puntos que limiten entre dos triángulos (pertenezcan a más de una superficie) la normal se calculará como la media de las normales en cada superficie (Ver figura)

Llegado a este punto hemos conseguido representar fiablemente nuestra superficie mediante una iluminación real. Sólo nos queda introducir un detalle más.
Cuando hemos realizado los cálculos de iluminación nos hemos fijado en si una parte de nuestro terreno está orientada hacia o en contra de la fuente de luz, pero no si otra parte de dicho terreno nos oculta dicha luz (habrá zonas que proyecten sombras sobre otras zonas).
Una forma de solucionar esto sería proyectar nuestro terreno sobre si mismo y visto desde la fuente de luz dividir los triángulos según zonas de luz o sombra.



Este proceso, sin embargo, es lento y difícil. En vez de esto utilizaremos otro método mucho más rápido y muy eficaz. Dicho método consiste en trazar desde cada punto de nuestra cuadrícula una recta que una dicho punto con la fuente de luz, y determinar si dicha recta intersecta con cualquier otro punto del terreno. Si ocurre que se produce una intersección nuestro punto estará en sombra, en otro caso calcularíamos su luz resultante de la manera explicada anteriormente.


En este punto tenemos una Superficie Fractal generada, coloreada, sombreada e iluminada. Necesitamos proyectar dicho terreno sobre la pantalla para poderlo visualizar.

EXPOSICIÒN DEL METODO DE PHONG

POR: Pacheco Melendez Luis
Exposicion: 24-Abril-2008
MÉTODO DE PHONG

El sombreado Phong es un método muy sofísitcado de sombreado, inventado por Phong Bui-tuong. Es un algoritmo que crea precisos brillos especulares. Al renderizar, este método de sombreado alcanza cotas de realismo muy elevados al calcular la cantidad de lu
z en el objeto en pequeños puntos sobre toda su superficie, y no sólo sobre los vértices (como hacía el método Gouraud). A cada pixel se le da un color basado en el modelo de iluminación aplicado al punto. Evidentemente, este tipo de sombreado necesita más potencia de computación que el Gouraud.
Iluminación ambiental


Todos los objetos reciben algo de luz (reflexiones múltiples; muy difícil de modelizar de forma precisa)

Modelizable como que cada objeto tiene una intensidad constante, intrínseca a él: Ia Ka
Intensidad ambiental: Ia
Coeficiente de reflexión ambiental: Ka
No sirve para modelar luz directa (independencia de la distancia y orientación relativas fuente-objeto)
Gouraud shading y Phong shading
Gouraud shading es una técnica que se utilizaba para iluminar objetos, y que solo se aplicaba a los vértices de cada triángulo que compone el objeto. Como el efecto conseguido no era
demasiado convincente, más adelante se consiguió iluminar cada píxel de una superficie, en lugar de cada vértice, mediante el método llamado Phong shading. Esta técnica, más pesada pero mucho más realista que la anterior, se hizo posible con la introducción de Geforce 2.
Destellos Phong
La palabra clave phong en la declaración de acabado controla la cantidad de destellos Phong en el objeto. Provoca una mancha luminosa brillante en el objeto del color de la fuente de luz reflejada.
El método Phong mide la media de las facetas orientadas en la dirección en que se re
fleja el foco de luz sobre el objeto y el espectador.
Los típicos valores de Phong alcanzan de 0.0 a 1.0, donde 1.0 provoca una saturación completa del color de la fuente de luz en el area más brillante (centro) del destello. El valor por defecto phong 0.0 no causa reflejos.
El tamaño del destello se define por el valor phong_size. Cuanto mayor sea el valor de phong, más "duro" será el reflejo, y más pequeño y brillante la apariencia del reflejo. Por el contrario, cuanto más pequeño sea el valor de phong, mayor será el tamaño del reflejo y menos brillante su apariencia.
Los valores tipicos oscilan entre 1.0 (acabado mate) a 250 (muy pulido) aunque se pu
ede utilizar cualquier valor. Si no se especifica phong_size el valor por defecto del tamaño del destello es 40 (plástico). Por ejemplo:
finish { phong 0.9 phong_size 60 }
Si no se especifica phong, phong_size no tiene ningún efecto.

miércoles, 16 de abril de 2008

EXPOSICIÒN DE ILUMINACIÓN LOCAL

Exposición: Traza de Rayos
Día:14-Abril-2008

ILUMINACIÓN LOCAL

Los modelos mas precisos de iluminación superficial calculan los resultados de las interacciones entre la enripia radiante – incidente y la composición material de un objeto. para simplificar los cálculos de iluminación superficial, podemos utilizar representaciones aproximadas a los procesos físicos que producen los efectos de iluminación. este modelo produce resultados razonablemente buenos y es el que se implemente en la mayoría de los sistemas gráficos.


Los objetos emisores de luz en un modelo básico de iluminación suelen estar limitados, generalmente a fuentes puntuales.


En nuestro modelo básico de iluminación, podemos incorporar la luz de fondo definiendo un nivel de brillo general para la escena. esto produce una iluminación ambiente uniforme que es igual para todos los objetos y que aproxima las reflexiones difusas locales correspondientes a las diversas superficies iluminadas. suponiendo que estamos describiendo únicamente efectos de iluminación monocromáticos,, como por ejemplo escalas de grises, desinaríamos el nivel de luz loca en una escena  mediante un parámetro de  intensidad.  cada superficie de la escena se vera entonces  iluminada por esta luz de fondo. las reflexiones producidas por la iluminación mediante la luz ambiente son solo  una forma  de re flexión difusa, y son independiente de las  direcciones de visualización y de la orientación espacial de las superficies. sin embargo, la cantidad de luz ambiente incidente que se refleje dependerá de las propiedades ópticas de la superficie, que determina que parte de la energía incidente  se refleja y que parte se absorbe.


Luz difusa

¢La luz difusa es la que proviene de una dirección particular y es reflejada en todas direcciones.
¢Afecta a aquellas partes del objeto en las que la luz incide.
¢La luz difusa es reflejada por la superficie de un objeto de manera adireccional.



Un modelo de iluminación completo contempla dos procedencias como causas de la intensidad luminosa observada en un punto:

¢
*Fuentes de luz – Objetos

 La iluminación local utiliza modelos empíricos de iluminación.


*Modelo de iluminación I=Ki

IR = IaR ka OdR+ fatt IpR[ kd OdR ( N ·L ) + ks OsR ( V ·R )n ]


*Combinación de los modelos de iluminación ambiental, difusa y especular.


domingo, 6 de abril de 2008

TAREA No4

TAREA:4
6-ABRIL-2008
Algoritmo de Cyrus-Beck
CÓDIGO:
internal sealed class CyrusBeckClipping : IClippingAlgorithm {
private List _clipArea = new List();
private List _normals = new List();

public IEnumerable GetBoundingPolygon() {
return _clipArea;
}

public void SetBoundingRectangle(Vector2 start, Vector2 end) {
_clipArea.Clear();

_clipArea.Add(start);
_clipArea.Add(new Vector2(end.X, start.Y));
_clipArea.Add(end);
_clipArea.Add(new Vector2(start.X, end.Y));

computeNormals();
}

public void SetBoundingPolygon(IEnumerable points) {
_clipArea.Clear();
_clipArea.AddRange(points);
computeNormals();
}

private void computeNormals() {
_normals.Clear();

for (int i = 0; i < _clipArea.Count - 1; i++) {
Vector2 direction = _clipArea[i + 1] - _clipArea[i];
direction.Normalize();

_normals.Add(new Vector2(-direction.Y, direction.X));
}

{
Vector2 direction = _clipArea[0] - _clipArea[_clipArea.Count - 1];
direction.Normalize();

_normals.Add(new Vector2(-direction.Y, direction.X));
}
}

public bool ClipLine(ref Line line) {
Vector2 P = line.End - line.Start;
float tMinimum = 0, tMaximum = 1;
const float epsilon = 0.0001f;

for (int i = 0; i < _clipArea.Count; i++) {
Vector2 F = _clipArea[i];
Vector2 N = _normals[i];
Vector2 Q = line.Start - F;

float Pn = Vector2.DotProduct(P, N);
float Qn = Vector2.DotProduct(Q, N);

if (Pn <> -epsilon) {
if (Qn < 0) return false;
}
else {
float computedT = -Qn / Pn;
if (Pn < 0) {
if (computedT < tMinimum)
return false;
if (computedT < tMaximum)
tMaximum = computedT;
}
else {
if (computedT > tMaximum)
return false;
if (computedT > tMinimum)
tMinimum = computedT;
}
}
}

if (tMinimum < tMaximum) {
if (tMaximum < 1)
line.End = line.Start + tMaximum * P;

if (tMinimum > 0)
line.Start = line.Start + tMinimum * P;
}
else return false;

return true;
}

public ClippingCapabilities Capabilities {
get {
return ClippingCapabilities.ConvexWindow
ClippingCapabilities.RectangleWindow;
}
}

public override string ToString() {
return "Cyrus-Beck algorithm";
}
}
// This code was implemented by Grishul Eugeny as part of preparation
// to exam in ITMO university
El algoritmo de Cyrus-Beck es un algoritmo de recorte entre líneas y polígonos convexos. De forma similar al también utiliza aristas extendidas. Se puede adaptar muy fácilmente entre rayos y polígonos convexos o segmentos y polígonos convexos.

martes, 1 de abril de 2008

Algoritmos de Rasterización

Algoritmo de Bresenham

Aunque los resultados, mostrados en la figura parecen aceptable, considerando las líneas de (0,0) a (-8,4) y
(8,-4) mostrará que la línea rasterizada desaparece a un lado de la línea actual y que un ocurre un punto extra en un extremo de la línea, el algoritmo es dependiente de la orientación.

El punto final se determina exactamente, posteriormente, si una función entera es verdadera que las raíz es de nuevo diferente. Así, cualquier algoritmo más complicado que correrá más lento debe ser usado, o el punto final de la línea y la exactitud de la posición debe ser compremetida.

EL algoritmo de Bresenham

Se usa para barrer dispositivos CRT, el algoritmo busca seleccionar la ubicación de barrido para representar una línea recta. Para corregir esto el algoritmo siempre incrementa en una unidad en cualquier x o y dependiente de la tangente de la línea. El incremento en la otra variable, cualquiera en cero o uno, es determinar examinando la distancia entre la ubicación actual de la línea y la ubicación más cerca de la malla. Esta distacia es llamada “error”.

Si la pendiente de la línea es requerida a través de (0,0) es más grande que ½, entonces esta se intersecta con la línea x=1 que serrará con la línea y=1 y con la línea y=0.

El signo de éste termino de error necesita ser examinado.

Para los puntos extremos son aparentemente exactos y que la selección de pixeles son igualmetne espaciados a lo largo de la línea.


Algoritmos de dibujo de líneas

El tubo de rayos catódicos (CRT)

• Barre la pantalla como una matriz discreta de células (pixeles) que se haga brillante.
• No es posible dibujar una línea recta de un punto a otro.
• El proceso que determina que pixeles proporcionaran la mejor aproximación a la línea deseada es llamado “rasterización”.
• Combinado con el proceso de la representación (rendering) en orden del cuadro en línea de exploración es conocido como exploración de conversión.

Antes de discutir el dibujo de líneas específicas es usual considerar los requerimientos generales para tales algoritmos.

• Cuáles son las características deseables para esas líneas (las líneas rectas deben aparecer como líneas rectas y deben iniciar y terminar exactamente).
• Las líneas dibujadas tienen brillo constante a lo largo de su longitud independientemente de la longitud de la línea y orientación.
• Finalmente las líneas deben dibujarse rápidamente

No es posible para una línea precisar el comienzo y el final en ubicaciones específicas. Sin embargo, con una resolución razonable, aproximaciones aceptables es posible.

Sólo para líneas horizontales, verticales, y líneas a 45° el brillo será constante a lo largo de su longitud.

Proporcionar igual brillo a lo largo de las líneas de longitud variable y orientación requiere el cálculo de una raíz cuadrada. Esto retrasará el cálculo. El compromiso hecho generalmente es calcular solamente una aproximación de la longitud de la línea, reducir los cálculos preferiblemente a un mínimo usando integración aritmética, e implementando el resultado en hardware o firmware.

La mayoría de los algoritmos de dibujo usan métodos para simplificar los cálculos.
El algoritmo simple de rasterización dado en la siguiente sección ilustra la aplicación de métodos incrementales.

Analizador diferencial digital

La técnica para obtener una línea recta rasterizada es resolver el modelo de la ecuación esencial.
Para una línea recta


La solución es

Donde x1, y1 y x2, y2 son los puntos de la línea recta requerida y y1 es el valor dado para el paso inicial. Usando una línea rasterizada, esto es llamado analizador diferencial digital (DDA). Para un simple DDA cualquiera x o y, cualquiera es más grande, se elige como una unidad de barrido.

Algoritmo simple que trabajará con todos los cuadrantes: