Hi,

Sorry, it wasn't a bug in OpenSG. I tried so many things that I didn't realize I
was using a sampler2D in my glsl shader instead of a sampler3D... And so OpenSG
was forced to use the last 2D texture, I presume, which led to this behaviour
(the one I described 2 mails ago).
Now, the problem is that my shader produces a black texture, whereas I filled my
3D texture with random colors. I know my texture coordinates are alright,
because when I use the fragment shader instruction : gl_FragColor =
vec4(texCoord.xyz,1.0); I can see the colors of the pixels changing from green
to red.
I use the fragment shader instruction :
gl_FragColor = vec4(texture3D(TextureEssai,texCoord.xyz).rgb,1.0);
in order to present the color of my 3D texture on the screen. And that leads to
pure black.
I've already talked about what I'm doing to create all the chunks, etc. And
neither OpenGL nor OpenSG produces an error when my application compiles and
links the SHLChunk, which means that the constant parameters are OK, I think.
When I generate the texture, I use the code :
beginEditCP(img, Image::PixelFieldMask);
{
        UInt8 *data = img->getData();
        UIntRGB valeurPixel;
        // ... valeurPixel calculations ...
        memcpy( &(data[ic*3]), &valeurPixel, 3*sizeof(UInt8) );
}
endEditCP(img, Image::PixelFieldMask);
where UIntRGB is a small struct to stock the UInt8 of the 3 colors. I also
printed the values data[ic*3], data[ic*3+1] and data[ic*3+2] after the memcpy
and they are alright. Then I call imageContentChanged() on the texture chunks
which use this image.
So what's wrong in my application ? Any idea ?
And that would be really cool if someone answered the questions I asked in my
last mail, about the TextureChunk stuff, because it is not quite clear to me.
Thank you very much.

Jo


Selon Jonathan Bard <[EMAIL PROTECTED]>:

> Hi,
>
> Thanks for the hint with the textureChunk finding, it works great. I have a
> question though : I set my texture on a slot by calling
> ChunkMaterial::addChunk, which takes the texture chunk ptr as first
> parameter.
> When I do that, am I sure that if it's the first time I call addChunk with a
> TextureChunk on this materialchunk, the texturechunk will be assigned the
> slot
> number 0? If I call a second time addChunk on the same materialChunk with
> another texturechunk, will the slot number be 1? etc.
> What about the second parameter of the addChunk function : is it a good way
> to
> provide our own texture slot number? Like that, I would call
> addChunk(texChunk,
> slotNumber), and I will be sure that this texture chunk will be assigned this
> slotNumber, instead of counting the times we've called addChunk on this
> material before. Does it work like that?
>
> Anyway, I tried with the debug libs and it doesn't seem I have any OpenGL
> error.
> Still, I'm not sure about what you call "texture definition" : I generate
> myself the data of the texture, by feeding the data pointer of the image
> pointer (which I get by calling getData() on the Image) with UChar8 triplets.
> And I use the format "OSG_RGB_PF" :
> img->set( Image::OSG_RGB_PF, _iBar, _jBar, _kBar, 1, 1, 0);
> Is it related to what you call texture definitions?
> Just to know what to look for, because my log file is awfully enormous, what
> kind of messages would I get with such an OpenGL?
>
> Thanks for help
>
> Jonathan
>
> Selon Dirk Reiners <[EMAIL PROTECTED]>:
>
> >
> >     Hi Jonathan,
> >
> > just a quick precheck answer. Your code seems to be ok, just want to
> > confirm one detail: you're using volume textures, right?
> >
> > I can think of two possible reasons for your behavior. Does the texture
> > definition work? I.e. when running with debug libs, do you get no
> > messages on the console about OpenGL errors? The other would be a bug in
> > OpenSG, we can never totally rule that out, but I don't expect it.
> >
> > BTW, you can simplify your Chunk search code, the ChunkMaterial has
> > something very similar built in:
> >
> > StateChunkPtr stateChunk = pM->find(TextureChunk::getClassType(), 0);
> >
> > to find the TextureChunk for slot 0.
> >
> > Yours
> >
> >     Dirk
> >
> > --
> > Dirk Reiners <[EMAIL PROTECTED]>
> >
> >
> >
> > -------------------------------------------------------
> > SF email is sponsored by - The IT Product Guide
> > Read honest & candid reviews on hundreds of IT Products from real users.
> > Discover which products truly live up to the hype. Start reading now.
> > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> > _______________________________________________
> > Opensg-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/opensg-users
> >
>
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Opensg-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensg-users
>




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to