dock martens Masters Thesis Research

dr marten dealer boots Masters Thesis Research

3D models representing cities contain massive amounts of geometry and textures. City models can be acquired using aerial imagery and ground laser scans or generated procedurally [Mueller06] . a procedurally generated, high detail model of Pompeii has about 1.4 billion polygons.Brute force rendering of city models cannot achieve interactive frame rates even on today’s fastest GPUs. Furthermore, entire models are unlikely to fit into system memory.For my masters thesis, I plan to explore real time rendering of massive city models, including the following techniques.Polygonal simplification [Luebke01] and hierarchical levels of detail (HLOD) generation.Rendering using HLODs [Erikson01] View frustum cullingRendering with occlusion culling [Cohen03] There may be room for innovation by introducing novel combinations of HLOD and occlusion culling, which [Erikson01] sites as future work. [Mueller06] states that LOD techniques for massive city model need to be developed to support real time rendering.Furthermore, I hope to apply distributed systems to HLOD generation, which is the aim of my CIS 505 project. Dr. Boon Thau Loo is advising me on the distributed systems aspects.My thesis adviser is Dr. Norman Badler. This is a good article that provides an introduction to hardware occlusion queries and a strategy to avoid CPU stalls. Here is the basic algorithm:Check occlusion query from previous frame.On newer hardware (well, probably all of today’s hardware), rendering with just the depth test is a faster then writing color/depth/etc.If a bounding volume intersects the near plane, it’s back faces need to be rendered or the occlusion query should be skipped. In summary, they present a GPU algorithm that takes advantage of the 100 1000s of threads available on a GPU compared to the previous parallel CPU algorithms that only have a few cores available so memory layout becomes important. Their GPU algorithm is as fast as the fastest CPU algorithm. Tree nodes are built in a breath first order, every node at the same tree level spawns a new thread. CPU algorithms have to go depth first for nodes near bottom or too many threads will be created. In the GPU algorithm, large, upper level nodes are built by parallelizing over primitives instead of nodes. They also present a scheme for fast evaluation of node split costs. I have a few ideas from this paper.Since the CPU doesn’t do much, except for some coordination during the GPU algorithm, can we come up with a CPU GPU hybrid algorithm that keeps both busy? Perhaps the CPU is better at the top levels then the GPU. Maybe modify Experiences with Streaming Construction of SAH KD Trees to use the GPU for lower level nodes instead of switching to depth first.My current HLOD code uses uniform partition, as suggested in [Erikson01] . Perhaps we can do the partitioning kd tree style. Maybe do the simplification on the CPU while the GPU does the partitioning?I also read the first half of a great paper on using occlusion queries with HLOD: Optimized HLOD Refinement Driven by Hardware Occlusion Queries. In summary, HLOD refinement (moving from parent to children) is based on both the screen space error (SSE) and the predicted result of hardware occlusion queries. The HOQ is predicted to avoid CPU stalls and GPU starvation. The HOQ is modulated with the SSE so a higher SEE can be tolerated if the node takes up less number of pixels. A linear scale can lead to artifacts so a sigmoid bias function is suggested (can’t this just be a cubic Bezier curve?). They compute relative visibility = unoccluded pixels / pixels object projects to (Idea: benefits from tight bounding volume!). When they visit a node, they either stop (render), refine (issue query, visit children), or delay (issue query).I’d like to extend this work if possible. Compression is done either loss less or lossy. The vertices themselves can be compressed as well as the connectivity (indices). The algorithms are orthogonal to each other. From a quick google search and browsing the CUDA website, it doesn’t look like much work has been done on mesh compression using CUDA, although I’ve seen vertex decompression in vertex shaders before. I thought about a CUDA implementation of the EdgeBreaker algorithm but from what I can tell, it will not map to the GPU well. Here is an interesting statement from that paper that I didn’t know:
dock martens Masters Thesis Research