Hi ,

Sorry, I have not followed all the posts in this thread. I am not sure what is the essence of your problem: Are you saying that 24 bit GL_RGB image written by OSG and later read by OSG looks differently ? Or there is an issue with reading 24 bit color images written by 3rd party tools ?
   What about 32 bit images ? Are they OK ?

About 3rd party tools, I've tested XNView, The Compressonator (AMD) and DeepExploration, and all seem to ignore the R, G, B masks... Or there is a mistake somewhere in OSG DDS writing that make those masks unreadable... or else I made a mistake somewhere!

I always recommend peeking into heart of darkness ;-) and trying MS DXTextureTool (installed with DirectX SDK)

I just checked, the only 24 bit format that OSG DDS Writer currently writes is GL_RGB. (GL_BGR is not written but could be added quickly is guess). But its capable to read both GL_RGB and GL_BGR.

Can you post such 24 bit RGB DDS image that looks differently in OSG and in 3rd party tools ?

Wojtek

----- Original Message ----- From: "Sukender" <[email protected]>
To: "OpenSceneGraph Users" <[email protected]>
Sent: Wednesday, December 30, 2009 3:09 PM
Subject: Re: [osg-users] DDS uncompressed RGB(A) / BGR(A)


Hi Wojciech,


I'm a bit lost now... What's next? Should we change something according to endianness (if little endian, swap R&B when reading and writing)?
If you got any idea there... ;)

Cheers,

Sukender
PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/

----- "Wojciech Lewandowski" <[email protected]> a écrit :

Hi,

I had some experience with D3D in the past maybe could help clear a
picture
a little.

Basic 32 bit color format using in Directx is named in Direct 3D:
D3DFMT_A8R8G8B8. Components are enumerated from  most significant byte
to
least significant byte. Such pixel value is usually set by using
single
DWORD. for example DWORD color = 0xAA112233 coresponds to following
bytes
alpha = 0xAA red = 0x11 green = 0x22 blue = 0x33. As I said earlier,
this is
an order byte significance, not an order of bytes in memory. When you
write
this dword to memory they will land in following order on Intel (big
endian
CPUs)  [Blue][Red][Green][Alpha]. So in OpenGL notation it would be
GL_BGRA.
Hope this explains a bit. Hence basic Directx ARGB format should be
read as
OpenGL BGRA. To switch to more intuitive OpenGL RGBA you apparently
have to
swap R and B bytes.

However, DDS format is capable of storing all variants of 32 bit color
layouts. RGBA, BGRA, ABGR, & ARGB. As far as I remember only color
component
bitmasks should be changed accordingly to select proper variant.  If
your
tools do not read them correctly this is most probably an issue with
those
tools. I am sure OSG DDS ReaderWiriter is not saint here as well.

Cheers,
Wojtek




----- Original Message -----
From: "Sukender" <[email protected]>
To: "OpenSceneGraph Users" <[email protected]>
Sent: Wednesday, December 30, 2009 1:22 PM
Subject: Re: [osg-users] DDS uncompressed RGB(A) / BGR(A)


> Hi all,
>
> Is there an endianess problem with DDS format? I'm using a Core2Duo
here
> and I don't know under which kind of machine the DDS has been
tested...
>
> A little explanation: After a bit of investigation (=cleaning stupid
> copy-paste), I found that the only "true" bug I had was "Changing R,
G or
> B writer's masks doesn't seem to affect reading in 3rd-party
readers". Has
> anybody encountered this before?
> Writing DDS: It seems the DDS must be BGR in order to make 3rd-party
> readers work correctly (by inverting R and B channels).
> Reading DDS: It seems DDS generated (from a JPG) by 3rd party tools
are
> marked RGB but are BGR...
>
> Please help and share your experience!
>
> Sukender
> PVLE - Lightweight cross-platform game engine -
> http://pvle.sourceforge.net/
>
> ----- "Sukender" <[email protected]> a écrit :
>
>> Hi Robert and all,
>>
>> I'm lost:
>> - Changing R, G or B writer's masks doesn't seem to affect reading
>> (either the plugin or 3rd-party readers, except when masks are
>> completely nonsense)
>> - Copying the image (DEEP_COPY) and writing the copy instead of the
>> oringinal result in a vertical flip of the image in the file!
>> - Manually inverting R & B channels in a copy of the image doesn't
do
>> anything...
>> I must have a very stupid mistake somewhere but I can't fugure out
>> where...
>>
>> Any idea?
>>
>> Sukender
>> PVLE - Lightweight cross-platform game engine -
>> http://pvle.sourceforge.net/
>>
>> ----- "Robert Osfield" <[email protected]> a écrit :
>>
>> > Hi Sukender,
>> >
>> > I'm not overly familiar with the dds plugin, but what you
describe
>> > sounds like a bug in writer in our dds plugin.
>> >
>> > Robert.
>> >
>> > On Fri, Dec 18, 2009 at 5:15 PM, Sukender <[email protected]>
wrote:
>> > > Hi all,
>> > >
>> > > It was discussed a long time ago but I dit not find an answer.
>> > Saving to DDS an uncompressed RGB image and then loading from the
>> file
>> > works: the loaded image is the same as the original. However, the
>> file
>> > is BGR (R and B inverted). I tried three 3rd-party tools (image
>> > viewer/converters) and all display the same.
>> > > Do you think this is a bug in DDS readerwriter? Anyone has a
clue
>> > about it?
>> > > Thanks a lot.
>> > >
>> > > Sukender
>> > > PVLE - Lightweight cross-platform game engine -
>> > http://pvle.sourceforge.net/
>> > > _______________________________________________
>> > > 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
>> _______________________________________________
>> 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
>

_______________________________________________
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


_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to