   Non vendor specific bumpmapping
  Is is possible to do bumpmapping that''s not vendor specific?Thanx,Marty 
  Yes. You even have some options: -ARB_vertex_program & ARB_env_dot3-ARB_vertex_program & ARB_fragment_program.-GLSlang-Cg   You should never let your fears become the boundaries of your dreams. ;  Yes, of course. But exentions are required anyway...You can choose:ARB_*_shader (GLslang)ARB_*_programARB_texture_env_dot3All of these are not vendor specific. The best quality can be performed with ARB_*_shader or ARB_*_program but they are only supported by DX9 cards (Radeon 9500 and up; GeForceFX series). ARB_texture_env_dot3 is supported by GeForce 1 and up and Radeon 7500 and up. But you have to do bump mapping with texture environments (or NV_register_combiners/ATI_fragment_shader but they are vendor specific).Here a tutorial for bump mapping with ARB_texture_env_dot3:http://www.paulsprojects.net/tutorials/simplebump/simplebump.html   --------------------------------------------------------There is a theory which states that if ever anybody discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable.There is another theory which states that this has already happened... ;  Thanx for the fast replies :D;  Bump mapping is a really general term used to describe several different texturing techniques. It is possible to do bump environment mapping, dot3 bump mapping, and emboss mapping with OpenGL in a vendor agnostic way.With emboss bump mapping (the simplest technique), you really don''t need any extensions (maybe multitexturing if you want to do it in a single pass). NeHe has an example of emboss bump mapping.There''s also bump environment and dot3 blending. These both require ARB extensions but they are well supported among pretty much any hardware at or above the GF256 generation. You don''t have to implement them using shaders, but you can if you want (you may need the extra control for whatever reason). So, there are several different algorithms implementing bump mapping, and unless you''re using obsolete vendor specific extensions, there''s no reason your bump map implementation should use anything other than ARB extensions.If you want a less generalized answer you can help us out by specifying exactly what kind of bump mapping you''re asking about ;quote:Original post by _DarkWIng_  Yes. You even have some options: -ARB_vertex_program & ARB_env_dot3-ARB_vertex_program & ARB_fragment_program.-GLSlang-Cg   You should never let your fears become the boundaries of your dreams.   could you give me a link or some information about the ARB_vertex_program & ARB_env_dot3 approach? ;quote:Original post by Corrail  Here a tutorial for bump mapping with ARB_texture_env_dot3:http://www.paulsprojects.net/tutorials/simplebump/simplebump.html   Try this one! It uses ARB_texture_env_dot3 but does the vertex processing in software. But it is easily converted to a vertex program.   --------------------------------------------------------There is a theory which states that if ever anybody discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable.There is another theory which states that this has already happened... ;  my problem is that i don''t know how to pass the tangent-space converted light ( and normal) to the pixel-rasterizer. arb_fragment_program does not seem to have an output register for neither normal vectors nor the light...   ;  @666_1337: You can pass TS light vector trough one of the free texture coord streams. Normals can be also passed trough texture coord streams or even trough color if you range compresse them. Look at some demos here You should never let your fears become the boundaries of your dreams. 