Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Progreso del Paso 4 #8

Open
lisa31419 opened this issue May 15, 2021 · 11 comments
Open

Progreso del Paso 4 #8

lisa31419 opened this issue May 15, 2021 · 11 comments
Assignees

Comments

@lisa31419
Copy link
Contributor

En este issue, iremos apuntando los resultados de los commits más importantes de este paso. Para ello, adjuntaremos capturas de pantalla con una pequeña descripción de lo que se ha hecho.

De esta forma, en el informe podremos explicar mejor todo.

@lisa31419
Copy link
Contributor Author

Cálculo de las normales. Se han normalizado de [-1,1] a un dominio de [0,1].
image

@lisa31419
Copy link
Contributor Author

lisa31419 commented May 15, 2021

Calculo del observador. Se ha descomentado la linea 235, vec4 obser, en camara.cpp y se ha creado un uniform del observer. El resultado es que, al desplazar el objeto se oscurece o más luz y también cambia el color según la normal del objeto y la posición del observer.

Captura del escritorio de 15-05-21 22_40_52

@lisa31419
Copy link
Contributor Author

lisa31419 commented May 15, 2021

Calculo de la luz difusa. EL material está puesto con una especular verde, la luz es una de tipo puntual y de momento solo le aplicamos la difusa.
especular

@lisa31419
Copy link
Contributor Author

lisa31419 commented May 15, 2021

Caluclo de la luz especular. El material lo he adaptado al material Goma de la anterior práctica y ahora están las luces especular y difusa implementadas.
especularDifuse

PD: tiene un pequeño bug verde si te mueves muy rapido, pero luego carga bien el color de la esfera :)

@lisa31419
Copy link
Contributor Author

Calculo de la luz ambiental. Calculada la formula final para una luz, sin habilitar la atenuación que solo afectará a un tipo de luz concreto.
Aquí está la diferencia entre difusa+especular (izquierda) y difusa+especular+ambiental (derecha).

image

@lisa31419
Copy link
Contributor Author

lisa31419 commented May 16, 2021

Testeo de Gouraud Shading con el ejemplo del Campus.

Solo difusa
image

Difusa + especular
image

Difusa + especular + ambiental + global
image

Ojo con el tratamiento de las normales en la clase Object

@lisa31419
Copy link
Contributor Author

Phong hecho. Hemos cogido el código de Blinn-Phong del Gouraud Shading hacia el fshader del Phong y hemos rasterizado la normal y la normal y la posición.
La izquierda es Phong Shading y la derecha, Gouraud Shading:
image

@lisa31419
Copy link
Contributor Author

Lus direccional en ambos shadings.
En este caso, se ha implementado la luz direccional para el Gouraud Shading (izquierda) y para el Phong Shading (derecha).
image

@lisa31419
Copy link
Contributor Author

SpotLight done. Esta un poco cerca de más, pero se aprecia bien.
image

image

@lisa31419
Copy link
Contributor Author

lisa31419 commented May 22, 2021

Toon shading opcional 1. Hemos hecho 4 tonos: un rosa muy clarito, un rosa claro, un rosa medio y un rosa oscuro. De esta forma medimos la intensidad como el cosinus del alguno entre la normal y la dirección de la luz. Por llo tanto, cuanto más pequeño sea el valor resultante del cosinus, más clara será la tonalidad.
image

Para esta imagen se ha usado:
if (intensity > 0.75) { colorOut = vec4(1.0,0.8,0.5,1.0); } else if (intensity > 0.5) { colorOut = vec4(0.6,0.3,0.3,1.0); } else if (intensity > 0.25) { colorOut = vec4(0.4,0.2,0.2,1.0); } else { colorOut = vec4(0.2,0.1,0.1,1.0); }

@lisa31419
Copy link
Contributor Author

Toon shading Opcional 2. e ha mejorado el toon shading obteniendo los siguientes resultados:
Luz direccional, head.obj y Toon Shading
Light:
this->lightPosition = vec4(1.0, 1.0, 2.0, 1.0);
this->ambiental = vec3(0.2, 0.2, 0.2);
this->diffuse = vec3(0.8, 0.8, 0.8);
this->specular = vec3(1.0, 1.0, 1.0);
this->coeficients = vec3(0.0, 0.2, 0.8);
this->typo = t;
this->direction = vec3(1.0, 0.0, 0.5);
this->angle = 10.40;
screen_output_21863

@lisa31419 lisa31419 self-assigned this May 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant