CSR vs SSR
Whether to choose client-side or server-side rendering for your HOOPS Communicator installation depends on a number of factors, including size of the CAD models being rendered, users’ hardware configurations, and the graphical capabilities of the server machine.
While client-side rendering is more frequently selected than server-side rendering, to help make the decision a bit easier we’ve detailed the advantages and disadvantages of both options below.
Because WebGL relies on the client hardware to do all of the rendering, the devices the viewer is running on must be sufficiently capable of rendering 3D graphics at interactive speeds.
With this in mind, choose client-side rendering when:
You have sufficiently high bandwidth to serve 3D models in an acceptable amount of time
The client device has enough computational power to render 3D models
The client browser supports WebGL
When HOOPS Web Viewer is set up for server-side rendering, all rendering of the 3D model is performed by the GPU on the web server. As a result, your server back end must include an instance which includes a GPU. As the user interacts with the model, the server renders each frame and sends an image back to the client’s web browser for display, minimizing hardware requirements for the client. The images are sent in real time, so it will appear to the user as if the rendering is being done in real time on the local machine.
Please note that SSR is only used for the 3D model rendering - all other capabilities like buttons and the model browser are created on the client side via HTML. This includes all user-created measurement and markup data.
The main benefit of SSR is the fact that only an image is sent to the client and so the user can start interacting with the model almost immediately. SSR also allows you to access high-powered GPU technology which can offer significant benefits with very large models. The major downside is that using SSR shifts the hardware requirements to the server.
In summary, choose SSR when:
You want to target the widest range of client hardware.
You are planning to serve very large models to disparate clients.
You have a sophisticated server back-end which renders at an acceptable speed for your models. It should also have the ability to scale with the size of your models and number of concurrent users.