Unity技术开放日 北京站
前言
unity官方来北京啦,我也是第一次参加这种官方活动,还比较紧张,但是现场气氛相当活泼,讲师大佬们都非常有趣,非常硬核,感觉和看线上直播还是有很大区别,原来官方的讲师大佬如此亲切,就像朋友聊天一样,感觉非常好!这篇博客先来说几个我印象深刻的吧(随着我的学习,也会对这篇博客的内容更新~)
注:本文图片内容主要来源:官方ppt
HDRP打光实践
我的第一个unity游戏是和小伙伴利用unity3d默认渲染管线制作的,后来也尝试着把场景导入过urp管线,也在urp管线里制作过VR场景,urp和默认渲染管线里的灯光参数比较简洁,但到了hdrp高清渲染关系里就有非常多和物理相关的参数了,所以就要考虑能量、色温等因素。
HDRP中文版文档:here
例如:正午的阳光为11到12万Lux
HDRP反射层级:
HDRP 中提供了一个反射层级来为屏幕上的每个像素提供尽量正确的反射信息。在这个反射层级中包含了三种生成反射的方法,HDRP 进行评估的先后次序为:
1.首先评估 Screen Space Reflection (屏幕空间反射,简称 SSR)。
2.如果没有找到合适的反射信息, HDRP 会接着评估 Reflection Probe (反射探针) 。
3.如果还是没有得到合适的反射信息,最后会使用来自天空的反射( Sky reflection )。
学习hdrp灯光可以从如下框架入手
物理打光和艺术打光配合:
hdrp教程:实时光追系列 同济动画Unity美术与技术原理
screen space reflect原理: games202Lec09
低成本水体渲染&黎明之海
低成本水体渲染和的黎明之海的技术分享对我很重要,因为最近想和小伙伴们制作有关海洋环保的主题游戏,所以海面以及海底的渲染是我迫切要学习的。
以前对水体渲染有误区,认为水面和水底是一体的,但其实这是两个完全不同的渲染方式,水面渲染相对难度大,包括利用波函数模拟水体流动,从水上看向水底的折射、反色、焦散等效果,水底一般通过后处理模拟水下模糊场景。
水体模拟解决方案框架:
实时渲染里的水体模拟一般采用波函数模拟动态效果而不采用物理模拟使用的欧拉法或拉格朗日法(因为实在太慢了,伤不起,离线渲染的水和雪的模拟还是让冰雪奇缘类型的电影去用吧)
黎明之海 海洋交互系统:
参考:
Multi-resolution Ocean Rendering in Crest Ocean System
Crest: Novel Ocean Rendering Techniques in an Open Source Framework
对水体模拟的学习,我推荐结合本次技术分享ppt从毛星云大佬的文章开始,有一个全局认识,也可以看放牛的星星大佬总结翻译的catlikecoding流体模拟系列
Unity 底层模型之内存
设计到内存模型的理论确实非常烧脑,不过内存对于正在运行的程序来说非常重要,对内存的优化也是非常复杂的工作
内存是抽象神奇的东西,从物理角度上讲它是一段连续的空间,也就是说在分配内存的时候只看剩余内存大小来分配往往不会获得满意的结果,如果很多小内存片散落在这片内存区域上,即使内存在数值上有很大的剩余也无法再分配一块大的连续内存块了。
所以一般推荐我们先分配大内存,再分配小内存,避免内存碎片的产生
初学者学习内存我推荐一个超级棒的教程:CS50
后记
这次活动大开眼界,除了技术干货还有见证了unity背后强大的生态链和业务链,对于引擎背后工具链的熟悉对于开发者也十分重要。
千里之行,始于足下,各位加油!