I am interested in methods of 2d and 3d rendering using single thread on an average CPU (e.g. for programming games for old and low-end PCs).

While I usually have no performance problems when using OpenGL and shaders, I have little understanding about how can real-time 3d, lighting or certain effects (like blur, other convolutions or perspective transformations) be achieved and made fast enough without using GPU.

I am aware of some obvious optimization techniques (precalculating functions, rendering in lower resolution and then stretching, calculating convolutions for each axis separately), but they often do not give enough performance for my applications.

Are there any sources (or keywords for Google) where I can find out about platform-independent rendering optimiztions and algorithms for CPU?

  • 1
    \$\begingroup\$ I'm sorry, but the number of techniques and optimizations you can apply to hardware rendering are countless. This makes this question too broad for the question&answer concept of Stackexchange. To create a more answerable question I would recommend you to implement what you want as well as you can (ask a new question when you don't know how to implement something), run a profiler to find the biggest bottlenecks and then ask about how to optimize each bottleneck in an individual question. \$\endgroup\$ – Philipp Nov 23 '15 at 12:18
  • \$\begingroup\$ Why don't you want to use the graphics card? \$\endgroup\$ – Richard Tingle Nov 23 '15 at 12:22
  • \$\begingroup\$ @Philipp Most information that I find involves direct memory manipulation and other things that are very platform-dependent; my platform (be it browser or some OS) may not even provide such possibilities, which forces me to make optimizations on a higher level of abstraction. This makes a range of possibilities much narrower, or is my impression wrong? \$\endgroup\$ – interphx Nov 23 '15 at 12:24
  • \$\begingroup\$ @RichardTingle My target platforms do not always have GPU or may not provide access to GPU. \$\endgroup\$ – interphx Nov 23 '15 at 12:25
  • 2
    \$\begingroup\$ @interphx uncountable infinity divided by n is still uncountable infinity. \$\endgroup\$ – Philipp Nov 23 '15 at 12:32