Doom 3

What is carmack using to do shaders with for Doom 3? opengl shading language?

This is not really an advanced question
Anyway Carmack has multiple “code paths” in his Renderer :

-the ARB code path : it uses ARB_texture_env_dot3 and ARB_texture_env_combine to do per pixel lighting on cards like the original Radeon (R100) for exemple

-the NV10 code path using NV_register_combiners on cards like GF, GF2 and GF4MX (NV10, NV15, NV17)

-the NV20 code path using ARB_vertex_program and register combiners but using more combiners to decrease the number of pass. Works on cards like GF3 and GF4Ti for example.

-the R200 code path using ARB_vertex_program and ATI_fragment_shader extension

-the NV30 code path using NV_fragment_program allowing multiple precisions to accelerate things on GF FX family cards.

-the ARB2 code path using ARB_vertex_program and ARB_frament_program works on Radeons 9500, 9600, 9700, 9800 and on the GF FX family but the NV30 code path is faster on those.

There is no need for an HLSL for Doom3 because shaders are fairly simple. In fact Carmack has played a little with Glslang on the Wildcat with prototype drivers but I think it didn’t went further thant that.

[This message has been edited by Zeross (edited 12-14-2003).]

[This message has been edited by Zeross (edited 12-14-2003).]

Ok thanks, and just one other question, why do I hear people talk about DX9 shaders as if some shaders are specifically designed for DX9, isn’t it just that DX9 happens to have built in support for shaders which are actually a feature built into hardware, and a feature that any API like OpenGL can use with the right API support? I don’t understand why I’ve seen some people talk about DX9 shaders as if the shader is made for DX9, that just sounds crazy to me.

[…] I don’t understand why I’ve seen some people talk about DX9 shaders as if the shader is made for DX9, that just sounds crazy to me.

it is! marketing is never logical.
for the most ppl its easier to say “it’s dx9 compatible” than to say “it’s using opengl1.5 with vertex program and fragemt program support”. that’s because the most sheeps out there (also called “poweruser” or “hardcoregamer”) are only able to understand the newest merketing langunage… and dx9 simply sounds faaar more advanced thand just opengl1.4. - it has a bigger number in it!

The problem is that no OpenGL version released so far has shaders attached to its spec. As such, there is no real way to attach a particular shader technology to a generation of OpenGL. I guess OpenGL 2.0 will have GLslang as part of the spec, but so far there’s nothing except for DirectX versions to use as a measure of shader technology.

Doom 3 also has a GL2 code path. I think I remember John saying this in a plan or something that he is including a GL2 path.

-SirKnight

Originally posted by SirKnight:
Doom 3 also has a GL2 code path. I think I remember John saying this in a plan or something that he is including a GL2 path.

John Carmack:
I am now committed to supporting an OpenGL 2.0 renderer for Doom through all
the spec evolutions. If anything, I have been somewhat remiss in not pushing
the issues as hard as I could with all the vendors. Now really is the
critical time to start nailing things down, and the decisions may stay with
us for ten years.

http://www.webdog.org/cgi-bin/finger.plm?id=1&time=20020627230700