gl_Position = projectionMatrix * viewMatrix * translationMatrix * rotationLeftRight * rotationUpDown * vec4(inVertexPosition, 1.0);
be perpendicular to the camera view direction
This was not what I meant with the rectangle (from now on be simply called 'P') being perpendicular to the camera view direction or perpendicular to the camera near/flar plane's normal.
You haven't really told how you actually want it to look like.
Only have eight pre-rendered impostors for only eight discrete directions and it will only ever look correct if your camera direction precisely matches the direction from which a particular impostor image was generated.On top of that, it will also only look correct when the perspective projection the impostor was rendered with matches the one of the camera in the scene. For example, things will look incorrect when you move too close to the impostor when it was generated/rendered with a perspective/camera farther away.
Will the switch from one image at a given angle to another one for a different angle not be very noticeable and distracting during gameplay?