Giter VIP home page Giter VIP logo

mesh_benchmark's Introduction

Taller de mallas poligonales

Propósito

Estudiar la relación entre las aplicaciones de mallas poligonales, su modo de representación (i.e., estructuras de datos empleadas para representar la malla en RAM) y su modo de renderizado (i.e., modo de transferencia de la geometría a la GPU).

Tareas

Hacer un benchmark (midiendo los fps promedio) de varias representaciones de mallas poligonales para los boids del ejemplo del FlockOfBoids (requiere la librería frames, versión ≥ 0.1.0), tanto en modo inmediato como retenido de rendering.

  1. Represente la malla del boid al menos de tres dos formas distintas.
  2. Renderice el flock en modo inmediato y retenido, implementando la función render() del boid.
  3. Haga un benchmark que muestre una comparativa de los resultados obtenidos.

Opcionales

  1. Realice la comparativa para diferentes configuraciones de hardware.
  2. Realice la comparativa de fps sobre una trayectoria de animación para el ojo empleando un interpolator (en vez de tomar su promedio).
  3. Anime la malla, como se hace en el ejemplo de InteractiveFish.
  4. Haga view-frustum-culling de los boids cuando el ojo se encuentre en tercera persona.

Profundizaciones

  1. Introducir el rol depredador.
  2. Cómo se afecta el comportamiento al tener en cuenta el campo visual (individual)?
  3. Implementar el algoritmo del flock() en OpenCL. Ver acá un ejemplo de Processing en el que se que emplea JOCL.

References

  1. Reynolds, C. W. Flocks, Herds and Schools: A Distributed Behavioral Model. 87.
  2. Check also this nice presentation about the paper:
  3. There are many online sources, google for more...

Integrantes

Máximo 3.

Complete la tabla:

Integrante github nick
Juan David Quintero DavidQP
Romain Fontaine romainfontaine

Resultados

Comparativo del desempeño, variando las representationes, los modos y las tecnicas de rendering. El promedio de FPS se midió sobre un trayecto interpolado del ojo, con la malla del Boid dada en el ejemplo.

  • La representation Face-Vertex es mas rapida porque tiene las faces estan representadas de una manera explicita.
  • El modo retenido es mas lento porque el objeto renderizado es demasiado simple.
  • El View Frustum Culling mejora un poco el desempeño en la mayoria de los casos.

Nota: Para obtener resultados mas interesantes, se podría comparar el desempeño con boids de complejidad mayor.

Medido en una maquina Intel Core I5-5200U (@2.2 GHz), Intel HD Graphics 5500, 8GB RAM:

MeshRepresentation Rendering Mode Retained ViewFrustumCulling Average FPS
Vertex-Vertex Faces & Edges true true 21.360518
Vertex-Vertex Faces & Edges true false 21.876698
Vertex-Vertex Faces & Edges false true 27.970890
Vertex-Vertex Faces & Edges false false 28.110529
Vertex-Vertex Only Edges true true 27.249561
Vertex-Vertex Only Edges true false 27.471605
Vertex-Vertex Only Edges false true 28.867658
Vertex-Vertex Only Edges false false 28.734300
Vertex-Vertex Only Faces true true 25.619290
Vertex-Vertex Only Faces true false 24.905601
Vertex-Vertex Only Faces false true 30.883377
Vertex-Vertex Only Faces false false 30.754749
Vertex-Vertex Only Points true true 27.746189
Vertex-Vertex Only Points true false 27.667632
Vertex-Vertex Only Points false true 24.898156
Vertex-Vertex Only Points false false 24.551680
Face-Vertex Faces & Edges true true 22.413222
Face-Vertex Faces & Edges true false 21.163909
Face-Vertex Faces & Edges false true 28.422137
Face-Vertex Faces & Edges false false 28.308351
Face-Vertex Only Edges true true 27.303019
Face-Vertex Only Edges true false 26.922592
Face-Vertex Only Edges false true 29.744707
Face-Vertex Only Edges false false 29.392267
Face-Vertex Only Faces true true 24.095590
Face-Vertex Only Faces true false 25.158441
Face-Vertex Only Faces false true 30.595924
Face-Vertex Only Faces false false 31.680746
Face-Vertex Only Points true true 27.740002
Face-Vertex Only Points true false 26.524441
Face-Vertex Only Points false true 24.646514
Face-Vertex Only Points false false 23.769648

Medido en una maquina Intel Core i3 (@3.77GHz), 8GB RAM:

MeshRepresentation RenderMode Retained ViewFrustumCulling AverageFPS
Vertex-Vertex Faces & Edges true true 31,945809
Vertex-Vertex Faces & Edges true false 29,729801
Vertex-Vertex Faces & Edges false true 38,207806
Vertex-Vertex Faces & Edges false false 36,087166
Vertex-Vertex Only Edges true true 39,150702
Vertex-Vertex Only Edges true false 38,779029
Vertex-Vertex Only Edges false true 38,827569
Vertex-Vertex Only Edges false false 40,316894
Vertex-Vertex Only Faces true true 38,193070
Vertex-Vertex Only Faces true false 34,603673
Vertex-Vertex Only Faces false true 38,267334
Vertex-Vertex Only Faces false false 40,377155
Vertex-Vertex Only Points true true 36,794101
Vertex-Vertex Only Points true false 38,662383
Vertex-Vertex Only Points false true 32,288518
Vertex-Vertex Only Points false false 29,274063
Face-Vertex Faces & Edges true true 34,336980
Face-Vertex Faces & Edges true false 30,708076
Face-Vertex Faces & Edges false true 40,371567
Face-Vertex Faces & Edges false false 36,896587
Face-Vertex Only Edges true true 38,615692
Face-Vertex Only Edges true false 37,903409
Face-Vertex Only Edges false true 41,402560
Face-Vertex Only Edges false false 39,089708
Face-Vertex Only Faces true true 35,944432
Face-Vertex Only Faces true false 35,130075
Face-Vertex Only Faces false true 42,405147
Face-Vertex Only Faces false false 43,525593
Face-Vertex Only Points true true 33,523111
Face-Vertex Only Points true false 36,476432
Face-Vertex Only Points false true 30,631610
Face-Vertex Only Points false false 26,520298

Entrega

  • Modo de entrega: Haga fork de la plantilla e informe la url del repo en la hoja urls de la plantilla compartida (una sola vez por grupo). Plazo: 15/4/18 a las 24h.
  • Exposición oral en el taller de la siguiente semana (6 minutos: 4 para presentar y 2 para preguntas). Estructura sugerida:
    1. Representaciones estudiadas.
    2. Demo.
    3. Resultados (benchmark).
    4. Conclusiones.

mesh_benchmark's People

Contributors

nakednous avatar romainfontaine avatar

Watchers

 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.