A fact about how software-rendering is managed in practice, today.

People of my generation – and I’m over 50 years old as I’m writing this – first learned about CGI – computer-simulated images – in the form of ‘ray-tracing’. What my contemporaries are slow to find out is that meanwhile, an important additional form of CGI has come into existence, which is referred to as ‘raster-based rendering’.

Ray-tracing has as advantage over raster-based rendering, better optical accuracy, which leads to photo-realism. Ray-tracing therefore still gets used a lot, especially in Hollywood-originated CGI for Movies, etc.. But ray-tracing still has a big drawback, which is, that it’s slow to compute. Typically, ray-tracing cannot be done in real-time, needs to be performed on a farm of computers, and typically, an hour of CPU-time may be needed, to render a sequence which might play for 10 seconds.

But, in order for consumers to be able to play 3D games, the CGI needs to be in real-time, for which reason the other type of rendering was invented in the 1990s, and this form of rendering is carried out by the graphics hardware, in real-time.

What this dichotomy has led to, is model- and scene-editors such as “Blender”, which allow complex editing of 3D content, often with the purpose that the content eventually be rendered by arbitrary, external methods, that include software-based, ray tracing. But such editing applications still themselves possess an Editing Preview window / rectangle, in which their power-users can see the technical details of what they’re editing, in real-time. And those editing preview windows are then hardware-rendered, using raster-based methods, instead of the final result being rendered using raster-based methods.

Well up until Debian / Jessie, there existed a package which could be installed, which was named ‘libgl1-mesa-swx11′. What this package did, was to present the API of some very low version of OpenGL – lower than OpenGL 2 – but to render this graphics content on the CPU, instead of on the GPU. This package was meant to be installed on platforms, that did not have a significant GPU.

This was often all that some Linux-users needed because the Editing Preview of certain editors, such as Blender, did not really require a very high version of OpenGL to be fully functional. Therefore, Blender would run just fine, based on the software-emulation which this package provided.

However, as of Debian / Stretch, this package is no longer in the repositories because the assumption is even made by the Linux world these days, that all PCs and Laptops possess a GPU, which can hardware-render a scene, at least up to a certain OpenGL version, such as maybe up to OpenGL 2…



Print Friendly, PDF & Email

2 thoughts on “A fact about how software-rendering is managed in practice, today.”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>