转载自 VR设计云课堂 《Unity Shader入门精要》随书彩色插图(下)
《Unity Shader入门精要》随书彩色插图(下)
2017.06.15 12:07* 字数 102 阅读 509评论 0喜欢 3
第15章 使用噪声
burn.png-429.1kB
图15.1 箱子的消融效果
burn_noise.png-84.8kB
图15.2 消融效果使用的噪声纹理
water.png-722.5kB
图15.3 包含菲涅耳反射的水面波动效果。在左图中,视角方向和水面法线的夹角越大,反射效果越强。在右图中,视角方向和水面法线的夹角越大,折射效果越强
cubemap.png-128.3kB
图15.4 本例使用的立方体纹理
need-to-insert-img
water_noise.png-202kB
图15.5 水波效果使用的噪声纹理。左图:噪声纹理的灰度图。右图:由左图生成的法线纹理
need-to-insert-img
fog.png-493.9kB
图15.6 左图:均匀雾效。右图:使用噪声纹理后的非均匀雾效
need-to-insert-img
fog_noise.jpg-13kB
图15.7 本节使用的噪声纹理
第16章 Unity中的渲染优化技术
need-to-insert-img
render_static_window.png-156.1kB
图16.1 Unity 5的渲染统计窗口
need-to-insert-img
profiler.png-122.5kB
图16.2 使用Unity的性能分析器中的渲染区域来查看更多关于渲染的统计信息
need-to-insert-img
frame_debugger.png-84.3kB
图16.3 使用帧调试器来查看单独的draw call的绘制结果
need-to-insert-img
dynamic_batching0.png-138.9kB
图16.4 动态批处理
need-to-insert-img
dynamic_batching1.png-138.9kB
图16.5 多光源对动态批处理的影响结果
need-to-insert-img
static_batching0.png-112.9kB
图16.6 静态批处理前的渲染统计数据
need-to-insert-img
mark_static.png-22.3kB
图16.7 把物体标志为Static
need-to-insert-img
static_batching1.png-112.3kB
图16.8 静态批处理
need-to-insert-img
combined_mesh.png-152.1kB
图16.9 静态批处理中Unity会合并所有被标识为“Static”的物体
need-to-insert-img
vbo.png-92kB
图16.10 静态批处理会占用更多的内存。左图:静态批处理前的渲染统计数据。右图:静态批处理后的渲染统计数据
need-to-insert-img
static_batching2.png-113.6kB
图16.11 处理其他逐像素光的Pass不会被静态批处理
advance_texture.png-96.6kB
图16.12 Unity的高级纹理设置面板
第17章 Surface Shader探秘
bumped_diffuse.png-164.7kB
图17.1 表面着色器的例子。左图:在一个平行光下的效果。右图:添加了一个点光源(蓝色)和一个聚光灯(紫色)后的效果
generated_code.png-28.9kB
图17.2 查看表面着色器生成的代码
pipeline.png-171.9kB
图17.3 表面着色器的渲染计算流水线。黄色:可以自定义的函数。灰色:Unity自动生成的计算步骤
normal_extrusion.png-127.3kB
图17.4 沿顶点法线对模型进行膨胀。左图:膨胀前。右图:膨胀后
第18章 基于物理的渲染
reflect_refract.png-26.9kB
图18.1 在理想的边界处,折射率的突变会把光线分成两个方向
rought_smooth.png-64.6kB
图18.2 左图:光滑表面的微平面的法线变化较小,反射光线的方向变化也更小。右图:粗糙表面的微平面的法线变化较大,反射光线的方向变化也更大
subsurface_scattered_light.png-36.3kB
图18.3 微表面对光的折射。这些被折射的光中一部分被吸收,一部分又被散射到外部
surface.png-42.5kB
图18.4 次表面散射。左图:次表面散射的光线会从不同于入射点的位置射出。如果这些距离值小于需要被着色的像素大小,那么渲染就可以完全在局部完成(右图)。否则,就需要使用次表面散射渲染技术
brdf.png-47.1kB
图18.5 BRDF描述的两种现象。高光反射部分用于描述反射,漫反射部分用于描述次表面散射
m_h.png-90.5kB
图18.6 (a)那些m=h的微面元会恰好把入射光从I反射到v上,只有这部分微面元才可以添加到BRDF的计算中。(b)一部分满足(a)的微面元会在I方向上被其他微面元遮挡住,它们不会接受到光照,因此会形成阴影。(c)还有一部分满足(a)的微面元会在反射方向v上被其他微面元挡住,因此,这部分反射光也不会被看到
standard_shader.png-276.6kB
图18.7 Standard Shader中前向渲染路径使用的Pass(简化版本的PBS使用了VertexOutputBaseSimple等结构体来代替相应的结构体)
calibration_charts.png-387.8kB
图18.8 Unity提供的校准表格。左图:金属工作流使用的校准表格。右图:高光反射工作流使用的校准表格
metallic_workflow.png-181.6kB
图18.9 使用金属工作流来实现不同类型的材质。左边的球体:金属材质。右边的球体:塑料材质
pbs_scene.png-625.7kB
图18.10 在Unity 5中使用基于物理的渲染技术,场景在不同光照下的渲染结果
lighting_inspector.png-48.9kB
图18.11 光照面板下的Scene标签页
reflect_source.png-349.6kB
图18.12 左图:当关闭场景中的所有光源并把环境光照强度设为0后,使用了Standard Shader的物体仍然具有光照效果。右图:在左图的基础上,把反射源设置为空,使得物体不接受任何默认的反射信息
direction_light.png-29.3kB
图18.13 使用的平行光
need-to-insert-img
bounce_intensity.png-645.9kB
图18.14 左图:将Bounce Intensity设置为0,物体不再受到间接光照的影响,木屋内阴影部分的可见细节很少。右图:将Bounce Intensity设为8,阴影部分的细节更加清楚
reflection_probe.png-615.8kB
图18.15 左图:未使用反射探针。右图:在场景中放置了两个反射探针,注意墙上的盾牌与左图的差别
interreflection.png-338.2kB
图18.16 使用反射探针实现相互反射的效果
linear_space.png-611.4kB
图18.17 左图:在线性空间下的渲染结果。右图:在伽马空间下的渲染结果
gamma_chart.png-29.3kB
图18.18 人眼更容易感知暗部区域的变换,而对较亮区域的变化比较不敏感
encoding_display_gamma.png-37.5kB
图18.19 编码伽马和显示伽马
gamma_light.png-32.1kB
图18.20 左图:伽马空间下的渲染结果。右图:线性空间下的渲染结果
gamma_blur.png-85.2kB
图18.21 左图:伽马空间下的混合结果。右图:线性空间下的混合结果
第19章 Unity 5更新了什么
show_fixed_function.png-29.5kB
图19.1 在shader的导入面板中,单击图中按钮可查看Unity为该固定管线着色器生成的顶点/片元着色器代码