Recently, I started using the
MEGA service.
An interesting fact is that the organization has not only its own data servers. You can cooperate with the company by offering your data centers (meeting certain requirements) to store user information in encrypted form.
But, along with the storage of information, the service of cloud-distributed computing, and in particular, rendering, will be equally useful for us.
The idea is nothing unusual. I am not the first to whom this idea occurred.
But I share my thoughts, because I believe that this service will be very useful to many.
')
So what is “rendering”? Rendering is a computational process, during which, we get a beautiful picture of the 3D model using the "render" program.
What is “distributed”? This is when the storage or calculation of data is distributed among multiple computers or servers connected by a single network (see
distributed computing ).
Distributed rendering is a computational process for creating images distributed between computers. Computing can also take over the
clouds .
What is the point?- Benefit to others. Many homes are quite powerful, unclaimed computing resources. I, for example, have a GTX580, core i5 2500. I rarely play, and then, in a resource-undemanding game. I would be able to use my video card for the benefit of someone, but there is no suitable infrastructure.
- Monetary benefit for the participant. I can sell my computing resources to someone for money.
- The customer can buy the computing resources of the owner of a powerful video card.
Parties- Initiator. The person who decided to start rendering on the employee's computer. Initiator loads models, textures, shaders into the cloud.
- Worker. The owner of computing resources, which can perform calculations on its powerful hardware, in order to show the viewer.
- Viewer. Looks at the rendered image, looks at objects from all sides, assigns the harvested materials, etc.
In the role of the initiator, employee and viewer can be the same person. The initiator may be a spectator, an employee of the spectator, an initiator by the employee.
What is the concept of the program?- Confidentiality (this option can be disabled if necessary). The employee should not know anything about what exactly he renders on his computer (if the viewer himself does not wish this).
- Maximum quality with minimum settings, the possibility of real-time rendering. For this, unbiased rendering is best suited.
- Performance on any OS (Linux, Windows, OSX), support for most common hardware (AMD, Nvidia, Intel, maybe other platforms).
What computing platform to use?CPU + GPU. In my opinion, GPU renderers are already good enough to use them as a rendering platform, along with x86-64 processors. The advantage is the speed of calculation. However, writing a program on a
GPU has several disadvantages:- The complexity of writing code, for writing a program on a GPU, frameworks such as OpenCL , CUDA (Nvidia), FireStream (AMD), and shader languages GLSL (OpenGL) and HLSL (DirectX) are required.
- A relatively small amount of memory, the inability to increase the amount of memory without significant loss of performance.
In order to support most of the hardware, I consider it necessary to use OpenCL or the shader language GLSL. Calculations on shaders are performed significantly faster (
video about soft tissue physics calculations), besides, the shaders already have a render
RenderBRO (uses HLSL).
I believe that GLSL version 4 (and more) is the best platform for creating a render, because:
- It has high performance in combination with a powerful iron.
- Works on all operating systems and on any hardware that supports OpenGL version 4+
If the task on GLSL is not feasible at all - you can try to render on OpenCL;)
Application area:I believe that the main area of ​​application of such a render is the DEMONSTRATION of an idea to someone in three-dimensional form. Suppose a person wants to order a car for himself, or an apartment repair. He will have the opportunity to "walk around the apartment", to see his car from all sides, in any environment, in any colors, sitting at home, at the "grandmother's computer", phone or tablet.
A man painted a house in SketchUp, for example - he will have the opportunity to render it with the help of a video gamer’s neighbor card. This is the essence.
In conclusion, I want to add that there are quite a few tasks that require a lot of calculations. Rendering is just one of many computational tasks that can be distributed between computers.
Like this. Looking for like-minded people.
Thanks for attention.