The Devil is in the Details: Nuances of Light Mapping

http://www.microsoft.com/downloads/details.aspx?familyid=a757c6cb-0e53-4d4a-9c31-db3c99163b8e&displaylang=en

IlluminateLabs(Beast的那个公司)的lead coder做的一个presentation

覆盖面比较广泛,主要是常用知识教学型的,由于一些不常用的知识点可能会淡忘,刚好是一个回顾是不错的。

 

 

近期几股暗流(light volume, light propagation volume, enlighten), 涌动,大有要取代lightmap的趋势。

lightmap的一些缺陷的确是让人很不舒服。

 

但是lightmap技术比较成熟,从mobile到nextgen都还有不错的表现,也的确带来了不错的效果。

 

零散的记录一些觉得有用的:

  • 需要将sky lighting和sun lighting分开进行考虑,两个光有各自的特点。
  • directional light map格式的选择:
  • valve派,更加直接,虽然tricky,但是cheap,只有少数情况下会看出破绽
  • spherical harmonics派,数学在背后支持,标准的旋转,插值,卷积等操作,tangent space independent,但是太耗费内存了。
  • dominant light axis,应该是早期ue3的做法,内存运算都省,但是效果没那么好,但是玩家看着还是ok的。
  • uvatlas,存储lightmap的时候常用的一个做法,可以将零散的tex集中存储,减少texture setting call,个人觉得有可能因为内存会变得比较散,导致cache效率不是很好,但是相比好处,这点代价也可以忽略了。
  • 计算shadow的时候,不要单纯把lighting intensity做一个缩小(类似*0.2)这种操作,而是在shadow里面就把direct lighting减掉,剩余ambient lighting这种
  • gamma correction比较重要----一直都感觉不太有所谓,但是的确比较重要,看图:
  • The Devil is in the Details: Nuances of Light Mapping_第1张图片
  • gamma correction可以在较暗的区域分布更多的bit,最后做出来的效果也更自然。
  • 所以lightmap encoding要考虑gamma correction和hdr encoding两个方面

唔,还是一堆细节知识了。

 

 

 

 

 

 

 

 

你可能感兴趣的:(c,cache,存储,mobile,sun,encoding)