A System for Rapid, Automatic Shader Level-of-Detail
2015-11-10 15:09
549 查看
A System for Rapid, Automatic Shader Level-of-Detail
Appears in SIGGRAPH Asia 2015
Yong He (Carnegie Mellon University)
Tim Foley (NVIDIA Corporation)
Natalya Tatarchuk (Bungie)
Kayvon Fatahalian (Carnegie Mellon University)
Abstract
Level-of-detail (LOD) rendering is a key optimization used by modern video game engines to achieve high-quality rendering with fast performance. These LOD systems require simplified shaders, but generating simplified shaders remains largely a manual optimization
task for game developers. Prior efforts to automate this process have taken hours to generate simplified shader candidates, making them impractical for use in modern shader authoring workflows for complex scenes. We present an end-to-end system for automatically
generating a LOD policy for an input shader. The system operates on shaders used in both forward and deferred rendering pipelines, requires no additional semantic information beyond input shader source code, and in only seconds to minutes generates LOD policies
(consisting of simplified shader, the desired LOD distance set, and transition generation) with performance and quality characteristics comparable to custom hand-authored solutions. Our design contributes new shader simplification transforms such as approximate
common subexpression elimination and movement of GPU logic to parameter bind-time processing on the CPU, and it uses a greedy search algorithm that employs extensive caching and upfront collection of input shader statistics to rapidly identify simplified shaders
with desirable performance-quality trade-offs.
Video
Links
Appears in SIGGRAPH Asia 2015
Yong He (Carnegie Mellon University)
Tim Foley (NVIDIA Corporation)
Natalya Tatarchuk (Bungie)
Kayvon Fatahalian (Carnegie Mellon University)
Abstract
Level-of-detail (LOD) rendering is a key optimization used by modern video game engines to achieve high-quality rendering with fast performance. These LOD systems require simplified shaders, but generating simplified shaders remains largely a manual optimization
task for game developers. Prior efforts to automate this process have taken hours to generate simplified shader candidates, making them impractical for use in modern shader authoring workflows for complex scenes. We present an end-to-end system for automatically
generating a LOD policy for an input shader. The system operates on shaders used in both forward and deferred rendering pipelines, requires no additional semantic information beyond input shader source code, and in only seconds to minutes generates LOD policies
(consisting of simplified shader, the desired LOD distance set, and transition generation) with performance and quality characteristics comparable to custom hand-authored solutions. Our design contributes new shader simplification transforms such as approximate
common subexpression elimination and movement of GPU logic to parameter bind-time processing on the CPU, and it uses a greedy search algorithm that employs extensive caching and upfront collection of input shader statistics to rapidly identify simplified shaders
with desirable performance-quality trade-offs.
Video
Links
Paper (PDF) |
相关文章推荐
- 着色器的细节层次技术 Shader Level of Detail
- 开源IDS系列--snorby 2.6.2 undefined method `run_daily_report' for Event:Class (NoMethodError)
- 关于 音频播放器 MediaRecorder(10402): start failed: -22的问题
- RAID 5
- LightOJ 1038 - Race to 1 Again(dp)
- 【HDU】2966 In case of failure【KD树】
- remount of system failed: Permission denied
- AIX5.3以后的版本可以动态缩小文件系统的空间
- Batch Processing Details
- AIX系统设置tffp server
- naive-bayesian-朴素贝叶斯
- 在ubuntu上编译toolchain时出错./stdio.h:477: error: 'gets' undeclared here (not in a function)
- 人工智能
- RAID详解[RAID0/RAID1/RAID10/RAID5]
- 有关custom container of view controllers
- ELK错误1_Kafka->Logstash->Elasticsearch过程,Elasticsearch报grokparsefailure错误
- svn 异常 failed–previous interrupted
- Android资源文件res的使用详解(strings,layout,drawable,arrays等)from http://www.jcodecraeer.com/a/anzhuokaifa/an
- usaco.section1.3.Barn Repair
- Last Daily Scrum (2015/11/9)