ma lib3D utilise un parser de shaders que j'appelle HLL et qui compile en première passe le shader en ShaderModel1, 2x, 3, ou 4 ou GLSL.
mon shader debugger est sensé permettre d'écrire des shaders en HLL perso cross-platforms et cross-apis.
c'est qu'à la base ma lib était écrite pour D3D8 et GL, puis est venu D3D9 et D3D10 récemment, donc en fait on peut faire du HLL pour les ps.1.4
ou les fragment programs de GL.
il faut dire que ma lib gère le shaders, mais aussi le TNL et autres rendus par lightmaps, bump et possède un système de vertex/index buffers autonomes.
donc, à l'automne dernier j'ai ajouté la compatibilité D3D10 et GLES20, et le shader debugger est devenu une nécessité.
tous mes jeux 3D quand je travaillais pour TLK Games fonctionnent aussi bien sous D3D8 et fonctionnent aussi sous Android et iPhone sans trop de modifs.
(ex:
http://www.tlkgames.com/fr/game/3d-minigolf-unlimited)