as a 3d newbie I am in no way familiar with programming pixel shaders and such, however I wonder if it would be possible to use these within Xith3d. (Because they look pretty good.)Well, currently just Nvidia's gfx card dependent Cg is available via Jogl. Could you use it also within Xith3d?Difficult, I guess. Since then you would have to ask the gfx card if's Nvidia and Cg enabled - something which you usually don't like to do from within a high level 3d API like Xith3d?

For a platform independent way: OpenGL 2.0 is around the corner, offering a neutral way to pixel shaders. However will it take long until they find their way into Jogl and then Xith3d?

I was thinking to implement porgrammable shaders (both pixel and vertex) support. For me this looks very similar to other fixed-pipeline shaders with some differences.

After making some investigation in this area, I came to the point where I had to decide which level of support should be added to Xith3D: low-level programming (i.e. support for extensions like NV_vertex_program and ARB_vertex_program), Cg (which is only supported by NVidia) or new OpenGL 2.0 - style high level shader programming language.

I still have no clear explanations on why some of the ways should be chosen - all of them have pros and cons. On a long term I believe OpenGL 2.0-style language should be supported, but there are almost no cards/vendors that support it for a moment. NVidia Cg requires deployment of Cg runtime, and extra native code language.

For a moment I see Cg as a preferred way to go for now, later switching to OpenGL 2.0-style code, so this is on my list - at least Cg Vertex Programs, because of I know I will need them very soon.

Personally I would just love to see NV_vertex_program and ARB_vertex_program support in xith3d - even though it is not really "standard" way. OpenGL 2.0 might be just around the corner but even if that corner comes soon it would take months for vendor to actually support it. Also if vertex_program are use it would give us great tool to improve on activities like morphing.

I think that OGL 2.0 is a actually far from coming, and they included the OGL Shading Language in "minor" release of the API because is a real need for programmers, and they don't want to wait for the OGL 2.0

Does Xith allow pluggable renderers at the moment, or are you stuck with whatever standard one there is (like J3D). IMHO shader support without being able to do a custom renderer doesn't give you nearly as much power. If instead you could make your own renderer then you use all the extensions you felt like.

Btw, Cg works for more cards than just nVidias. It can compile down to a variety of cross-vendor extensions.

AFAIK, OpenGL 1.5 does not include support for OpenGL Shading Language (high level shared programming language) as a part of its spec, but it is available as set of extensions:

Quote

In addition to additions to the classical fixed-function GL pipeline in OpenGL 1.5, the OpenGL ARB also approved a related set of ARB extensions including the OpenGL Shading Language specification and the ARB_shader_objects, ARB_vertex_shader, and ARB_fragment_shader extensions through which high-level shading language programs can be loaded and used in place of the fixed function pipeline.

AFAIK, NVidia does not support these extensions yet, but has plans to add this. Only vendor that supports these extensions for a moment is 3DLabs. [HOPEFULLY my info is outdated!]

We are speaking about OpenGL 2.0-style shader programming exactly in favor of these extensions (ARB_shader_objects, ARB_vertex_shader, and ARB_fragment_shader), which is AVAILABLE NOW at least for some (3DLabs) graphic cards.

Quote

If so I'd also prefer these instead of Cg because I don't want to tie my app to one graphic card manufacturer.

Quote

Btw, Cg works for more cards than just nVidias. It can compile down to a variety of cross-vendor extensions.

These extensions - ARB_vertex_program and others - really supported by vendors other than NVidia, so Cg will work OK also for them.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org