   Optimal display of big  floating point texture
  Hi all,I start with openGl and shader, any help is very useful for meHere is my problem:I'm trying to write software to display a big floating point textures (RGB image 32 float). I am using :glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGB32_NV, w1, h1, 0,GL_RGB, GL_FLOAT, tableau);It work correctly but the PROBLEMEM, that when the texture is greater than 4096*4096 (data in stocked in the “tableau”), I obtain segmentation fault, I think it’s normal because I’m using nvdia 5200 card (this is the limit) …Does any body know this problem? And have a good idea to view big texture (for example 16000*16000 ) ? My question is :1)how i can with shader tile my big image into multiple textures? if we now some code example, it is very cool ...2)i hope for optimal method with maximum of speed...I now that it is possible to use Memory Mapping (CPU) but i'm not sure if it is possible in the case of shader+OpenGl(GPU)?Thanks a lot.   
  The texture size limit is 4096*4096 as far as I knowTo patch your texture in several small ones you need to copy the texture patches into smaller bufferse.g.:you have a bufferfloat[16000][16000]you need to transform it into a float[4096][4096] so you need to 16 textures to upload the 16 patches of size 4096*40964096*4096*sizeof(float32) == 67108864 bytes that are 64 mbSo when you load in a 16000*16000 sized image into one big buffer you need to use memory mapping since the maximum segmentsize you can allocate will most likely cause an exceptionunder linux the standard size of segments is 256 mb, just that you keep this in mind.   ;  thank you very much for this help!Can you tell me please how i can use memory mapping to manage my large texture ?If you now a code example ?cheersrojbi   ;  A 16000x16000 floating point texture in memory ? No way. That's around 3 GB of data.. you'll need to find a way to stream that data in to system memory, and then upload a smaller part of it as a texture into the graphics card. All this data won't fit in the gpu memory anyway.Quote:4096*4096*sizeof(float32) == 67108864 bytes that are 64 mbHe's using GL_RGB, so there are 3 components per pixel. You should multiply all those memory costs by 3.Y.;  yes i agree, but my question if someone now how to stream that data in to system memory ? any idea?thanksrojbi;  under linux you use mmapunder windows there a function called CreateFileMapping read it up in the MSDNhowever you still need to create small chunks in order to submit the texture patches to the graphics card, since memory mapping is only possible in system memory.   ;thanks,if i understand : i can not use memory mapping directly to manage the card memory ?   ;  If I understand this correctly, what you need to do is stream in the data into a buffer in your code and that buffer could be [4096x4096*3] and when you are done loading that data use it and then upload the next chunk of [4096*4096*3] and repeat till you are done with the 3GB of memory OUCH... Be curious to see how long that will take just the harddrive accessing time alone can't see how this will be possible for Realtime rendering... Unless you aren't going to access all 3GB at once...   ;Quote:Original post by rojbithanks,if i understand : i can not use memory mapping directly to manage the card memory ?Not that I know... and the VC's VRAM is limited to currently 512MB and more likely 128MB is common today. So you will have to upload your data in chunks to the VC and would be wise to somehow determine how much the VC has to use based on the users system so you can keep the data off system RAM due to you overfilled the VC's RAM total.   ;  GL_SGIX_clipmap openGl extention(used by Quaque to disply very large texture) is not efficient in this case ?This extention is supported by nvidia 5200 card ? 