In the 1x MSAA case, do you get flickering/crawling specular artifacts on the mesh when you move the camera around? If that's the case, then you're probably just experiencing run-of-the-mill shader aliasing. Shader aliasing occurs when you have high-frequency detail in the geometry or normal maps combined with high-frequency specular in the pixel shader, there's not enough pixels to sample the specular without noticable artifacts.
Thanks for replying.
There's no flickering what-so-ever with 1x MSAA. That part of the speaker model doesn't even have a texture - it's all just color shaded. Odd, to say the least...
It appears the 3 pix are also of different resolutions. If you do lighting calcs in a pixel shader, are you sure it's not a specular (or other) lighting artifact? If you turn off lighting do you still have the problem?
Thanks for the suggestion! Looks like you are right. If I comment out the specular term then the artifact disappears. I really don't know where I've gone wrong with the equation though:
float3 V = normalize(-positionVS);
float3 H = normalize(L + V);
result += lightSpecular.rgb * Ks.rgb * pow(max(dot(H, normalVS), 0.0f), Ns);
Would it be safe to assume that the model itself has a bit funky normals? Thanks again!
EDIT: it seems that other models exhibit the same sort of behavior on very thin mesh parts: for example the legs of a chair, but not all of them, have these artifacts as well.
Calling a member function on a deleted object is undefined behavior, which often means a crash, but can really do anything at all including succeeding. In this case I'm guessing that your member function doesn't actually use any member variables so doesn't actually access any deleted memory.
Ah, of course. Indeed, as soon as I added a member variable, the function returned junk values. Just to be certain though, I allocated memory for an int in the constructor, then in the destructor deleted it and set the pointer to NULL and then had the original pointer query that member function that returned the variable's value and the application crashed as expected. Thanks for the quick reply!