• Physically Based Render in Game 序


      基于物理渲的渲染理论,从SIGGRAPH06被Naty Hoffman等人提出后,近年来也越来越多的被各大游戏公司所采用,几乎已经是次世代游戏的标准特性,也是每个3D游戏工作者所必备的知识,尽管每年SIGGRAPH,GDC上也会有不少优秀的course和talk,但这些资料要么比较学术,要么就是各大游戏公司基于他们现在技术的扩展,国内外专业blog上的总结和介绍文章,也很难做到面面具到。那么如何能的在众多资料中更有效率掌握重点和精粹,用更加易懂的方式传达给相关工作人员,并可以联系到现有引擎,快速投入到实际开发中,我想这也是在我们推广PBR所需要面对的问题,也是这个系列文章出现的目的吧。

      PBR简单来说就是着色模型(shading)和光照模型(lighting)组成的渲染公式,进一步说,会影响到渲染管线设计,不同场景的方案选择,以及美术制作流程,因此,不仅仅是图形程序员,美术相关设计人员也需要有一定的了解,所以,更通俗,更直观易懂成为首要目的,方便没有图形基础的人快速了解重点,同时也有扩展阅读的选择以满足有深度需求的人。
     
      PBR的引入会影响已有的管线,关于如何设计和修改,不同的游戏公司,都提出了自己的改进和优化方案,从美术素材的制作,场景布置,到渲染绘制,后处理输出,了解PBR在各阶段的理论实现方式,对PBR有个更系统和全面了解,可以帮助你在现有团队中推广PBR,所以这里也会总结各家公司的经验和理念。
     
     主流的3D游戏引擎,如UE4,CE3,Unity3D等,他们的PRB实现的状况,如何去使用和优化,特别是在移动平台高速发展的当下,如何在移动端效率的使用PBR,一些游戏开发者来说,可能会更关注这类实践性的经验,我也会结合我现在工作,对这方面做大量介绍。
      
     以上也就是我这系列文章的目标,概括来讲,就是不仅限于理论和公式的堆积,更倾向与实践和细节的串联。
     
    下面是目前计划的章节和大致内容介绍,会随着文章的不断更新,每部分的内容介绍也会更详细
    • PBR基础概念
      
      理解PBR所需要的基本概念,以方便后面去掌握PBR使用各种模型和公式里各项目的解释,除此之外,还有实现PBR的前提条件和组成部分。
         
    • 着色模型和BRDF
      PBR的BRDF的详解,结合Siggraph上的course和各个公司发布的talk,以及blog上的资料,串联他们对BRDF的改进方法,效果和效率上的比较等等。
     
    • 基于物理的光照
      为了达到更好的照明效果,PBR所涉及的光照方案,经典光源,间接环境光,以及像天光,平面光等更为真实的光源原理和如何以BRDF配合使用。
     
    • 材质和美术
      PBR中,各种材质表现所需的理论公式,参数,和美术相关的贴图,材质的工作流程。
     
    • PBR和渲染管线
      PBR如何集成到各种风格的渲染管线结构中,各种管线的限制和优缺点和所遇到的问题等等,以及大量使用PBR的游戏引擎的具体方案选择。
     
    • 线性空间,HDR,toonmap
      这些概念虽然不是PBR,但确实PBR的前提条件,这里会讲解他们的重要性和实现方式,以及在移动平台上优化方案
     
    • Shader Antialiasing
      和PBR没有直接关联,但可以获得更真实的高光效果。
     
    • 具体案例分析
      结合一些游戏的场景,对具体PBR的解决方案做详解。
     
    • UE,CE,U3D等游戏引擎的使用
      PBR在这些引擎中的使用情况,对应代码部分的详解,针对在移动平台上的优化方法。
     
    暂时预定每周发布一个章节(包括这周),如果文章中有什么问题或者有什么建议,也请留言或直接联系我
  • 相关阅读:
    进程间的通信如何实现?
    试解释操作系统原理中的作业、进程、线程、管程各自的定义。
    字符数组和strcpy
    字符串转化成整数
    整数字符串转化
    海量数据/日志检索问题
    哈夫曼编码问题
    Trie树,又称单词查找树、字典
    初识面向对象
    序列化 json pickle shelve configparser
  • 原文地址:https://www.cnblogs.com/TracePlus/p/4045548.html
走看看 - 开发者的网上家园