Shaders 2.0, Disabling Programing

Started by
4 comments, last by Daivuk 18 years, 7 months ago
Hi, Im here with an issu for EA games and some others that dont know how to disable pixel shaders 2.0 if the card can not support it. For example, you have an NVIDIA GeForce4 Ti 4400 (that can run doom3 very smoothly at high detail) But your pixel shader version is : PixelShader version: 1.3 VertexShader version: 1.1 For most of the recent game : Battle Field 2, Vietcong2, etc. You can not run it if your shaders version are less than 2.0. But the game could probably run very fast on a gf4 ti. Faster than on a nvidia 6200. So, for those from ea games that dont know how to do this, here is the code example to achieve this using GLSL (probably similar with HLSL) :

// If we enable pixel shader 2.0 in the game (if not, try using a older version or just disable it)
bool enableShading20 = true;  // <--- Use this to see if you have to render using shaders or not

// Create a shader object (GLSL is 2.0 or nothing)
fragment_shader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);

// Check if it have been initiated correctly
if (!fragment_shader) 
{
    enableShading20 = false;
    return 0;
}

So what, 4 or 5 lines of code?!?!?! If I can do it, they can do it. And probably there is a simpler code than this (since i'm not a shader expert) So WHY ea games and others can not achieve this?? Let me think... marketing? I'm very sick of it. I think I probably need to give my CV to them, they need better programers.
Advertisement
"marketing", or perhaps creating fallbacks for all their 2.0 shaders, creating assets that look good without 2.0 shaders, creating alternative implementation of visual effects that would normally be available on modern hardware.

Should you support fixed function, should you support software rasterazing,...
It's about settings a line somewhere, and for them, this is probably where it made sense to set that line. These games wouldn't run too well on older hardware anyway.

And yes, in a way it "marketing". The games industry is a very hard industry, and economics is everything. At least don't blame the developers.
As c2_0 indicated, there's probably a lot more than simple technical considerations that go into such decisions.

If they widen the officially supported hardware list then they will have to provide support to all those extra users. I can't speak for them, but it is possible that something like this tipped the balance - means that it just isn't cost-effective to do such a thing.

hth
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

Quote:Original post by c2_0
At least don't blame the developers.


Thats was sarcastic ;)
I know its not the fault of the programer.
Its only marketing, and its that that I deplore...

But good point jollyjeffers for they have less support to do..
anyway.
Quote:These games wouldn't run too well on older hardware anyway.


Bull. After applying some 3rd party patch for BF2, it ran fine on my AMD 1.1Ghz here at work with its MX440. Sure, it didn't look AWESOME but it was perfectly playable, and a fan of BF wouldn't have minded at all (i.e. the guy sat next to me!) :)
---PS3dev
Hey, you can run it on a MX440 ????
How you did that.
I want to run it with my ti4400.
Is this patch is legal?
Do you can play online with it?

thanks

This topic is closed to new replies.

Advertisement