I have a problem with an smartphone (android so far) app I am programming in unity3d.
I got the following set up:
I have a sphere on which, so far, I have a texture of the world. It's resolution is already set to the maximum but when I "zoom in" on it it just looks disgusting. I'd like to reload texture tiles like in Google maps to have a higher resolution without having a too big impact on the memory. Is that approach a good one at all? And if so: how do I do that?
Haven't found the right things so far or I just got them wrong.
EDIT: As some people probably get me wrong I try it again with some more details.
What I am trying to set up is the Earth as a sphere with a map. That map is okay as long as you dont zoom in too far, which is obvious because of the textures finit resolution. Now, to still have good graphic quality, when being zoomed in that far that one could see streets in a city I want to load additional "satelite pictures" like Google Maps does it (you know: you zoom in and Google Maps always reloads the images in that specific area to still provide a good graphic quality). How do I achieve that specific behaviour? Providing all the tiles i need is no problem, I got a Vector Graphic from which I could export all the needed tiles, but i don't know how to reload those tiles when zooming in at that specific area (to reduce memory consumption, drawcalls, etc).
Any help is really appreciated as I am a beginner in programming with unity. Thank you very much in advance!
Dustin
Are you actually zooming in or moving the camera physically closer? Unity has some internal filters that make textures easier to load at a longer distance. When zooming, the camera isnt actually moving closer meaning the more detailed version of it will not load correctly.
Also check your Max Texture Size setting for the texture you are using. Maybe it is turned down too low. Try turning it up to a higher resolution.
If it still looks blurry up close with Max Texture Size turned higher, your texture may not be high enough resolution to begin with. Make it a high enough resolution that it looks good up close. Then begin lowering the Max Texture Size resolution until up close it is "good enough".
Next, typically, it will start looking blurry in the distance or have distinct linear transitions from looking good to blurry. You can fix this by turning up the Ansio Level. Use this with caution because it increases the rendering load. Only use what you need, especially for mobile games.
Related
I am trying to make some real looking roads in my game,but the problem is ,when i am using roads so they are little bit blurry at distance and look like a real one.Can any one please guide me to solve this.I have uploaded my pic here
Is there possible solution for this?
Yes, it is a common problem, for textures' rendering at a certain distance/angle. You should enhance the aniso level, in order to apply an anisotropic filtering on the blurry texture (you can also change the aniso level from the texture's component, as in the picture below).
If the road is created via a Terrain component (which I doubt, since you already have a sandy terrain at the bottom), you should change the basemap distance.
Check also Quality settings, it might have Anisotropic textures disabled.
I'm working on a Unity 2D project and making the levels at the moment.
For some reason even really high resolutions (higher than 1920x1080) become really pixelated. It's like the camera is zoomed in too much. My player is rendered at a scale of 0.2x0.2.
I've tried changing the z-depth of camera back but everything still becomes very pixelated. Really frustrating because edges of tiles on the screen become really pixelated.
Anyone had any issue or can think of anything that will help solve this?
here's a picture of it in the editor mode. Based on the tile grid you can see everything's really tiny and it's awfully zoomed in. Not sure how to fix this.
In game:
Noticed how pixelated it is. Thanks
On your first screenshot the sprites are also pixelated.
Every time you see bad image quality - checkout import settings. Try to increase max size. Also try different format. You should find the suitable values for yourself.
I find that when I set the export settings to Android, everything gets pixelated, even skies (I suppose it does that in order to adapt to the device's lower capacity). Turning export settings back to web player for example, solves this issue.
I have a 3D globe I'm rendering using a single 2048x2048 texture (supposedly the max resolution for iphone/ipad). This limits the amount of zoom possible where at some point the 2048x2048 doesn't give me enough resolution. Can someone point me to some LOD techniques that may be used to achieve better resolution on zoom? Thanks!
You might want to take a look at a technique called "Virtual Texturing". It is used in video games such as Rage developed by id Software to simulate very large textures.
Googling these terms should give you plenty of results such as this one: http://www.silverspaceship.com/src/svt/
Hope this helps.
I have been having a bit of trouble with this issue with a while and have decided to ask for help!
I have a textured 1024 x 1024 area in my iphone application. I am texturing it using an image that i converted to .pvr4 format using Apples texturetool.
Now the user has the option of zooming in on this textured object....
The issue is that the quality of the image is not good enough when it is at the highest zoom level.
How can i improve this?
Should i be looking at mip mapping?
Any pointers in the right direction would be greatly appreciated.
Thanks
Tom
If you zoom in enough on any texture, you won't see much detail.
Here are your options:
You can change the magnification filtering mode so that instead of being blocky (nearest filtering), it's blurry (linear filtering). (Or vice-versa.)
Don't use PVR texture compression. This will make your texture more detailed. (But at the usual cost: larger size, slower rendering.)
When zooming in, switch to a more detailed texture for that specific area.
The last option is the most work, but will likely give the best results. (But try the other two, they're easy.)
Also, mip-mapping likely won't help your situation. In general, enabling mip-mapping can make textured objects far away from the camera look better. It usually doesn't have any effect when the camera is close to a textured object.
PVR4-compression is rather destructive. Simply choose another format if texture quality is crucial.
I have a technical question for the experts in here:
I am developing an OpenGL application for iPhone using openGL 1.x .
When i render a big item on the device it become obviously slower and that's seem quite normal to me.
But i would have expected an increase of framerate when the object is highly zoomed in as the majority of the vertexes are outside the viewport's bounds.
I also try with glEnable(GL_SCISSOR_TEST)/glScissor(0,0,320,480) but the result is always the same?
This is really driving me crazy!
Why the not shown triangles are always computed(or why the speed remain the same while drawing a smaller portion of the object)?
There is a way to avoid this and subsequently increase the framerate?
Thank you in advance.
Greetings.
Peppe.
The triangles have to be transformed into screen space (vertex shader), before the GPU can determine if they are visible. Use view frustum culling to test the visibility of chunks of geometry on the CPU.