[osg-submissions] 2D Array Textures (EXT_texture_array for osg)

Art Tevs stud_info2 at yahoo.de
Tue Jul 24 06:18:00 PDT 2007


Hi folks, Hi Robert.

Here is my submission for the osg. Description:

----------------------------------------------------

A new texture class Texture2DArray derived from
Texture extends the osg to support the new
EXT_texture_array extensions. Texture arrays provides
a feature for people interesting in GPGPU programming.


Faetures and changes:

- Full support for layered 2D textures.

- New uniform types were added (sampler2DArray)

- FrameBufferObject implementation were changed to
support attaching of 2D array textures to the
framebuffer

- osgUtil/RenderState is changed to enable render to
texture mode for array textures.

- StateSet was slightly changed to support texture
arrays. NOTE: array textures can not be used in fixed
function pipeline. Thus using the layered texture as a
statemode for a Drawable produce invalid enumerant
OpenGL errors.

- Image class was extended to support handling of
array textures

Tests:
I have used this class as a new feature of my
application. It works for me without problems (Note:
Texture arrays were introduced only for shading
languages and not for fixed function pipelines!!!).
RTT with Texture2DArray works, as I have tested them
as texture targets for a camera with 6 layers/faces
(i.e. replacement for cube maps). I am using the array
textures in shader programming. Array textures can be
attached to the FBO and used as input and as output.

Must be done:
- Restrict user to bind an Texture2DArray to any
"Geode" (i.e. by setting up StateSet), such that they
can not be used for fixed function pipeline. Probably
a warning should be ok, when user call
osg::StateSet::setTextureAttributeAndModes(0,
texture2Darray, osg::StateAttribute::ON); with
texture2Darray as an instance of Texture2DArray class.


Should be done:
- Adding of Texture1DArray class.
- Support for integer texture EXT_texture_integer


----------------------------------------------------

Since I am working on an Shader Model 4.0 application,
I will probably make more contributions to the osg,
which implements the new extensions. I was not able to
find out, if some one already working on them :-( Next
one is the EXT_geometry_shader4 and EXT_gpu_shader4.

Thanks.

Cheers, Art

P.S. Please let me know if you add this contribution
to the svn or not. This would be very helpfull for
future developments.


      __________________________________  Alles was der Gesundheit und Entspannung dient. BE A BETTER MEDIZINMANN! www.yahoo.de/clever
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch_2darraytexture.tar.gz
Type: application/x-gzip
Size: 55021 bytes
Desc: 199393217-patch_2darraytexture.tar.gz
Url : http://lists.openscenegraph.org/private.cgi/osg-submissions-openscenegraph.org/attachments/20070724/754f3f2e/attachment-0001.bin 


More information about the Osg-Submissions mailing list