Now-a-days 3D industry is getting a lot of hype and the demand for 3D assets is getting increased due to many reasons [1]. The main reason why the 3D industry is getting more fame than ever is the introduction of the metaverse by Meta. Also, many companies like Apple, Amazon, Microsoft and Google are trying to get involved in the R&D and asset development in the metaverse. That is the reason many new individuals are coming into this domain to learn and excel in it. In 3D Software (maybe the industry-level, paid ones like 3DS Max, Maya, Houdini or close to industry-level and open-source ones like Blender), the workflow involves making a 3D scene in the software, adding the animations and movements to the assets in the scene, adding the lighting and the environment, adding volumetrics, etc. After completing all the above steps if an individual want to show the work they have done, then they must convert their work in 3D scene into a 2D format like an image or a video. This process of converting a 3D project into a 2D representable format is called Rendering. During the conversion of the 3D scene into an image or a video, the software needs to perform many calculations to analyse various aspects of the scene. Some of the aspects include light bounces, light paths, reflections, refractions, rigid body dynamics, fluid and smoke simulations etc. [2, 3]. To perform all these calculations the software demands lots of computational and graphical power and if this process is performed in an average desktop computer or a laptop, then all the resources would be utilized by the software itself making the computer useless for other works/tasks until the rendering gets completed. Also, the rendering would be slower as the computer resources are limited. Time required to render obviously depends on the scene, the assets in it, lighting and volumetrics. It also depends on the specifications of the computer. A computer with more cores and more GPU VRAM can render the frames faster than a laptop with fewer cores and low GPU VRAM. For example, if we consider a video with a frame rate of 60 FPS, it will take one hour to render a one-minute video, if we consider that one frames takes 10 minutes to render and to render a one-hour video, it takes 25 days. If rendering time for each frame increases by even one minute, it will drastically affect the rendering time of the whole video. This proves that rendering is crucial part of the 3D project as without that we cannot exhibit or show our work to anyone else.
Most 3D studios like Pixar are setting up huge supercomputers with more CPU cores and GPU and connecting them to work together and render the frames of their movies. Pixar studios have one of the top 25 super computers in the world with 2000 separate computers making up to 24000 CPU cores. Even with this beast-like super computer, it took them two complete years of rendering to render a single movie, i.e., Monsters University. As mentioned earlier, the main problem with the process of rendering on our personal computers is that it takes more time to render and also the computers cannot withstand those heavy loads for longer periods. As all the cores of the CPU will be used while rendering, we cannot perform any other tasks on the computer until the process gets completed. The above concerns can be resolved either by upgrading the computer or upgrading the components of the computer. Both are efficient in terms of work, but not in terms of cost. To setup a new workstation or to upgrade the components of a computer, the person needs to spend a lot of money, and this is not a choice for most of the people who are just entering the field. Instead of upgrading the computer or the parts of the computer they can go for a render farm. There are many render farms out there who take the 3D file, take some time to render the files on their private servers or cloud servers and give the user the rendered output for some price. This is a good idea for the people who doesn’t want to upgrade their computers. But the problem with the existing render farms is that they are quite expensive and not everyone can afford them. This motivates us to propose a novel solution where the cost of rendering is less, and the yield is also better. Cloud or cloud computing is the platform where the cloud providers provide us with many kinds of computers or technically called instances, storage solutions, database solutions, and easy addons for some hard to setup tools like Kubernetes
In our proposed work, we are performing the rendering process over the cloud (Amazon Web Services/AWS). Here, the time taken to render the frames will be drastically reduced due to two reasons. Firstly, the computers we use in the cloud are designed to take on and work under heavy loads. Secondly, we can perform parallel computing over many instances of the cloud which means that we can perform rendering of various frames over the same time on different instances. This would be beneficial over the cloud as using one instance for 10 hours or using 10 instances for 1hour costs the same. So, we use the concept of cluster computing to get the output faster. This render farm is built over AWS based on Secure Shell and Ansible concepts. The Render farm is the collection of computers where one computer known as the master node divides the nodes to be rendered and gives them to the other nodes called the worker nodes. The role of the worker node is to render the frames and send the final output to the master node [3]. In the render farm built over AWS, these nodes would be EC2 Instances where the master node would be a General Compute Class EC2 Instance, and the worker node would be Compute Accelerated Class EC2 Instance. All these instances would be deployed inside the same Virtual Private Cloud (VPC) which maintains its own virtual private space for the whole infrastructure deployed so that additional security groups can be used to add additional control over the incoming and outgoing traffic.