I'm starting to think that this is some OSG bug / inconsistency. If I give up on Texture2DArray and upload a SINGLE Texture2D, if I use GL_R8UI as internalFormat and GL_RED_INTEGER as pixelFormat, everythning works perfectly.
2016-10-21 14:54 GMT+01:00 Bruno Oliveira <[email protected]>: > Thanks. However, I am already doing that! > > 2016-10-21 14:51 GMT+01:00 Glenn Waldron <[email protected]>: > >> Bruno, >> According to this thread you might also need to set your packing to 1 (in >> the image->setImage call). >> (https://goo.gl/1pv2Zt) >> >> Just a guess. >> >> Glenn Waldron >> >> On Fri, Oct 21, 2016 at 9:36 AM, Bruno Oliveira < >> [email protected]> wrote: >> >>> Thanks for the answer. >>> >>> Using GL_LUMINANCE8UI yields undefined symbol. The closest symbols I >>> have defined is GL_LUMINANCE8UI_EXT. >>> >>> However, using internal TExture Format as GL_LUMINANCE8UI_EXT and pixel >>> format GL_LUMINANCE yields 'invalid operation' errors >>> >>> 2016-10-21 14:03 GMT+01:00 Sebastian Messerschmidt < >>> [email protected]>: >>> >>>> Hi Bruno, >>>> >>>> >>>> >>>> >>>> How do I guarantee that my textures will be unsigned integer 8bit texels >>>>> with no scaling nor normalization to float or whatsoever? Because using >>>>> GL_LUMINANCE is distupring my textures >>>>> >>>> >>>> GL_LUMINANCE8UI should do the trick. You need use a the correct >>>> sampler/data-type in the shader too (usampler and uvec) >>>> >>>> Cheers >>>> Sebatian >>>> >>>> >>>>> 2016-10-21 13:47 GMT+01:00 Glenn Waldron <[email protected] >>>>> <mailto:[email protected]>>: >>>>> >>>>> I mean that GL_LUMINANCE is a valid pixel format, and GL_LUMINANCE8 >>>>> is an internal format. GL_LUMINANCE8 is not a valid pixel format >>>>> and >>>>> will probably give you a invalid enumerant error. >>>>> >>>>> >>>>> >>>>> Glenn Waldron >>>>> >>>>> On Fri, Oct 21, 2016 at 8:03 AM, Bruno Oliveira >>>>> <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> 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 <[email protected] >>>>> <mailto:[email protected]>>: >>>>> >>>>> Bruno, I think you have those reversed. >>>>> >>>>> >>>>> On Oct 21, 2016 6:07 AM, "Bruno Oliveira" >>>>> <[email protected] >>>>> <mailto:[email protected]>> 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 >>>>> <[email protected] >>>>> <mailto:[email protected]>>: >>>>> >>>>> >>>>> >>>>> 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::Textur >>>>> e2DArray::MIN_FILTER, >>>>> osg::Texture2DArray::LINEAR); >>>>> texture->setFilter(osg::Textur >>>>> e2DArray::MAG_FILTER, >>>>> osg::Texture2DArray::LINEAR); >>>>> texture->setWrap(osg::Texture2DArray::WRAP_R, >>>>> osg::Texture2DArray::REPEAT); >>>>> texture->setInternalFormat(*t >>>>> extureFormat()*); >>>>> >>>>> >>>>> // 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 >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.or >>>>> g/listinfo.cgi/osg-users-openscenegraph.org >>>>> <http://lists.openscenegraph.o >>>>> rg/listinfo.cgi/osg-users-openscenegraph.org> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.or >>>>> g/listinfo.cgi/osg-users-openscenegraph.org >>>>> <http://lists.openscenegraph.o >>>>> rg/listinfo.cgi/osg-users-openscenegraph.org> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.or >>>>> g/listinfo.cgi/osg-users-openscenegraph.org >>>>> <http://lists.openscenegraph.o >>>>> rg/listinfo.cgi/osg-users-openscenegraph.org> >>>>> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.or >>>>> g/listinfo.cgi/osg-users-openscenegraph.org >>>>> <http://lists.openscenegraph.o >>>>> rg/listinfo.cgi/osg-users-openscenegraph.org> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens >>>>> cenegraph.org >>>>> <http://lists.openscenegraph.org/listinfo.cgi/osg-users-open >>>>> scenegraph.org> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> <mailto:[email protected]> >>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens >>>>> cenegraph.org >>>>> <http://lists.openscenegraph.org/listinfo.cgi/osg-users-open >>>>> scenegraph.org> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> osg-users mailing list >>>>> [email protected] >>>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens >>>>> cenegraph.org >>>>> >>>>> _______________________________________________ >>>> osg-users mailing list >>>> [email protected] >>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens >>>> cenegraph.org >>>> >>> >>> >>> _______________________________________________ >>> osg-users mailing list >>> [email protected] >>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-opens >>> cenegraph.org >>> >>> >> >> _______________________________________________ >> osg-users mailing list >> [email protected] >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >> >> >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

