Git Product home page Git Product logo

raster_ws's Introduction

Taller raster

Propósito

Comprender algunos aspectos fundamentales del paradigma de rasterización.

Tareas

Emplee coordenadas baricéntricas para:

  1. Rasterizar un triángulo;
  2. Implementar un algoritmo de anti-aliasing para sus aristas; y,
  3. Hacer shading sobre su superficie.

Implemente la función triangleRaster() del sketch adjunto para tal efecto, requiere la librería frames.

Integrantes

Máximo 3.

Complete la tabla:

Integrante github nick
Oscar Parra odparraj
Alejandra Zaldua dzalduar

Discusión

Describa los resultados obtenidos. Qué técnicas de anti-aliasing y shading se exploraron? Adjunte las referencias. Discuta las dificultades encontradas.

Primero se rasterizó el triángulo usando la estrategia de evaluar si el centro de cada pixel estaba adentro o afuera de la figura. También trabajamos coloreando el pixel si uno de sus cuatro vértices estaba dentro de la figura. Finalmente decidimos que la primera aproximación era mejor porque reflejaba la figura que queríamos rasterizar con mayor fidelidad. El triángulo rasterizado se ve en blanco.

En cuanto a anti-aliasing, usamos la técnica de subdivisión de los pixeles dados en la grilla original. En este caso ya no recorrimos toda la grilla principal para hacer la subdivisión pixel a pixel, sino que tuvimos en cuenta únicamente los pixeles que ya estaban coloreados de blanco. El efecto de anti-aliasing se ve presionando la tecla "a" y es posible aumentar la cantidad de sub-pixeles con la tecla "p" y se disminuye con la tecla "n". Es posible variar los subpixeles entre 4 y 64 (es decir, el lado de un pixel varía entre 2 y 8 subpixeles). Para valores de subdivisión muy grandes, la capacidad de procesamiento de nuestras máquinas era superada, y el programa dejaba de responder.

Para implementar la función de shading, tuvimos que guardar en un arreglo de tamaño variable (lista) los subpixeles que se encontraban dentro del triángulo. Luego de guardarlos, se calcula el promedio de color del pixel principal (no los subpixeles) donde nos encontramos, y coloreamos los subpixeles con ese promedio de color, para que se pueda observar un efecto de suavizado. Este efecto se activa y desactiva presionando la tecla "s".

Entrega

  • Modo de entrega: Fork la plantilla en las cuentas de los integrantes (de las que se tomará una al azar).
  • Plazo: 1/4/18 a las 24h.

raster_ws's People

Contributors

nakednous avatar

Watchers

James Cloos avatar Alejandra Zaldúa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.