Geometry clipmap limits
I like geometry clipmap very much, and even translated the famous paper of hoppe. Obviously, this is one of the classic examples of more and more graphic computing transfers from CPU to GPU. Unfortunately, there has never been a chance to implement it until some time ago, we had to write a terrain system and finally had a chance to try it. Before completing the terrain, everything was very good. Unfortunately, when texture was realized, it encountered a very big problem. It once again confirmed the old saying: No practice, I never know what the problem will be.
After careful reading, we will find that all articles on clipmap only discuss how to calculate texture coordinates, but not how to "Paste" textures. If you only consider program textures, you are lucky not to have any problems. However, if you need to use texture spalette (the most common scenario in the game), boom ~~, The problem occurs. For the traditional chunk terrain, each terrain usually has its own texture spalette, and the related textures T1, T2, T3, boring rendering or slice processing, the entire chunk is used as the unit. For Geo clipmap, without the concept of chunk, each clipmap tile may contain data belonging to multiple chunks. Which chunk spalette should be used when rendering this tile? One solution is to dynamically generate spalette for each tile when updating clipmap data, but this does not solve the problem. Suppose chunk 1 uses the texture T1, T2, T3, chunk2 uses the texture T2, T4, and T5. What texture should be used by the current tile? Unless it is specified that all tile can only use a limited number of textures (obviously 8 for DX9 graphics cards), this will become a very difficult problem to solve. Multipass may solve this problem, but this completely violates the original intention of using clipmap-an efficient and concise solution-which may be less efficient than the traditional method. Texture array is also a potential feasible solution. Unfortunately, dx10 is required.
Unfortunately, this is a blog I have no solutions for now. We can see that some people have encountered this problem in gamedev and there is no feasible solution. The results are very depressing. The code written in the past few days is almost obsolete and you have to go back to the traditional Chunk method: (if you are considering implementing GEO clipmap, be careful when you encounter the same problem, if you accidentally come up with a solution, don't forget to tell me :)
PS: blog is about to be migrated. Does anyone know what tools can be automatically moved to cnblog?