Search code examples
graphicsrenderraster

What does it mean to create your own raster engine?


I read somewhere that someone was going to create a raster engine similar to opengl to fully understand what opengl does.

It was my understanding that you could not do that, because your graphics card has opengl / directx on it, and you could not use anything else for the core of your graphics.

I think my view is incorrect though, can someone correct it?


Solution

  • OpenGL is a standard way of processing graphics. It does not live solely on the graphics card as an isolated piece of software. If your graphics card has OpenGL hardware acceleration, it means that your computer CAN send some of the OpenGL commands to the graphics card and offload the work that the CPU would otherwise have to handle - but only because the card has been pre-designed for the OpenGL standard.

    If you didn't have OpenGL hardware support on your card, everything would have to be sent through your main processor, and it is not usually optimal.

    There are actually many implementations of OpenGL. Some are hardware-infused by companies like ATI and NVidia where they provide their own opengl implementation for forwarding the opengl processing to the card. Others are software based like the open source MESA. In the case that you're running a mismatched card and game, like a DirectX card and OpenGL game, then you're probably having to render with a pure software implementation.

    So yes, a pure software implementation is possible, yet not optimal. Sometimes however a software implementation is necessary if you need to access and manipulate lower-level graphics information on the fly. Knowing how to do that is a great skill to have.