Ok so alot of the nvidia cuda tutorials use float4’s for vectors and normals toggling the w to 1 and 0 respectively. While I understand the reasons behind that, I wonder if for large meshes, memory can be saved using float3’s instead, as they are supported by the OpenGL API.
My question is, if I use float3 instead, will the graphics hardware still expand each vertex to a 4-tuple to handle the 4x4 transformations? In other words, will I save any cuda memory by changing my vbo generation code to use float3 instead? And will it come at a performance penalty?