thanks for your answer, what you say makes sense and if I understand you correctly, the GPU will figure out the actual winding order from the vertex positions when processing the triangles. But wouldn't that mean that the inside of the backfacing cube sides are drawn too because for the viewer these triangles are front-facing though never visible.
If so, we wouldn't gain anything as there are still always six sides (12 triangles) of the cube drawn.
As I understood the CullMode renderstate it depends on the winding order of the triangles as stored in the Vertex/IndexBuffer no matter how these triangles are oriented to the viewer.
Or did you mean that both concepts are applied together i.e. first the CullMode renderstate and the index/vertex definitions specify the potentially maximum number of visible triangles (all the 6 outer sides of the cube (12 triangles)) and then the GPU will perform a view dependent evaluation on these potentially visible set of triangles to cull out the backfacing ones (the 3 sides not pointing to the viewer (12 triangles), resulting in only 6 triangles actually drawn ?
Just trying to understand this right. So there is practically nothing I need to code myself to draw only ever at most 6 triangles of a cube?