Hi there!
I wanted to archive a jitter antialias effect using TileCameraDecorator.. it
works quite fine, except for a little unwanted behaviour I'll describe you in a
bit. This is a little excerpt of my code.. quite self-explanatory I hope.
for (int i=0; i<m_bAntialiasingPasses; i++) {
float dx = JITTER[i].x() / m_pFBO->getPixelWidth();
float dy = JITTER[i].y() / m_pFBO->getPixelHeight();
beginEditCP(m_pTileDecorator);
m_pTileDecorator->setSize(dx, dy, 1+dx, 1+dy);
endEditCP(m_pTileDecorator);
render();
}
Unfortunately I'm getting a stronger effect on the edges of the window than in
the center. After looking at the OSGTileCameraDecorator I think I found the
reason:
TileCameraDecorator::getProjection( [...] ) {
[...]
Real32 left = getLeft(),
right = getRight(),
top = getTop(),
bottom = getBottom();
if(left < 0)
left = -left / width;
if(right < 0)
right = -right / width;
if(top < 0)
top = -top / height;
if(bottom < 0)
bottom = -bottom / height;
// scale the wanted part from the projection matrix
Real32 xs = 1.f / (right - left),
ys = 1.f / (top - bottom);
[...]
}
So if my JITTER[i] is a negative value, what I'm getting with the
TileCameraDecorator is a zoom instead of a simple translation, thus a different
aliasing compared to the one with a positive JITTER[i]. So, here are the
questions :)
- What's that code for? If you don't want negative values, I assume that you
wouldn't like too big values neither.
- How could I achieve the wanted result?
Thanks for your help!
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users