[en] Today, thanks to languages like javascript and standards like HTML5, web development is at its peak moment. On the other hand , thanks to increased computing capacity and low level graphics oriented languages, web developments include most commonly integrated 3D applications. These two circumstances come together at the new generation web developments, that allows the independence of the platform or operating system , as these run on the browser and can harness the power of the WebGL graphics library or the versatility of javascript. In this context we find Three.js a javascript library that allows working with WebGL in a very simple way , abstracting the programmer from the complexity of WebGL. In this bachellor tesis we create a library of support for allowing three.js add weather effects in a simple way . To do so we divide the work into two blocks . On the one hand the generation of texture to the sky and the other a particle engine. For the sky we will use a Perlin noise algorithm that will allow us to generate procedural textures of high quality in a quick way . For particles we will develop a particle engine that allows create and giving them a realistic movement. The final library is quite versatile and we provide guidelines for basic and advanced use. This is because we have separated data generation and rendering and has also performed the particle engine operable with data or independently . Thus , the code is much clearer and readable also allowing more experienced programmers , adapt the data to a personal rendering, adapt the rendering of an own data and use the particles in a custom way. The final result is a prototype library that, transparently to the programmer, allows to create different types of sky and various atmospheric phenomena such as rain, snow, sand storms, blizzards and wind. In the conclusions part we explore the way that could follow the library in order to increase its functionality.

[es] En la actualidad, gracias a lenguajes como javascript y estándares como HTML5, el desarrollo web está en su momento de mayor auge. Por otro lado, gracias al incremento de la capacidad de computo de los ordenadores y a los lenguajes orientados a gráficos de bajo nivel cada vez los desarrollos web incluyen más habitualmente aplicaciones 3D integradas. Estas dos circunstancias se dan la mano en el desarrollo de aplicaciones web de nueva generación que , por un lado, permiten la independencia de la plataforma o sistema operativo, ya que estos se ejecutan sobre el navegador y por otro, permite aprovechar la potencia de la librería gráfica WebGL o la versatilidad de javascript. En este contexto nos encontramos con three.js un framework javascript que permite trabajar con WebGL de una manera muy sencilla, abstrayendo al programador de la complejidad de WebGL. En este trabajo fin de grado se pretende crear una librería de apoyo para three.js que permita añadir efectos climatológicos de una manera sencilla. Para ello dividiremos el trabajo en dos grandes bloques. Por un lado la generación de la textura para el cielo y por otro un motor de partículas. Para el cielo utilizaremos un algoritmo de ruido de Perlin que nos permitirá generar texturas de forma procedural de gran calidad y de una forma rápida. Para las partículas usaremos un motor de partículas que nos permitirá, además de crearlas, darles un movimiento realista. Tal y como se ha planteado el desarrollo, la librería es bastante versátil y se dan unas pautas para el uso básico y para un uso avanzado. Esto es debido a que se ha separado la generación de los datos y el renderizado de los mismos y también se ha realizado el motor de partículas que puede funcionar junto a los datos o de forma independiente. De esta forma, el código es mucho más claro y legible permitiendo además, a los programadores más experimentados, adaptar los datos a una renderización propia, adaptar el renderizado a los datos generados por el mismo y utilizar las partículas de una forma personalizada. El resultado final es un prototipo de la librería que, de forma transparente al programador, permite crear distintos tipos de cielo y varios fenómenos atmosféricos como lluvia, nieve, tormentas de arena, ventiscas y viento. En la parte de conclusiones se explora el camino que podría seguir la librería de cara a aumentar su funcionalidad.