[osg-users] Creating Texture2DArray

Bruno Oliveira bruno.manata.oliveira at gmail.com
Fri Oct 21 05:03:47 PDT 2016


Sorry Glenn what do you mean by "those reserved"?


By the way, my intention is to pass uchar textures of fixed size, to
perform texelFetch and bitwise operations inside a shader, so I really need
my textures to be in the exact format of unsigned byte integer, single
channel!

2016-10-21 12:25 GMT+01:00 Glenn Waldron <gwaldron at gmail.com>:

> Bruno, I think you have those reversed.
>
> On Oct 21, 2016 6:07 AM, "Bruno Oliveira" <bruno.manata.oliveira at gmail.com>
> wrote:
>
>> Hello,
>>
>> thank you for your answer. I am indeed using the same texture sizes and
>> formats.
>> If I use GL_LUMINANCE8 as pixelFormat and GL_LUMINANCE as internalFormat,
>> I get a "invalid enumerant" error
>>
>> 2016-10-21 7:56 GMT+01:00 Sebastian Messerschmidt <
>> sebastian.messerschmidt at gmx.de>:
>>
>>>
>>> Hi Bruno:
>>> Sorry for not reading to the end:
>>>
>>> Hello,
>>>>
>>>> I'm trying to create a Texture2DArray. My textures are uchar images with
>>>> size (texWidth, 256), single channel. The combination of texture
>>>> internalFormat and pixelFormat with pixelType is not working. I use
>>>> GL_R8UI for internalFormat, GL_RED_INTEGER for pixelFormat and
>>>> GL_UNSIGNED_BYTE for type. This yields the following error when I try to
>>>> render my scene:
>>>>
>>>> /Warning: detected OpenGL error 'invalid enumerant' at after
>>>> RenderBin::draw(..)/
>>>>
>>>> However, if I use GL_LUMINANCE for internalFormat and also GL_LUMINANCE
>>>> for pixelFormat, I get no errors but my textures are not correctly
>>>> sized. WHat formats should I use here?
>>>>
>>> When using GL_LUMINCANE as internal formet the pixlel format needs to be
>>> GL_LUMINANCE4/8/12/16[F/I/UI] ...
>>>
>>> So basically for default precision (GL_BYTE) it should be
>>>
>>> GL_LUMINANCE8
>>>
>>>
>>> Cheers
>>> Sebastian
>>>
>>>
>>>> This is my code:
>>>>
>>>>
>>>>
>>>> osg::ref_ptr<osg::Texture2DArray> texture = new osg::Texture2DArray;
>>>> texture->setFilter(osg::Texture2DArray::MIN_FILTER,
>>>> osg::Texture2DArray::LINEAR);
>>>> texture->setFilter(osg::Texture2DArray::MAG_FILTER,
>>>> osg::Texture2DArray::LINEAR);
>>>> texture->setWrap(osg::Texture2DArray::WRAP_R,
>>>> osg::Texture2DArray::REPEAT);
>>>>  texture->setInternalFormat(*textureFormat()*);
>>>>
>>>>
>>>> // Add some images as follows:
>>>> for (...) {
>>>>
>>>>  osg::Image* image = new osg::Image;
>>>> image->setImage(texWidth, 256, 1, *textureFormat(), pixelFormat(),
>>>> type(),* dataPtr);
>>>>
>>>> texture->setImage(i, image);
>>>> }
>>>>
>>>>
>>>> I am using:
>>>> textureFormat() = GL_R8UI;
>>>> pixelFormat() = GL_RED_INTEGER;
>>>> type() = GL_UNSIGNED_BYTE
>>>>
>>>>
>>>> _______________________________________________
>>>> osg-users mailing list
>>>> osg-users at lists.openscenegraph.org
>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>>> cenegraph.org
>>>>
>>>> _______________________________________________
>>> osg-users mailing list
>>> osg-users at lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens
>>> cenegraph.org
>>>
>>
>>
>> _______________________________________________
>> osg-users mailing list
>> osg-users at lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20161021/ea16ee5e/attachment-0003.htm>


More information about the osg-users mailing list