General Category > Anim8or v1.0 Discussion Forum

texture tiling edge issue

<< < (2/3) > >>

Steve:
As for the visible edges, Anim8or's textures don't support border pixels, which would be one way to fix your problem.

Another way to solve your UHD zoom in is to switch from a 4Kx4K texture with the full imaged scalled down, to a 4Kx4K texture of a smaller region as you zoom in. Depending on what camera movement you use it could be anywhere from easy to difficult to match the view however.

thecolclough:
thanks for the feedback, everyone.  i did previously consider the method Alec and Steve mentioned, but i didn't think it'd be effective when doing a UHD render, as there's so little leeway between the 4096 texture limit and the 3840 output width and i'm trying to do a pretty big zoom.

i went for a brute-force solution in the end - since most of my maps are block-colour areas, i was able to set up some little strips of the right colours that masked most of the tile borders, and then did some jiggery-pokery in post-production to recombine everything into a mostly-seamless video.  there are tiny fragments of the seams still visible along the landmass edges, if you know where to look, but they're unobtrusive enough.

AlecJames:
I didn't realise the significance of the 4096 texture limit and the 3840 UHD output  :-[

@Steve is 4096x4096 a limitation within some opengl api or could the 4096 be increased? 

I had a play with this and something else that I didn't understand is that when I'm defining a material, in the texture selction diaglog (anim8or_manual_1.01.1318_mark.pdf page 121) there is "texture map".  I expected this to match the size of the image in pixels when I loaded a new texture but sometimes its not.  I had an image 988x4096, the dialog shows the texture map as 512x4096, and changes it back to 512x4096 when I change it.  I place the material on an object 9.88x40.96 and it fills it exactly so I'm not quite sure what the texture map does?  Does this field change the behaviour of the texture / material?

Steve:
Textures are images and are scaled to match the size of their target. This is done by assigning texture "coordinates" to the vertices in an object. They range from (0,0) to (1,1) across the image, and repeat for larger or smaller coordinates. So you can show just a portion of the image or have it repeat horizontally and/or vertically on an object by changing the coordinates.

All OpenGL implementations have limitations on texture sizes, normally set by the graphics chip it uses. Anim8or limits the size to the OpenGL implementation's limit or 4096 whichever is smaller. This is because many users have tried to load dozens of max sized textures which causes Anim8or and/or the graphics card to run out of memory and crash, especially when rendering an image. Limiting the size to 4096 (which you very rarely need anything that big anyway) avoids most of these crashes.

selden:
Some rendering engines (e.g. Celestia's) handle arbitrarily large images by cutting them into pieces which fit into the card's texture buffer. I dunno how they persuade the graphics hardware to merge them into contiguous surface textures, though.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version