YES YES YES YES YES SHADERS OH YES!
-
- Posts: 360
- Joined: Tue Feb 10, 2004 2:20 am
- Location: Lubbock, TX
YES YES YES YES YES SHADERS OH YES!
Did anyone read Niko's blog about ordering books on shaders? Anyway if you did not it looks like he is getting some books in hopes that it will help with adding shaders to irrlicht. SWEEET
-
- Posts: 360
- Joined: Tue Feb 10, 2004 2:20 am
- Location: Lubbock, TX
I sure hope we are talking about GLSL or Cg because they are so much easier to work with than others IMO.
The funny thing is that GLSL is still only supported by beta drivers by NVidia and ATI has only released one version that supports GLSL (just).
........prepare to ugrade your video cards ppl!!!!!!!
(trust me it is worth it)
The funny thing is that GLSL is still only supported by beta drivers by NVidia and ATI has only released one version that supports GLSL (just).
........prepare to ugrade your video cards ppl!!!!!!!
(trust me it is worth it)
-= Want your C code to control real life robots? www.users.on.net/~symes =-
The actual code to create the shader would be either GLSL, Cg or HLSL. These programs are relatively small and use a very similar (but not the same) language between them.
You could also write GPU family specific assembler code (DX 8.1 shaders)- but that is just crazy when we have the 3 languages mentioned above.
To abstract away the shading language, Niko would have to create a new one, then translate it to base code, then ask the JIT compiler for it to compile the translated code (without error) and the use it for each renderer.
Of course probably the best choice would be Cg as it supports both OpenGL and DirectX. One issue is though it is a NVidia product. ATI cards can use it happily but I'm sure NVidia will tailor it to be optimised for NVidia cards (I only have NVidia cards at the moment so I can't run any comparisons.)
Personally I think the OpenGL Shading Language is the nicest to work in. Support for it is relative immature but is rapidly increasing. It is built along the same lines as the rest of OpenGL so if you can add OpenGL shading Language to OpenGL programs nicely.
Finally, OpenGL Shading runs nicely on linux (and maybe other platforms that support Open - I don't know). DirectX (and HLSL) doesn't run on Linux.
You could also write GPU family specific assembler code (DX 8.1 shaders)- but that is just crazy when we have the 3 languages mentioned above.
To abstract away the shading language, Niko would have to create a new one, then translate it to base code, then ask the JIT compiler for it to compile the translated code (without error) and the use it for each renderer.
Of course probably the best choice would be Cg as it supports both OpenGL and DirectX. One issue is though it is a NVidia product. ATI cards can use it happily but I'm sure NVidia will tailor it to be optimised for NVidia cards (I only have NVidia cards at the moment so I can't run any comparisons.)
Personally I think the OpenGL Shading Language is the nicest to work in. Support for it is relative immature but is rapidly increasing. It is built along the same lines as the rest of OpenGL so if you can add OpenGL shading Language to OpenGL programs nicely.
Finally, OpenGL Shading runs nicely on linux (and maybe other platforms that support Open - I don't know). DirectX (and HLSL) doesn't run on Linux.
-= Want your C code to control real life robots? www.users.on.net/~symes =-
That's right. That's the reasons why I won't abstract these languages first.dingo wrote:To abstract away the shading language, Niko would have to create a new one, then translate it to base code, then ask the JIT compiler for it to compile the translated code (without error) and the use it for each renderer.
I don't know how Ogre does this (haven't looked at it yet), but some people told me that they are managing this somehow very elegantly.
For the enhanced material system, I'll make all interfaces of the real renderers accessible to make it possible to add new material types without having to modify the Irrlicht.dll.
-
- Posts: 360
- Joined: Tue Feb 10, 2004 2:20 am
- Location: Lubbock, TX
I prefer directx because of two things in Irrlicht. One the quality of rendering is better. If you don't believe me make a particle system and look at the difference from directx and opengl. Two most test I have done the directx rendering in Irrlicht is faster.Hoff wrote:Why do you prefer DirectX? Isn't it all abstracted away by Irrlicht, so you couldn't possibly know which one you're using anyway?
I don't want to get into a flame war about this, but --thesmileman wrote:I prefer directx because of two things in Irrlicht. One the quality of rendering is better. If you don't believe me make a particle system and look at the difference from directx and opengl. Two most test I have done the directx rendering in Irrlicht is faster.Hoff wrote:Why do you prefer DirectX? Isn't it all abstracted away by Irrlicht, so you couldn't possibly know which one you're using anyway?
Any quality / speed differences in the two are because of driver / Irrlicht issues. Think about it -- DirectX and OpenGL are using the hardware in the exact same way, one of them won't magically increase your rendering quality (unless one API exposes some functionality the other doesn't, but that's not the case). As far as Irrlicht goes, I know there are a few places where OpenGL is kinda left behind in the implementation. Last I knew, the color buffer was iterated through once each rendering (which is ridiculous), and I'm pretty sure there are some multitexturing issues here and there.
-
- Posts: 360
- Joined: Tue Feb 10, 2004 2:20 am
- Location: Lubbock, TX