[GEM-dev] frambuffer does change the scene perspective

cyrille henry cyrille.henry at la-kitchen.fr
Sun May 25 16:09:06 CEST 2008



Jack a écrit :
> 
> Le 25 mai 08 à 14:23, cyrille henry a écrit :
> 
>> hello,
>> when using a framebuffer in a patch, the perspective of the main 
>> windows is change to (-1, 1) in X and Y.
>> So it's no more possible to use custom perspective (sending the 
>> perspec message to gemwin is useless).
>> moreover, the perspective used lead to distorted images when the 
>> gemwin is not square.
>>
>> fixing this is quite easy, but will break all patch using frambuffer 
>> with a not square gem windows.
>> so, i'm wondering if i should commit the fix.
> I prefer when [gemframebuffer] doesn't distort the image when the gemwin 
> is not a square.
> Maybe it is possible to use an option (by default 'distort 1') for old 
> patches and turn to 'distort 0' to get a normal image (without distort 
> when the gemwin is not a square).
> What do you think about this ?
yes, fixing this bug + adding a message to get compatibility with old patch is certainly a good solution.
what do developers think?

cyrille

> ++
> 
> Jack
> 
> 
>>
>> the fix is mainly to replace line 145 of gemframebuffer.cpp  :
>>
>> glFrustum(-1,1,-1,1,1,25);
>>
>> with :
>>
>>   float xDivy = (float)GemMan::m_w / (float)GemMan::m_h;
>>
>>   glFrustum(GemMan::m_perspect[0] * xDivy, GemMan::m_perspect[1] * 
>> xDivy,    // left, right
>>             GemMan::m_perspect[2], GemMan::m_perspect[3],            
>> // bottom, top
>>             GemMan::m_perspect[4], GemMan::m_perspect[5]);            
>> // front, back
>>
>> but it need to add
>> #include "Base/GemMan.h"
>>
>> and to move
>>  static int       m_w;
>>  static int       m_h;
>> from private to public in GemMan.h
>>
>> should i commit this?
>>
>> cyrille
>>
>>
>>
>> _______________________________________________
>> GEM-dev mailing list
>> GEM-dev at iem.at
>> http://lists.puredata.info/listinfo/gem-dev
> 
> 
> 




More information about the GEM-dev mailing list