[GEM-dev] frambuffer and Vertex Texture Fetching

marius schebella marius.schebella at gmail.com
Sun Apr 6 00:25:26 CEST 2008


cyrille,
I am using a variation of your patch to get my vertex morphing working. 
is just need to figure out a way to save 3d objects as rgb images...
marius.

cyrille henry wrote:
> hello,
> 
> the good new is that things still can work as it was.
> just replace rgb32 with rgb.
> the old version does not use the same primitive, so i's possible there 
> is more vertex now. this can explain the 70->130% diference.
> 
> we can investigate, i am not sure your card is able to use this 
> acceleration.
> 
> with a nvidia 7700, this patch use only few %, so the change is really 
> important!
> 
> cyrille
> 
> marius schebella a écrit :
>> hi,
>> when I click on type byte, format rgb32 then I get this printout
>> [gemframebuffer]: type is BYTE, 5121
>> [gemframebuffer]: format is GL_RGB_FLOAT32_ATI, 32992
>> but it starts eating up all my cpu.
>> with the old version I cud run dim 512 512 at ~70%
>> with the new version I am +130%
>> this is on os x 10.5.2 with ati X1600.
>> marius.
>>
>> cyrille henry wrote:
>>> hello,
>>> i'm currently investigating the use of framebuffer to create a 
>>> texture in order to use it as a vertex displacement.
>>> this has already been discuss in this list, but new stuff in 
>>> framebuffer makes me try again.
>>>
>>> i'm specially motived because it's the last things that prevent me 
>>> trying physical modeling in glsl.
>>>
>>>
>>>
>>> having a look at framebuffer, i noticed strange things :
>>> -changing type or format does not init the framebuffer, you have to 
>>> change dim, or rectangle (mode) in order to init it.
>>> (i don't know why)
>>>
>>> -in void gemframebuffer :: typeMess(char* type), should :
>>>
>>>     else if (!strcmp(type, "FLOAT")){
>>>       post("type is GL_FLOAT, %d",m_type);
>>>       m_type = GL_FLOAT;
>>>       return;
>>>
>>> be replaced by :     else if (!strcmp(type, "FLOAT")){
>>>       m_type = GL_FLOAT;
>>>       post("type is GL_FLOAT, %d",m_type);
>>>       return;
>>> ???
>>> (it's also the same in formatMess)
>>>
>>> anyway. here are the good news :
>>> i add (and commit) a RGB32 format corresponding to        
>>> m_internalformat = GL_RGB_FLOAT32_ATI;
>>> #ifdef __APPLE__
>>>        m_format = GL_BGR;
>>> #else        m_format = GL_RGB;
>>> #endif
>>> (i  don't know if apple definition is ok).
>>>
>>> but the internal format GL_RGB_FLOAT32_ATI was mandatory in order to 
>>> have an efficient implementation of vertex texture fetching.
>>>
>>> so here is an example. it still need to be cleaned, but i'd like to 
>>> know if it work on other computer.
>>> (here, it's about 50 time faster than previous example i send to this 
>>> list)
>>>
>>> please update/compile and test!
>>>
>>> cyrille
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> GEM-dev mailing list
>>> GEM-dev at iem.at
>>> http://lists.puredata.info/listinfo/gem-dev
>>
>>
>>
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: vertexmorph.zip
Type: application/zip
Size: 20198 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/gem-dev/attachments/20080405/4675bfea/attachment.zip>


More information about the GEM-dev mailing list