Render the model, recording the texels required.How Texel Shading WorksĪt a high level, the process is as follows: Since we are rasterizing from the camera view, we get the two pieces of information that aren’t normally available in texture space methods – visibility after early depth test, and the screen space derivative for selecting the mipmap level. This is why we chose the term “texel shading”. Instead, we will rasterize in screen space (from the camera view), and instead of shading, we just record the texels we need as shading work. These are the texels from three mipmap levels that are accessed for the given view. If you have an object that spans 4 mipmap levels, for example, you can increase shading cost by up to 64× to hit a particular resolution target for the whole object! The following image shows just a few levels of a single character’s texture access for the given view, (after early depth rejection has been applied), to give you an idea of just how much waste there can be when not selecting the right resolution in texture space shading. That increases with every level you span. If you pick 1024×1024, part of your object will cost 4× as much as needed. So if you need 512×512 to match pixel rate for one part of an object and 1024×1024 for another part, but you can only pick one, which do you pick? If you pick 512×512, part of the object will be under sampled. Each mipmap level costs an additional 4× shading cost. Resolution choice is important because it drives your total shading cost. Also, your resolution choices are limited, as you can only rasterize at one resolution at a time. Rasterizing in texture space means you don’t have visibility information from the camera view, and end up shading texels that aren’t visible. There are two difficulties with that kind of approach: visibility and choosing the right resolution. When most people hear the term “texture space shading” they generally think of rasterizing geometry in texture space. We’ve used these decouplings to find ways to improve performance, but we’ll also discuss some future possibilities in this space. Shading in object space means we have already decoupled the shading rate from pixels, and it’s also easy to decouple in time. In particular, we’ll be looking at texture space shading, which uses the texture parameterization of the model. This blog looks at an object space shading method that works on Direct3D® 11 class hardware. Pixar’s RenderMan®, the most well-known renderer for Computer Graphics, uses the Reyes rendering method, which is an object space shading method. But there is another alternative that has been popular in film for decades: object space shading. Game engines do most of their shading work per-pixel or per-fragment.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |