Shader Model questions

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Yes, Oblivion tweaks are the source of this question... :D

I'm not sure I understand the relationship between an actual shader, and the shader model rendering path... but I'm assuming the shader is the actual code (obviously) written for a specific shader model, and the rendering path is the way it's rendered, either as one version or another. Is my assumption correct?

I noticed that SM 3.0 shaders are enabled in the Oblivion config files, but I also noticed that the SM 2.0a rendering path is being used for nVidia cards, and SM 2.0b for ATI cards. Wouldn't using SM 3.0 shaders with a SM 2.0 rendering path defeat the purpose of using SM 3.0 shaders? Wouldn't using SM 3.0 shaders and the SM 3.0 rendering path equate to better performance or possibly better image quality?
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: Jeff7181
Yes, Oblivion tweaks are the source of this question... :D

I'm not sure I understand the relationship between an actual shader, and the shader model rendering path... but I'm assuming the shader is the actual code (obviously) written for a specific shader model, and the rendering path is the way it's rendered, either as one version or another. Is my assumption correct?

A "shader" is the actual code that is compiled and run (usually on the GPU) to compute some part of the scene's graphics. The "shader model" describes an API for writing pixel/vertex shaders that can be executed by a particular card (usually in hardware).

A "rendering path" is a particular set of choices that the game engine makes with regard to how the scene is rendered. By following a different "rendering path", you render the same scene in a different way. The most common thing that is differentiated these days are pixel/vertex shaders, so some people have assumed that "rendering path" == "shader model", but it can include other things as well (like texture detail, special effects, LOD optimization, different models, etc. etc.)

I noticed that SM 3.0 shaders are enabled in the Oblivion config files, but I also noticed that the SM 2.0a rendering path is being used for nVidia cards, and SM 2.0b for ATI cards. Wouldn't using SM 3.0 shaders with a SM 2.0 rendering path defeat the purpose of using SM 3.0 shaders? Wouldn't using SM 3.0 shaders and the SM 3.0 rendering path equate to better performance or possibly better image quality?

Depends on how they define their "rendering path". But yes, I would think that if they have an "SM3.0" path, you should use that on hardware that supports SM3.0.
 

Jeff7181

Lifer
Aug 21, 2002
18,368
11
81
Is it as odd as I think it is to use shaders written for SM 3.0, and use a SM 2.0 rendering path? Cause that's what the game appears to be doing.