转载自 VR设计云课堂 《Unity Shader入门精要》随书彩色插图(下)
《Unity Shader入门精要》随书彩色插图(下)
2017.06.15 12:07* 字数 102 阅读 509评论 0喜欢 3
第15章 使用噪声
![](https://img.haomeiwen.com/i2372757/ea812480312dd6c2.png)
burn.png-429.1kB
图15.1 箱子的消融效果
![](https://img.haomeiwen.com/i2372757/6eba0bb5219b97da.png)
burn_noise.png-84.8kB
图15.2 消融效果使用的噪声纹理
![](https://img.haomeiwen.com/i2372757/b051886a9f7ab024.png)
water.png-722.5kB
图15.3 包含菲涅耳反射的水面波动效果。在左图中,视角方向和水面法线的夹角越大,反射效果越强。在右图中,视角方向和水面法线的夹角越大,折射效果越强
![](https://img.haomeiwen.com/i2372757/b8eea1c691da185e.png)
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不会被静态批处理
![](https://img.haomeiwen.com/i2372757/905be168217629b9.png)
advance_texture.png-96.6kB
图16.12 Unity的高级纹理设置面板
第17章 Surface Shader探秘
![](https://img.haomeiwen.com/i2372757/1f64384ee881936d.png)
bumped_diffuse.png-164.7kB
图17.1 表面着色器的例子。左图:在一个平行光下的效果。右图:添加了一个点光源(蓝色)和一个聚光灯(紫色)后的效果
![](https://img.haomeiwen.com/i2372757/559cf5cb9671f767.png)
generated_code.png-28.9kB
图17.2 查看表面着色器生成的代码
![](https://img.haomeiwen.com/i2372757/c30ca7c9e0e0198b.png)
pipeline.png-171.9kB
图17.3 表面着色器的渲染计算流水线。黄色:可以自定义的函数。灰色:Unity自动生成的计算步骤
![](https://img.haomeiwen.com/i2372757/78e2ba97fb18e481.png)
normal_extrusion.png-127.3kB
图17.4 沿顶点法线对模型进行膨胀。左图:膨胀前。右图:膨胀后
第18章 基于物理的渲染
![](https://img.haomeiwen.com/i2372757/5e86278724b733f6.png)
reflect_refract.png-26.9kB
图18.1 在理想的边界处,折射率的突变会把光线分成两个方向
![](https://img.haomeiwen.com/i2372757/248fdfd2c1daed3e.png)
rought_smooth.png-64.6kB
图18.2 左图:光滑表面的微平面的法线变化较小,反射光线的方向变化也更小。右图:粗糙表面的微平面的法线变化较大,反射光线的方向变化也更大
![](https://img.haomeiwen.com/i2372757/2afcab6bbd51c149.png)
subsurface_scattered_light.png-36.3kB
图18.3 微表面对光的折射。这些被折射的光中一部分被吸收,一部分又被散射到外部
![](https://img.haomeiwen.com/i2372757/2e0818e2ad4e0841.png)
surface.png-42.5kB
图18.4 次表面散射。左图:次表面散射的光线会从不同于入射点的位置射出。如果这些距离值小于需要被着色的像素大小,那么渲染就可以完全在局部完成(右图)。否则,就需要使用次表面散射渲染技术
![](https://img.haomeiwen.com/i2372757/b35724eb0f2c3313.png)
brdf.png-47.1kB
图18.5 BRDF描述的两种现象。高光反射部分用于描述反射,漫反射部分用于描述次表面散射
![](https://img.haomeiwen.com/i2372757/34090dd12b7ca68d.png)
m_h.png-90.5kB
图18.6 (a)那些m=h的微面元会恰好把入射光从I反射到v上,只有这部分微面元才可以添加到BRDF的计算中。(b)一部分满足(a)的微面元会在I方向上被其他微面元遮挡住,它们不会接受到光照,因此会形成阴影。(c)还有一部分满足(a)的微面元会在反射方向v上被其他微面元挡住,因此,这部分反射光也不会被看到
![](https://img.haomeiwen.com/i2372757/e17fde6c763d3b4f.png)
standard_shader.png-276.6kB
图18.7 Standard Shader中前向渲染路径使用的Pass(简化版本的PBS使用了VertexOutputBaseSimple等结构体来代替相应的结构体)
![](https://img.haomeiwen.com/i2372757/18acb558e2fcc75e.png)
calibration_charts.png-387.8kB
图18.8 Unity提供的校准表格。左图:金属工作流使用的校准表格。右图:高光反射工作流使用的校准表格
![](https://img.haomeiwen.com/i2372757/f515427b109c64ee.png)
metallic_workflow.png-181.6kB
图18.9 使用金属工作流来实现不同类型的材质。左边的球体:金属材质。右边的球体:塑料材质
![](https://img.haomeiwen.com/i2372757/2f4ab6b1307beb54.png)
pbs_scene.png-625.7kB
图18.10 在Unity 5中使用基于物理的渲染技术,场景在不同光照下的渲染结果
![](https://img.haomeiwen.com/i2372757/34084df56a40ed79.png)
lighting_inspector.png-48.9kB
图18.11 光照面板下的Scene标签页
![](https://img.haomeiwen.com/i2372757/bd2d05aa1d597eec.png)
reflect_source.png-349.6kB
图18.12 左图:当关闭场景中的所有光源并把环境光照强度设为0后,使用了Standard Shader的物体仍然具有光照效果。右图:在左图的基础上,把反射源设置为空,使得物体不接受任何默认的反射信息
![](https://img.haomeiwen.com/i2372757/dbcefed07f0cb3c2.png)
direction_light.png-29.3kB
图18.13 使用的平行光
need-to-insert-img
bounce_intensity.png-645.9kB
图18.14 左图:将Bounce Intensity设置为0,物体不再受到间接光照的影响,木屋内阴影部分的可见细节很少。右图:将Bounce Intensity设为8,阴影部分的细节更加清楚
![](https://img.haomeiwen.com/i2372757/ab23e648964660c9.png)
reflection_probe.png-615.8kB
图18.15 左图:未使用反射探针。右图:在场景中放置了两个反射探针,注意墙上的盾牌与左图的差别
![](https://img.haomeiwen.com/i2372757/8c7df40270ae085a.png)
interreflection.png-338.2kB
图18.16 使用反射探针实现相互反射的效果
![](https://img.haomeiwen.com/i2372757/b0b015ef062f52e3.png)
linear_space.png-611.4kB
图18.17 左图:在线性空间下的渲染结果。右图:在伽马空间下的渲染结果
![](https://img.haomeiwen.com/i2372757/8d916ca061ab1bb1.png)
gamma_chart.png-29.3kB
图18.18 人眼更容易感知暗部区域的变换,而对较亮区域的变化比较不敏感
![](https://img.haomeiwen.com/i2372757/0855e7cab7a16e9a.png)
encoding_display_gamma.png-37.5kB
图18.19 编码伽马和显示伽马
![](https://img.haomeiwen.com/i2372757/a7c3ce01663cec02.png)
gamma_light.png-32.1kB
图18.20 左图:伽马空间下的渲染结果。右图:线性空间下的渲染结果
![](https://img.haomeiwen.com/i2372757/3786d43caf60c109.png)
gamma_blur.png-85.2kB
图18.21 左图:伽马空间下的混合结果。右图:线性空间下的混合结果
第19章 Unity 5更新了什么
![](https://img.haomeiwen.com/i2372757/733117c5b2e58b82.png)
show_fixed_function.png-29.5kB
图19.1 在shader的导入面板中,单击图中按钮可查看Unity为该固定管线着色器生成的顶点/片元着色器代码
网友评论