Unity Shader入门精要

前言

shadertoy.png-286.5kB

第2章 渲染流水线


流水线.png-83.4kB
图2.1 真实生活中的流水线

概念流水线.png-16.9kB
图2.2 渲染流水线中的三个概念阶段

CopyDataToGPU.png-86.5kB
图2.3 渲染所需的数据(两张纹理以及3个网格)从硬盘最终加载到显存中。在渲染时,GPU可以快速访问这些数据

SetRenderState.png-157.1kB
图2.4 在同一状态下渲染三个网格。由于没有更改渲染状态,因此三个网格的外观看起来像是同一种材质的物体。

DrawCall.png-59.1kB
图2.5 CPU通过调用Draw Call来告诉GPU开始进行一个渲染过程。一个Draw Call会指向本次调用需要渲染的图元列表

GPU流水线.png-82.2kB
图2.6 GPU的渲染流水线实现。颜色表示了不同阶段的可配置性或可编程性:绿色表示该流水线阶段是完全可编程控制的,黄色表示该流水线阶段可以配置但不是可编程的,蓝色表示该流水线阶段是由GPU固定实现的,开发者没有任何控制权。实线表示该shader必须由开发者编程实现,虚线表示该Shader是可选的

VertexShaderProcess.png-43kB
图2.7 GPU在每个输入的网格顶点上都会调用顶点着色器。顶点着色器必须进行顶点的坐标变换,需要时还可以计算和输出顶点的颜色。例如,我们可能需要进行逐顶点的光照

Vertex Shader.png-34.9kB
图2.8 顶点着色器会将模型顶点的位置变换到齐次裁剪坐标空间下,进行输出后再由硬件做透视除法得到NDC下的坐标

Clipping.png-25.5kB
图2.9 只有在单位立方体的图元才需要被继续处理。因此,完全在单位立方体外部的图元(红色三角形)被舍弃,完全在单位立方体内部的图元(绿色三角形)将被保留。和单位立方体相交的图元(黄色三角形)会被裁剪,新的顶点会被生成,原来在外部的顶点会被舍弃

ScreenMapping.png-22.6kB
图2.10 屏幕映射将x、y坐标从(-1, 1)范围转换到屏幕坐标系中

Screen Mapping_OpenGL_DirectX.png-26.9kB
图2.11 OpenGL和DirectX的屏幕坐标系差异。对于一张512*512大小的图像,在OpenGL中其(0, 0)点在左下角,而在DirectX中其(0, 0)点在左上角

TriangleSetupAndTraversal.png-80kB
图2.12 三角形遍历的过程。根据几何阶段输出的顶点信息,最终得到该三角网格覆盖的像素位置。对应像素会生成一个片元,而片元中的状态是对三个顶点的信息进行插值得到的。例如,对图2.12中三个顶点的深度进行插值得到其重心位置对应的片元的深度值为-10.0

FragmentShader.png-42.4kB
图2.13 根据上一步插值后的片元信息,片元着色器计算该片元的输出颜色

Per-fragment Operations.png-23.1kB
图2.14 逐片元操作阶段所做的操作。只有通过了所有的测试后,新生成的片元才能和颜色缓冲区中已经存在的像素颜色进行混合,最后再写入颜色缓冲区中

Stencil Test_Depth Test.png-93.5kB
图2.15 模板测试和深度测试的简化流程图。

Blending.png-67.6kB
图2.16 混合操作的简化流程图

why_early_depth_test.png-18.7kB
图2.17 图示场景中包含了两个对象:球和长方体,绘制顺序是先绘制球(在屏幕上显示为圆),再绘制长方体(在屏幕上显示为长方形)。如果深度测试在片元着色器之后执行,那么在渲染长方体时,虽然它的大部分区域都被遮挡在球的后面,即它所覆盖的绝大部分片元根本无法通过深度测试,但是我们仍然需要对这些片元执行片元着色器,造成了很大的性能浪费

OpenGL和DirectX.png-56.1kB
图2.18 CPU、OpenGL/DirectX、显卡驱动和GPU之间的关系

CommandBuffer.png-49.9kB
图2.19 命令缓冲区。CPU通过图像编程接口向命令缓冲区中添加命令,而GPU从中读取命令并执行。黄色方框内的命令就是Draw Call,而红色方框内的命令用于改变渲染状态。我们使用红色方框来表示改变渲染状态的命令,
是因为这些命令往往更加耗时

SmallCommand.png-107.7kB
图2.20 命令缓冲区中的虚线方框表示GPU已经完成的命令。此时,命令缓冲区中没有可以执行的命令了,GPU处于空闲状态,而CPU还没有准备好下一个渲染命令。

Batching.png-70.3kB
图2.21 利用批处理,CPU在RAM把多个网格合并成一个更大的网格,再发送给GPU,然后在一个Draw Call中渲染它们。但要注意的是,使用批处理合并的网格将会使用同一种渲染状态。也就是说,如果网格之间需要使用不同的渲染状态,那么就无法使用批处理技术

第3章 Unity Shader基础

material_shader.png-125.8kB

mesh_renderer.png-41kB

material_inspector.png-119.4kB

shader_import_settings.png-38kB

shader_compile_code.png-35.9kB

shaderlab_abstract.png-63.4kB

shader_name.png-55.5kB

shaderlab_properties.png-33.2kB

shader_compile_code.png-35.9kB

第4章 学习Shader所需的数学基础

little_cow.png-293.5kB

cartersian_fly.png-28kB

2d_cartesian.png-36.4kB

2d_cartesian_opengl_directx.png-33.1kB

cow_cartesian.png-211.8kB

3d_cartesian.png-22.7kB

left_hand.png-40.5kB

right_hand.png-40kB

left_right_hand_rule.png-75.3kB

cow_left_right.png-254.3kB

cow_left_right_hand.png-295.8kB

unity_cartesian.png-173.2kB

unity_camera_cartesian.png-25.1kB

exercise_3.png-130.8kB

vector.png-8.9kB

point_vector.png-16.1kB

vector_scalar.png-53.9kB

vector_add_sub.png-52.8kB

vector_displacement.png-22.5kB

vector_magnitude.png-8.2kB

unit_vector.png-30.7kB

projection.png-17.7kB

dot_sign.png-22.9kB

dot_cos.png-14.1kB

vector_cross_diagram.png-32.1kB

vector_cross_length.png-13kB

vector_cross.png-27.2kB

vector_cross_right_hand.png-46.6kB

exercise_cross.png-26.1kB

matrix_mul.png-25kB

niuniu.png-273.2kB

object_space.png-84.5kB

unity_transform.png-151.9kB

world_space.png-378.7kB

camera_space.png-346.2kB

camera_projection.png-299.3kB

camera_frustum.png-301.2kB

projection_frustum.png-67.3kB

projection_matrix0.png-135.1kB

orthographic_frustum.png-33.5kB

orthographic_matrix0.png-129.6kB

cow_camera.png-180.1kB

projection_matrix1.png-131kB

orthographic_matrix1.png-105.6kB

vertex_conversion.png-100.9kB

space_handness.png-75.6kB

normal_tangent.png-167.3kB

transform_normal.png-40.6kB

screen_coord.png-9kB

difference_between_left_right.png-54.6kB

difference_between_left_right_2.png-59.4kB

exercise_cross2.png-34.4kB

第5章 开始Unity Shader学习之旅

new_scene.png-74.3kB

simple_shader.png-25.4kB

cginclude.png-27kB

false_color.png-192.9kB

color_picker.png-53.8kB

frame_debugger.png-218.7kB

frame_debugger_0.png-164.5kB

2d_cartesian_opengl_directx.png-33.1kB

第6章 Unity中的基础光照

irradiance.png-60.3kB

scattering.png-37.1kB

specular.png-31.2kB

Blinn.png-32.1kB

ambient.png-35.3kB

diffuse_vertex_level.png-40.4kB

diffuse_pixel_level.png-40.1kB

diffuse_compare_all.png-86.9kB

reflect.png-9.2kB

specular_vertex_level.png-41.5kB

specular_pixel_level.png-40.8kB

specular_compare_all.png-82.5kB

第7章 基础纹理

texture_coordinate.png-349.3kB

single_texture.png-71.3kB

texture_tiling_offset.png-16.9kB

texture_properties.png-29kB

wrap_mode.png-68.9kB

texture_offset.png-68.4kB

magnification.png-256.2kB

mipmap.png-35.9kB

minification.png-271.9kB

texture_quality.png-31.7kB

heightmap.png-134.5kB

tangent_space.png-165.3kB

object_tangent_space_normal.png-320.3kB

normal_map.png-92.2kB

bump_scale.png-140.5kB

texture_type_normal.png-29.8kB

texture_type_heightmap.png-293.4kB

ramp_texture.png-119.2kB

ramp_texture_wrap_mode.png-114.2kB

mask_specular.png-142.4kB

mask.png-671.4kB

第8章 透明效果

render_order_0.png-10.7kB

render_order_1.png-10.5kB

render_order_3.png-15.3kB

render_order_2.png-30.4kB

transparent_texture.png-71.9kB

alpha_test.png-55.9kB

alpha_test_0.png-166.4kB

alpha_blend.png-55.1kB

alpha_blend_0.png-138.7kB

transparent_order_wrong.png-94.7kB

alpha_blend_zwrite.png-87.9kB

blend.png-74.1kB

alpha_test_both_sided.png-60.7kB

alpha_blend_both_sided.png-66.2kB

第9章 更复杂的光照

rendering_path_setting.png-30kB

rendering_path_camera.png-37.8kB

light_type_mode.png-30.6kB

forward_rendering.png-175.5kB

directional_ligth.png-51.6kB

point_ligtht.png-89.4kB

enable_light.png-63.6kB

spot_light.png-74.5kB

two_lights.png-79.4kB

multi_lights.png-56.6kB

frame_debugger.png-103.3kB

multi_lights_0.png-218.4kB

multi_lights_1.png-100.8kB

light_not_important.png-70.8kB

light_shadow.png-32.8kB

mesh_renderer.png-20.3kB

shadow_0.png-34.4kB

shadow_1.png-89kB

shadow_2.png-40.5kB

shadow_frame_debugger.png-81.6kB

shadow_frame_debugger_0.png-83.1kB

shadow_frame_debugger_1.png-88.6kB

shadow_frame_debugger_2.png-175.1kB

alpha_test_shadow_0.png-62.8kB

alpha_test_shadow_1.png-66.2kB

alpha_test_shadow_2.png-75.7kB

alpha_blend_shadow0.png-88.6kB

alpha_blend_shadow1.png-94.9kB

第10章 高级纹理

cubemap_sample.png-20.1kB

skybox_mat.png-159kB

lighting_skybox.png-28.7kB

skybox_scene.png-346.5kB

render_into_cubemap.png-123kB

render_to_cubemap.png-133.8kB

reflection.png-400.5kB

snell_law.png-28.6kB

refraction.png-377.1kB

fresnel.png-64.6kB

mirror.png-342.1kB

render_texture.png-113.3kB

glass.png-462.9kB

glass_cubemap.png-140.2kB

procedural_texture.png-111.3kB

procedural_texture_multi.png-62.8kB

subtance_material.png-41.1kB

subtance_material_asset.png-78.8kB

subtance_material_multi.png-183.5kB

第11章 让画面动起来

boom.png-140.2kB

boom_sequence.png-37.6kB

scroll_background.png-228.5kB

river.png-242.7kB

basis_vector.png-76.2kB

billboard.png-86.8kB

wrong_shadow.png-147.3kB

right_shadow.png-43.8kB

第12章 屏幕后处理效果

brtsatcon.png-651.1kB

script_shader.png-16.6kB

edge_detection.png-717.9kB

convolution.png-15.1kB

edge_detection_kernel.png-19.8kB

edge_only.png-266.5kB

gaussian_blur.png-703.8kB

gaussian_kernel.png-21.2kB

800px-Elephants_Dream_-_Emo_and_Proog.jpg-41.9kB

bloom.png-772.3kB

motion_blur.png-770.9kB

第13章 使用深度和法线纹理

projection_matrix.png-150.4kB

orthographic_matrix.png-129.6kB

check_texture.png-161.3kB

check_texture_code.png-84kB

fog.png-627.5kB

frustum.png-33.5kB

world_dist.png-18.6kB

over_edge.png-819kB

edge_detect.png-452.9kB

Roberts.png-15.7kB

第14章 非真实感渲染

okami_announce_screens6.jpg-169.9kB

toon_shading.png-74.1kB

antialiasing.png-138.4kB

TAM.png-127.6kB

hatching.png-268.1kB

第15章 使用噪声

burn.png-429.1kB

burn_noise.png-84.8kB

water.png-722.5kB

cubemap.png-128.3kB

water_noise.png-202kB

fog.png-493.9kB

fog_noise.jpg-13kB

第16章 Unity中的渲染优化技术

render_static_window.png-156.1kB

profiler.png-122.5kB

frame_debugger.png-84.3kB

dynamic_batching0.png-138.9kB

dynamic_batching1.png-138.9kB

static_batching0.png-112.9kB

mark_static.png-22.3kB

static_batching1.png-112.3kB

combined_mesh.png-152.1kB

vbo.png-92kB

static_batching2.png-113.6kB

advance_texture.png-96.6kB

第17章 Surface Shader探秘

bumped_diffuse.png-164.7kB

generated_code.png-28.9kB

pipeline.png-171.9kB

normal_extrusion.png-127.3kB

第18章 基于物理的渲染

reflect_refract.png-26.9kB

rought_smooth.png-64.6kB

subsurface_scattered_light.png-36.3kB

surface.png-42.5kB

brdf.png-47.1kB

m_h.png-90.5kB

standard_shader.png-276.6kB

calibration_charts.png-387.8kB

metallic_workflow.png-181.6kB

pbs_scene.png-625.7kB

lighting_inspector.png-48.9kB

reflect_source.png-349.6kB

direction_light.png-29.3kB

bounce_intensity.png-645.9kB

reflection_probe.png-615.8kB

interreflection.png-338.2kB

linear_space.png-611.4kB

gamma_chart.png-29.3kB

encoding_display_gamma.png-37.5kB

gamma_light.png-32.1kB

gamma_blur.png-85.2kB

Unity3D中的快捷键

Windows系统Unity3D中的快捷键

 组合键  键  功能
 File 文件
 Ctrl  N  New Scene 新建场景
 Ctrl  O  Open Scene 打开场景
 Ctrl  S  Save Scene 保存
 Ctrl  Shift  S  Save Scene as 保存场景为
 Ctrl  Shift  B  Build Settings… 编译设置…
 Ctrl  B  Build and run 编译并运行
 Edit 编辑
 Ctrl  Z  Undo 撤消
 Ctrl  Y  Redo 重做
 Ctrl  X  Cut 剪切
 Ctrl  C  Copy 拷贝
 Ctrl  V  Paste 粘贴
 Ctrl  D  Duplicate 复制
 Shift Del  Delete 删除
 F  Frame  selected 选择的帧
 Ctrl  F  Find 查找
 Ctrl  A  Select All 全选
 Ctrl  P  Play 播放
  Ctrl  Shift  P  Pause 暂停
  Ctrl  Alt  P  Step 停止
 Assets 资源
 Ctrl  R  Refresh 刷新
 Game Object 游戏对象
 Ctrl  Shift  N  New Empty 新建空游戏对象
 Ctrl  Alt  F  Move to view 移动到视图
Ctrl  Shift  F  Align with view 视图对齐
 Window
 Ctrl  1  Scene 场景
 Ctrl  2  Game 游戏
 Ctrl  3  Inspector 检视面板
 Ctrl 4  Hierarchy 层次
 Ctrl  5  Project 项目
 Ctrl 6  Animation 动画
 Ctrl  7  Profiler 分析器
 Ctrl  8  Particle Effect 粒子效果
 Ctrl  9  Asset store 资源商店
 Ctrl  0  Asset server 资源服务器
 Ctrl  Shift  C  Console 控制台
 Ctrl  TAB  Next Window 下一个窗口
 Ctrl  Shift  TAB  Previous Window 上一个窗口
 Ctrl  Alt  F4  Quit 退出
 Tools 工具
 Q  Pan 平移
 W  Move 移动
 E  Rotate 旋转
 R  Scale 缩放
 Z  Pivot Mode toggle 轴点模式切换
 X  Pivot Rotation Toggle 轴点旋转切换
 Ctrl  LMB  Snap 捕捉 (Ctrl+鼠标左键
 V  Vertex Snap 顶点捕捉
 Selection
 Ctrl  Shift  Load Selection 1 载入选择集
 Ctrl  Shift  Load Selection 2
 Ctrl  Shift  Load Selection 3
 Ctrl  Shift  Load Selection 4
 Ctrl  Shift  Load Selection 5
 Ctrl  Shift  Load Selection 6
 Ctrl  Shift  Load Selection 7
 Ctrl  Shift  Load Selection 8
 Ctrl  Shift  Load Selection 9
 Ctrl  Alt  1  Save Selection 1 保存选择集
 Ctrl  Alt  2  Save Selection 2
 Ctrl  Alt  3  Save Selection 3
 Ctrl  Alt  4  Save Selection 4
 Ctrl  Alt  5  Save Selection 5
 Ctrl  Alt  6  Save Selection 6
 Ctrl  Alt  7  Save Selection 7
 Ctrl  Alt  8  Save Selection 8
 Ctrl  Alt  9  Save Selection 9

Unity 2018.3正式版功能介绍

Unity 2018.3正式版发布,这个版本是Unity 2018最后一个技术前瞻Tech版本,下一个版本Unity 2018.4将成为稳定支持LTS版本

Unity 2018.3的重要功能包括:改进的预制件工作流程、预制件嵌套功能、改进的可编程渲染管线SRP、地形系统、脚本运行时和预览版Visual Effect Graph等。

受篇幅限制,本文我们将会为大家介绍以下内容:

  • Unity 2018.3的重点功能及改进的概要功能
  • 预制件嵌套和相关工作流程的改进
  • 编辑器用户偏好设置改进
  • 影视相关Timeline和Cinemachine改进
  • 世界构建功能和工具改进
  • 地形系统改进
  • 资源包管理器和Unity Hub改进

下载Unity 2018.3:
https://unity3d.com/get-unity/update
观看Unity 2018.3中重点功能介绍

重点功能和改进概要
长期以来,我们收到用户反馈中最重要的一项补充功能就是预制件嵌套功能。在通过Game Jams活动对开发者进行了大量的访谈,经过对可用性测试研究后,我们发现很多开发者希望对预制件工作流程进行改进,因此我们着手针对重用性,可控性和安全性改进了整个预制件系统。

全新的预制件工作流程允许开发者以粒度等级(Granular Level)拆分场景和预制件。该工作流程将带来更高的灵活性,提升工作效率并让开发更为得心应手,从而不必担心发生需要事后花费大量时间进行修复的错误。

Unity 2018.3拥有统一的设置窗口,可以调整项目设置和偏好设置。新设置窗口可停靠在编辑器界面中,拥有搜索功能,以便开发者更快地找到并调整设置。

Unity现在的默认脚本运行时是.NET 4.x,原来的.NET 3.5运行时已被弃用,对该运行时的支持将在不久后结束,面向.NET 4.x脚本运行时的项目也将能够使用开源的Roslyn编译器。

Unity 2018.3也加入了PhysX 3.4升级,带来了对稳定性和性能的诸多改进,支持使用多个世界和C# Job查询。

用于构建游戏世界的2D Tilemap工具现在支持构建Isometric Tilemaps(等距Tilemap),可以帮助开发者更为轻松地创建策略游戏、经营游戏和模拟游戏等2D项目。

Unity 2018.3更新了地形系统,这标志着更大规模改动的开始。此次更新中,我们的不仅仅通过调整UI和工具,为未来的改进奠定基础,而且还关注于提升性能。此外,地形系统还加入了针对高清晰渲染管线HDRP和轻量级渲染管线LWRP的支持。

Unity 2018.3包含了对高清晰渲染管线HDRP大量的改进。该版本增加了对VR和多重采样抗锯齿功能的初步支持,还优化了对PC、Mac、Xbox One和PS4的支持。

多个HDRP元素的检视窗口UI也得到了更新,包括摄像机、光线、反射探针和材质等元素。最后,我们加入了全新的光照模型,以便开发者制作更复杂的材质。

Unity 2018.3中,我们为Windows系统加入了预览版GPU渐进式光照贴图,并对光照功能进行了诸多改进。

全新的Visual Effect Graph作为预览版资源包推出,你可以通过使用简单灵活的节点系统来创作精美的特效。Visual Effect Graph受到主流电影特效软件的启发,它可以帮助艺术家给游戏等项目创作出色的视觉效果,并且支持在GPU上运行数百万个粒子。

Unity 2018.3为现有的粒子系统加入了大量新功能。例如:粒子网格现在可以像公告牌一样翻转,粒子光线(Particle Lights)现在支持实时全局光照和新的Ringbuffer模式,通过在粒子生命周期结束后,保持粒子可见性直到粒子被替换,从而帮助开发者更轻松地创作诸如脚印和弹孔等持续显示的效果,直至它们被最终替换。

Unity 2018.3对移动端的改进包括支持对Vulkan和Metal的动态分辨率调整,支持Android AppBundle生成功能,可以使用APKzlib为Android更快地构建APK安装包。

对于XR,Unity 2018.3加入对Daydream控制器的原生支持,可以使用VR控制器的Haptics API,并对AR Foundation和XR Performance Testing进行了更新。

关于开发者服务,我们对Collaborate和Cloud Build添加多项改进。Performance Reporting性能报告服务现更名为Cloud Diagnostics云诊断服务,现在该服务也能跟踪用户提交的报告。

Unity 2018.3还加入了许多小型改进和错误修复。你可以在更新页面或通过Unity Hub下载完整的Unity 2018.3,以便了解新版本的所有细节。

下面我们将详细介绍Unity 2018.3中更新的详细信息。

编辑器和工作流程
1、预制件嵌套和改进的工作流程
Unity收到用户反馈中最重要的一项功能就是预制件嵌套功能。

根据150多家企业开发者的调查及访谈,数次可用性测试以及二次Game Jam活动获得的信息,了解到不少开发者希望我们对预制件工作流程进行改进 。因此,我们针对可重用性,可控性和安全性,对整个预制件系统进行了改进。

我们长期计划不仅是实现嵌套支持,还要重新构思核心预制件工作流程,从而使不同团队成员可以同时高效地编辑预制件。

全新预制件工作流程允许开发者以粒度等级(Granular Level)拆分场景和预制件。这将带来更高的灵活性,提升工作效率并让开发更为得心应手,从而不必担心发生耗费时间的错误。

观看新版预制件工作流程的实际使用效果

2、预制件嵌套功能
嵌套预制件将具有更高的灵活性和生产效率。此前我们必须在创建例如建筑这样的大型单块的预制件,或例如家具更细粒度的预制件之间作出选择,无法拥有同时具备二种类型的预制件。

现在有了嵌套预制件的支持后,大型建筑预制件可以由多个较小房间预制件组成,进而能够由多个家具预制件组成,以此类推。

它将为任何规模的团队带来便利:

  • 将预制件分为多个条目,实现更高的效率
  • 重用任何内容,包括从小到大的各类内容
  • 同时处理内容的不同部分

 

125602fszmx363133xxr66.png.thumb.jpg3、预制件变体
默认情况下,预制件变体会继承对象和原预制件的属性,与此同时开发者还可以重写这些属性,为变体添加组件和游戏对象。该功能类似面向对象编程的继承概念。

例如:如果你有一个门的预制件,你可以为其创建变体,给它指定不同的网格和材质,使它看起来有破旧的感觉。

对基础预制件做出的任何修改都会影响变体,例如:你可以通过修改门的基础预制件中碰撞体的大小,轻松调整二个门的碰撞体大小。

我们改进了属性的可视化效果和预制件实例的对象重写功能,加入了对不同粒度级别应用重写的功能,包括:根据属性,组件/游戏对象进行重写,或像以前一样,重写整个预制件实例。

125602aw7ihevwezswsu7i.png.thumb.jpg4、预制件模式
此前当开发者要编辑预制件资源时,必须将其拖动到一个已被打开的场景的检视窗口才能进行修改并应用改动,然后还需要记得删除该资源。

另外一个问题是检视窗口中预制件实例的Apply应用按钮。由于该按钮,开发者可能误将改动应用到预制件资源,而且还无法轻易发现改动后的情况。通过推出全新的预制件模式,我们解决了该问题,让开发者可以独立编辑预制件。

现在,开发者将能够编辑整个预制件资源,不必将其实例化到场景后再编辑或编辑已有的实例,这意味着开发者可以避免由于在场景意外应用重写而产生的错误。独立编辑功能让你能够放心做出修改。

125602d9ple5c9kifauzsu.png.thumb.jpg5、预制件工作流程示例项目
我们发布了一系列示例项目,以帮助开发者了解如何使用全新的预制件工作流程。

请访问官方论坛获取:
https://forum.unity.com/threads/example-projects.536662

6、用户偏好设置窗口
Unity 2018.3加入了全新的设置窗口,以提供稳定高效的方法来查找并管理所有用户偏好和项目设置。该窗口可以停靠在编辑器中,拥有简单的左右双栏导航布局,你可以通过搜索功能来快速找到需要调整的设置。

125740vpedldeb5e4lzq4d
新设置窗口还提供一个API,可供开发者轻松地为自己的资源包或Asset Store资源商店插件添加自定义设置。
125741bcpo788pvd6vd8b7
现在开发者可以更轻松地使用窗口选项卡。选中的窗口选项卡会以蓝色轮廓高亮显示,选项卡的宽度会根据选项卡名称的长度调整。当打开的选项卡数量超过窗口的宽度时,我们可以使用方向键来滚动切换窗口。

影视功能
1、Timeline
Unity 2018.3大大改进了Timeline动画轨道针对动画层级结构中Root Transform上动画的处理方法。

全新轨道偏移模式
轨道偏移模式会在Timeline准确设定场景中角色动画的起始位置。在Unity 2018.3之前的Timeline中,起始位置取决于Animator状态,现在的轨道提供了更多选项,其中Auto模式用于后向兼容。

125741s1qxsjqvz7y1dyzl.png.thumb.jpg对缩放的修改
如果在Animator上设置了Apply Root Motion标识,Timeline会对Root Transform的动画应用本地缩放。这会让Timeline资源在不同游戏对象之间的重用性更强,有助于移除底部滑行等瑕疵。

不再需要Root Motion
在Unity 2018.3之前,对于改变Root Transform位置和角度的动画剪辑,需要生成Root Motion Curves才能应用Root transformation,现已不再要求。这意味所有改变位置和角度的动画剪辑都适用于Timeline,请注意:不包含传统动画剪辑。

改进的编辑器预览功能
我们改进了编辑器内的Timeline预览。当使用Scene Offsets模式时,场景位置将用作偏移。应用淡入淡出的过渡效果时,会混合到场景姿势和场景位置。

2、Cinemachine
我们为Cinemachine加入了物理摄像机支持,事件映射器和一个具有可交互展示功能的程序化噪声编辑器。

125942pmxv4vmqemzc8ez1.png.thumb.jpg我们可以通过可视化噪声编辑器,调整Cinemachine摄像机的逼真感。
125942xvf5f1fs9715dhd1.png.thumb.jpg世界构建功能
2018年初,ProBuilder的3D建模和关卡设计工具成为了Unity的一部分,该工具的4.0版提供了重大更新。该版本主要处理稳定性和错误修复,同时包含多个新功能和重要改动。

ProBuilder 4.0现在以源代码分发,加入了新版改进的公开API,为开发者提供更多选项来自定义编辑器和运行时。此次更新还加入嵌套预制件工作流程的支持,性能提升和可视化改进,例如:可以为所有选择的元素提供了预选高亮。

地形系统
Unity 2018.3包含对地形系统的更新,重点关注性能和可用性。

此次更新涉及改进的工具和利用GPU实现的更高性能,它还添加了HDRP高清晰渲染管线和LWRP轻量级渲染管线的支持,同时兼容内置渲染管线和现有Unity地形系统。

1、性能
在性能方面,我们为地形添加了GPU实例渲染路径。大多数情况下,实例化会大幅减少绘制调用。我们进行的大量测试都表明,它能减少50%以上的CPU消耗。

2、可编程GPU工具
在编辑器方面,我们公开了一个脚本API可用于构建自定义地形工具,以及一组实用函数,你可以使用它们在GPU上轻松实现无缝的交叉平铺雕刻和绘制操作。

我们将现有地形工具转换为GPU操作,除了使这些工具速度更快,也为我们提供了笔刷大小,改进的笔刷预览,以及通过自动无缝拼接来绘制地形平铺边界的功能。

3、多地形支持
我们使处理多个地形平铺的过程更为简单。除了地形之间的无缝绘制,你还可以自动管理相邻地形间的连接。此前,这需要编写脚本来手动连接地形。

扩展现有地形时,你可以使用全新的‘Create Neighbor Terrain’工具来沿着空白边界快速添加匹配的地形平铺。

4、新资源类型
全新地形工具和Brush资源包括:高度图,网格标记和克隆笔刷等功能。这些绘图工具的功能还未在Unity 2018.3中提供,你可以通过GitHub的Terrain Tools项目获取。

获取Terrain Tools:
https://github.com/Unity-Technologies/TerrainToolSamples

125943hadg5j5d9d79zjdg.png.thumb.jpg为了简化工作流程,我们还加入了二个与地形相关的全新资源类型:TerrainLayer和Brush。

TerrainLayer资源允许我们定义独立于地形对象的地形材质,从而能够轻松跟踪多个地形中相同材质的变化,这样能实现无缝绘制和材质修改。

125943nm6shb6mzy6zlzly.png.thumb.jpg
Brush资源包含绘制工具和雕刻工具所使用的GPU笔刷形状。笔刷形状由纹理和径向衰减曲线定义,这样能更轻松地创建和调整笔刷形状。
125943ijozvj7f01vuauj6.png.thumb.jpg
我们还为Unity添加了对R16纹理格式的支持。该支持允许我们避免在笔刷形状上进行8位量化,如果用作高度图标记的话,8位量化会产生不合适的“阶梯”效果。
130214z7t47g1g388t817b.jpg.thumb
8位笔刷标记产生的“阶梯”瑕疵(上)和16位笔刷标记的效果(下)

资源包管理器
资源包管理器可为项目动态加载和更新Unity开发的功能,帮助开发者快速获取Unity的新功能。

随着更多Unity功能以资源包格式提供,我们正在稳步改进用户体验,从而帮助开发者更轻松地发现可用资源包和更新,并管理项目中已安装的资源包。

我们对资源包管理器加入了大量改动,包括:更好的UI,可以显示资源包标签的状态;停靠窗口的功能;以及支持轻松访问文档和改动列表。现在你可以根据名称搜索资源包,我们还加入了首个UX构建块,能让你手动添加自己开发的资源包。

130214xrykndchrk27xxzc.png.thumb.jpgUnity Hub
2018年9月,我们发布了Unity Hub v1.0,Unity Hub是一个连接Unity的桌面端应用程序,旨在通过提供管理Unity项目、许可证和附加组件的中心化位置,来简化所有用户的使用和制作流程。

Unity Hub v1.2加入了通过Unity下载存档URL来直接下载和安装旧版Unity编辑器的功能。依赖特定(旧版)编辑器版本的用户可以通过Unity Hub一键获取旧版编辑器。

130214pz84i0xx102xhkkb.png.thumb.jpg随着越来越多的功能和更新以资源包的形式发布,全新的资源包项目升级工具将通过Unity Hub帮助开发者简化更新流程。该工具能确保将项目从较早Unity版本升级到新版本时,项目资源包,脚本和项目库能够互相兼容。

该工具还会提供资源包更新日志文件,用于帮助开发者进行调试,因此我们可以跟踪每个受影响项目的转换状态。

下文将介绍Unity 2018.3正式版以下功能及改进:

  • 引擎:Visual Studio Code Debugger、PhysX升级到3.4版本、垃圾回收控制等
  • 2D:等距Tilemap、蒙皮编辑器等
  • 粒子:粒子光线支持实时全局光照、External Forces模块更新等
  • 平台:移动平台中Android App Bundle、动态分辨率等;Xbox One 提供了DirectX 12支持;XR平台中AR Foundation更新等
  • DCC数字内容创作工具:FBX Exporter、物理摄像机等
  • TextMesh Pro

Unity 2018.3正式版中包含新增45项功能,250项改进,以及1915个Bug修复,查看发行说明了解详情:
https://unity3d.com/unity/whats-new/unity-2018.3.0

下载Unity 2018.3
https://unity3d.com/get-unity/update

引擎更新
1、Visual Studio Code Debugger
我们更新了Visual Studio Code的调试器扩展,Visual Studio Code是一款开源的代码编辑器,可以在macOS,Windows和Linux系统上使用。

Visual Studio Code Debugger for Unity扩展支持在轻量级的环境中对C#脚本进行调试,最新的v2.x版加入了改进,包括对Mono 4.x脚本运行时的支持。

如果你希望使用集成性更强并拥有丰富功能的C#编码和调试环境,可以使用Visual Studio。

了解如何设置Visual Studio Code Debugger:
https://code.visualstudio.com/docs/other/unity

了解如何使用Visual Studio Tools for Unity:
https://docs.microsoft.com/en-us/visualstudio/cross-platform/getting-started-with-visual-studio-tools-for-unity

114831vyq9rrq0pwgqir2p.png.thumb.jpg

2、物理功能
PhysX 3.4
在Unity 2018.3中,NVIDIA PhysX升级到3.4版本。此次更新使光线投射,形状扫描和网格烘焙等多项操作的速度加倍。

它还改进对快速旋转对象的碰撞检测支持,加入了强化的结果输出,当所有输入内容一致时,PhysX能产生相同结果。

我们还扩展了C# Job System中 PhysX提供的功能,这允许在主线程外异步使用大部分碰撞体类型,从而在多核硬件上显著提高性能。

PhysX 3.4还提供了稳定性和性能方面的改进。PhysX 3.4现在支持多世界和C# Job查询。

多场景物理
Unity过去只有一个物理场景,该场景会填充来自所有Unity场景的物体和碰撞体。这样做会对很多情况产生限制,所以新版本将允许开发者创建多个物理场景。这项改动让你能指定Unity场景使用默认物理场景或本地场景来处理2D和3D物理效果。

了解详情,请点击阅读:Unity 2018.3中的物理功能改进

022404h366twri69ixw36x

 

3、垃圾回收控制
Unity 2018.3加入了全新的 UnityEngine.Scripting.GarbageCollector脚本API,用于在全局启用和禁用Mono和IL2CPP脚本后端的运行时垃圾回收功能。

如果仔细管理内存,在运行时有很少或几乎没有内存分配,则可以通过禁用它来避免垃圾回收器的性能开销。当可以承担起性能开销时,可以启用垃圾回收器,并调用System.GC.Collect()来强制进行垃圾回收。

这意味着,垃圾回收过程不会随机发生,我们可以控制它的发生时间。

4、.NET 4.x Equivalent脚本运行时
.NET 4.x Equivalent脚本运行时现在成为了Unity新项目的默认选项。

旧版的脚本运行时即.NET 3.5 Equivalent已经被弃用,并且将在Unity 2019.x发布周期中移除。目前Unity 2018 LTS版仍将支持二种脚本运行时。

如果你还没有在自己的项目中尝试使用.NET 4.x Equivalent脚本运行时,Unity 2018.3中的新功能将是你使用新脚本运行时的最佳理由。例如:在所有支持Mono和IL2CPP的Unity平台上,对所有.NET类库的API提供完整的TLS 1.2支持。

114832cw6kdwg0hnmiiwwl.png.thumb.jpg

我们在减小项目大小方面做了大量工作。例如:在iOS系统上,使用新版脚本运行时的Unity 2018.3项目的整体构建大小和使用旧版脚本运行时的Unity 2018.2或更早版本的项目大小相差无几。

面向.NET 4.x脚本运行时的项目也支持使用开源的Roslyn编译器,以避免出现此前Mono C#编译器出现的Bug。

5、代码大小
我们在所有平台的Player Settings都包含标准化托管代码移除功能。移除等级(Stripping Level)选项已替换为托管移除等级(Managed Stripping Level)选项。该选项适用于所有平台,以及Mono和IL2CPP脚本后端。

为了帮助开发者尽可能减小游戏大小,我们加入了二个全新托管移除等级选项:Medium中级和High高级。二个新选项只在面向.NET 4.x脚本运行时的情况下可用。

114832ot0bt1tzg0bgbnuq.png.thumb.jpg

随着我们对IL2CPP进行了托管代码移除的改进和构建大小的改进,面向.NET 4.x运行时的项目大小将和面向旧版.NET 2.0运行时的项目大小差不多。

6、C# 7.3:Roslyn编译器
C# 7.3现在支持面向.NET 4.x脚本运行时的项目,这是因为我们改进了它与开源Roslyn C#编译器的兼容性,从而提供了最新C# 7.3的语言特性,并减少了编译时间。

7、用于重新压缩下载资源包的运行时API
AssetBundle是包含可在运行时加载的特定平台资源,例如:模型、纹理、预制件、音频剪辑以及甚至整个场景的档案文件。

AssetBundle可以减少可下载内容的初始安装大小,确保资源针对最终用户的平台进行优化,并降低运行时内存压力。

Unity 2018.3提供了了一个API,允许开发者创建和管理自己的AssetBundle缓存系统。你可以向客户端提供通过LZMA压缩的AssetBundle,然后客户端将AssetBundle重新压缩为更适合运行的格式LZ4,就像使用我们的原生内置AssetBundle缓存系统一样。

8、寻路系统更新
NavMesh Surface组件表示特定NavMesh Agent类型可以行走的区域,并定义NavMesh应构建的场景位置。

在Unity 2018.3中,寻路系统可以让预制件中的NavMeshSurfaces在预制件模式下独立烘焙。如果要跟踪直线路径或在NavMesh上找到二个位置间的障碍,你现在可以在C# Job中调用NavMeshQuery.Raycast方法。

9、资源上传管线AUP
在Unity 2018.3之前,资源上传管线AUP仅处理纹理。从Unity 2018.3开始,AUP可以加载纹理和网格,但有部分例外情况:可读写纹理、可读写网格和压缩网格不能使用AUP。请注意:Unity 2018.2加入的纹理Mipmap流也使用AUP。

了解更多信息,请阅读:优化加载性能:了解异步上传管线AUP

10、内存分析器
内存消耗量是关键的性能指标,对于低端移动设备等内存资源有限的平台来说尤为重要。虽然Unity拥有优秀的性能工具,但仍在解决内存相关问题的方面存在不足。找到泄露内存和最大内存分配部分,或寻找问题原因都并不简单。

考虑到这一点,我们希望能够让开发者更容易了解项目中内存的变化。使用新的内存分析器Memory Profiler,你将能够了解所有内存分配的详细信息。

114832k95pvldoyyylelq0.png.thumb.jpg

你可以使用它来捕获快照,分析原生内存和托管内存的使用情况,并最终做出有关优化内存使用情况的更好决策。这适用于调查C#和C ++内存,了解不同分配之间的关系,Unity内部分配以及处理内存较少的设备。

最后,您还可以比较快照之间的差异以识别内存泄漏。Memory Profiler在其第一个版本中作为预览版提供,并将不断更新。

2D功能
1、2D等距Tilemap
现在我们可以在Unity 2018.3中基于等距网格布局轻松创建高性能2D环境。

我们可以在二种等距Tilemap类型中进行选择:常规等距Tilemap或Z作为Y的Tilemap。选择Z作为Y的Tilemap时,我们可以在相同瓦片上以不同高度绘制不同的瓦片。例如:绘制带有不同楼层的高层建筑,以及大树或高塔等较高的对象。

下图是布局在等距网格的2D游戏关卡示例。

114832pu0u552jd55b5100

我们可以选择分组瓦片进行渲染或单独渲染它们。将瓦片分组渲染即Chunk模式可以优化性能。但是,如果希望让游戏对象在瓦片前或瓦片后移动,则可以单独渲染每个瓦片。

开发者可以在GitHub上找到一些实用工具,例如:RuleTiles,以与Tilemaps一起使用。

下载地址:
https://github.com/Unity-Technologies/2d-extras

下图是由Kenney提供的Isometric Dungeon Tiles资源包中的瓦片。

115416zdkdcw611vl1qq11.jpg.thumb

2、2D Animation v2
新版2D Animation系统带来全新的工作流程,并实现对绑定流程进行了更精细的控制。

多精灵功能:在Photoshop中创作角色时,请确保角色的每个肢体处于不同的图层,然后将文件导出为PSD格式,并导入到Unity中。你将需要使用全新的2D PSDImporter资源包。导入后,Unity会自动生成精灵图集。

115417uoimos6f2vbbsi92

全新蒙皮编辑器:使用新的蒙皮编辑器窗口可以更精确地定义网格细分和精灵变形,编辑器还对UI和用户体验做了改进。

2D Animation v2资源包和2D PSDImporter资源包将于近期在资源包管理器中发布。

115417hpo79639a9p93vlo.png.thumb.jpg

3、Animation
我们对Animator添加了多项赶紧,包括:运行时代码不会进行分配,支持批处理C# Job,从而使性能提高了10~20%。

粒子系统
下面为大家详细介绍,Unity 2018.3中对粒子系统加入了大量改进和新功能。

通过使用offset参数设置和获取粒子
我们改进了粒子系统的脚本API,加入新的可选参数offset。该参数可以让你获取或设置整个粒子数组中的子区域。

粒子光线现在支持实时全局光照
当通过光照模块发射光线时,光线可以改变场景的实时全局光照。只需配置Light Prefab光线预制件,你可以像调整其它光线一样改变全局光照。

115418nlkurgn9cfenznxr.png.thumb.jpg

翻转粒子系统的网格
现在可以使用翻转选项来翻转粒子网格和公告牌。我们还将Flip U/V选项从Texture Sheet Animation模块移动到了Renderer模块。

排序网格形状的发射
类似程序化形状支持非随机发射的方法,现在网格可以通过可预测顺序生成粒子。对于圆形等程序化形状,粒子会围绕形状边缘递增地生成。网格也会使用相同的方法,但是网格中顶点或表面的顺序决定了生成顺序。

115418ih12jw27jb7whuge

禁用滚动(VR)
我们在Renderer模块中新增了一个复选框,可以阻止面向摄像机的粒子随着摄像机一起滚动。这对于VR应用程序特别实用,如果没有此功能,当用户倾斜头部时,粒子会有奇怪的行为。

爆炸的随机性
为了创建更为无法预测的粒子爆炸效果,现在你可以定义不触发爆炸的随机可能性。

粒子标准着色器成为新的默认设置
在Unity 2018.3创建新粒子系统时,默认情况下将设置无光粒子标准着色器(Unlit Particle Standard Shader),所有旧版着色器都移动到了Legacy菜单中。

Ringbuffer模式
全新的Ringbuffer模式可以通过在粒子生命周期结束后,保持粒子可见性直到粒子被替换,从而帮助开发者更轻松地制作脚印和弹孔等持续效果。

在新模式中,你可以根据需要使用二种循环模式配置粒子,这样可以创建发光余烬等效果,在效果被替换前会持续播放效果,同时保持整体的性能预算。

新的Texture Sheet Animation模式

Unity 2018.3的Texture Sheet Animation模块添加了二种新模式。
a、第一种模式会以固定每秒帧数播放动画。
b、第二种模式基于粒子速度,会根据每个粒子的移动速度从动画选取帧。

External Forces模块更新
我们在Unity 2018.3改进了External Forces模块,它引入了全新的ParticleSystemForceField组件,该组件能够与粒子系统交互,给粒子施加各类作用力。

115755dgff8xscf2gs9osp

阴影偏差
粒子公告牌,线段和尾迹都很容易受到自阴影问题的影响,因为它们通过面向2D摄像机的几何体伪造出3D对象。

为了解决该问题,我们对每个组件加入了新的阴影偏差选项,让你移开阴影远离对象,以防止不正确的自阴影。

子发射器的Ratio属性
Unity中的子发射器现在拥有一个新属性Ratio,该属性决定触发子发射器事件的可能性。Ratio为1时,子发射器会在触发时发射粒子。

Ratio为0时,子发射器无论如何都不会发射粒子。通过将Ratio值设为0~1之间,你可以对子发射器事件指定随机的可能性。

剔除
Unity 2018.3引入了一种控制粒子系统在屏幕外发生行为的方法。此前版本会对暂停或继续模拟粒子系统自动做出决策,有时这样会造成性能峰值,或因为模拟屏幕外的效果而浪费性能。新的剔除模式(Culling Mode)选项能让你更好地掌控这一情况,并作出更好的决策。

非均匀缩放
我们修复了阻止非均匀缩放功能正常工作的Bug。现在可以使用非均匀缩放功能,处理本地空间或世界空间对齐的粒子,并获得可预测的结果。

旧粒子系统的移除
为了专注于开发新功能,在Unity 2018.1,我们通过移除旧粒子系统的脚本绑定来开始逐步移除旧粒子系统,Unity 2018.3完全移除了旧粒子系统。

如果这项改动对你的项目造成了影响,你可以使用旧粒子系统更新器(Legacy Particle System Updater)工具将旧粒子系统转换为粒子系统组件。

了解粒子系统转换:
https://forum.unity.com/threads/release-legacy-particle-system-updater.510879/

平台
1、移动平台
下面为大家介绍Unity 2018.3种对移动平台的改进。

Android App Bundle
Android App Bundle是Google Play全新的应用发布格式,包含游戏中所有已编译的代码和资源,但它会推迟APK生成和Google Play签名。

Google Play的新版应用服务模型Dynamic Delivery,它会使应用程序包根据用户的设备配置来生成并提供优化过的APK文件,因此用户只需下载运行应用所需的代码和资源即可。

开发者不再需要构建、签名并管理多个APK来为多个不同设备提供支持,而用户则能下载到更小的优化过的文件。

115756wrt7450zw5424fyw.jpg.thumb

移动平台的动态分辨率(适用于iOS和Android)
Unity 2018.3针对iOS/tvOS (Metal)和Android (Vulkan)加入了Dynamic Resolution动态分辨率功能,该功能可以动态缩放部分或全部渲染目标,以减少GPU上的工作负载。

当性能数据提示游戏将因受GPU限制而降低帧率时,该功能会自动触发。在这种情况下,逐渐减小分辨率有助于保持稳定的帧率。当用户即将体验游戏的GPU密集型部分时,也可以手动触发该功能。

Android运行时权限
在Android 6(API级别为23)或更高版本中,Android.Permission API允许开发者在运行时请求权限,例如:需要使用摄像机、麦克风或位置等系统功能时进行请求,而不是在应用程序启动的时候。

你可以检查授权情况,并在Android系统权限对话框出现前,显示一条信息来说明请求权限的原因。

和Unity一起安装的OpenJDK
Unity现在会默认安装基于OpenJDK的Java开发工具包,确保你获得正确的JDK版本。

2、主机平台

适用于Xbox One的DirectX 12
在Unity 2018.3中,我们为Xbox One 提供了DirectX 12支持。

115756tkkha55tzfd8jkrt.png.thumb.jpg

DirectX 12是一种新的图形API,可以减少驱动程序的开销,并能够更好地使用多核系统。DX12将带来显著的性能提升,具体效果因游戏而异。例如:在《死者之书》演示项目中,我们将帧率提升了8.72%。

115756qf8qfehd2b5qxx2w.jpg.thumb

目前,这项功能仅为实验性质,由开发者自行决定是否启用,我们将后续分享更多详细信息。

3、XR

对Daydream控制器的原生支持
此次更新通过Input Manager输入管理器,为Daydream控制器的跟踪和按钮输入加入了原生支持。了解Unity 2018.3中多平台VR功能,请阅读:Unity 2018.3中多平台VR功能

VR控制器的Haptics API
我们现在提供用于触发触觉的API,适用于Windows Mixed Reality头戴设备控制器,OpenVR的Vive控制器和Oculus Touch控制器。我们会在未来版本中继续扩展平台支持。

AR Foundation更新
我们最近为AR Foundation和其它XR资源包加入了重大更新。

第一项功能,你可以通过在利用AR Foundation构建的ARCore和ARKit应用程序中使用轻量级渲染管线,来更好地控制渲染效果。

第二项新功能是一组优化的摄像机图像API集合,允许你高效地访问CPU的摄像机图像。对于希望在自定义计算机视觉算法等开发内容定制图像处理过程的开发人员来说,该功能是理想的选择。

最后我们实现了对ARKit的ARWorldMap功能的支持,以便分享会话信息。

XR性能测试
我们最近新增了帮助开发者测试XR项目的GitHub库。Automated Tests测试包中包含功能性,性能以及其它类型的自动化测试,可用于你的Unity XR开发。

你可以使用Acceptance Tests项目来验证Unity配置的行为,对比不同Unity版本的功能,并通过测试了解性能的变化。

访问Acceptance Tests项目:
https://github.com/Unity-Technologies/XRAutomatedTests

TextMesh Pro
Unity 2018.3的TextMesh Pro是验证过的资源包,它加入了高度优化的Font Generator字体生成器,可在运行时生成字形。

你可以通过调用混合动态字体系统(Hybrid Dynamic Font System)来结合项目中的静态字体资源和动态字体资源。

115756ks4sssofp42zsgyy.png.thumb.jpg

DCC数字内容创作工具

1、FBX Exporter
FBX Exporter在Unity 2017.2推出,如今成为了已验证资源包,可通过Unity 2018.3的资源包管理器获取。你可以使用该工具轻松地将几何体发送到任何支持FBX格式的应用程序,处理后再返回发送回来。

115757t4j06epvvexzf76z

2、物理摄像机
我们在现有Unity摄像机系统的基础上提供了新的物理摄像机模式。新模式基于焦距和传感器尺寸渲染画面,而不是视图控制的垂直视场,这使得电影摄影师和艺术家更熟练地使用物理摄像机。它还支持更自然的镜头效果,例如:晕影,色差和光晕。

115757liphcjhoun4h1ipp.png.thumb.jpg

3、SRP的Autodesk交互式着色器支持
我们使用Shader Graph着色器视图创建了“Autodesk Interactive”着色器资源,用于支持此前的粗糙度设置。

请注意,Autodesk交互式着色器以前在Autodesk Maya和Autodesk 3ds Max称为Stingray PBS着色器。

图形在Unity中尤为重要,在本文中我们将介绍Unity 2018.3正式版中以下的功能和改进。
1、Visual Effect Graph
2、光照
3、GPU渐进式光照贴图
4、轻量级渲染管线LWRP
5、高清晰渲染管线HDRP
6、移除MovieTexture功能

了解更多Unity 2018.3正式版功能:
1、Unity 2018.3正式版功能介绍(1):预制件及工作流程、编辑器、影视、世界构建功能和工具、地形系统、资源包管理器及Unity Hub
2、Unity 2018.3正式版功能介绍(2):引擎、2D、粒子、平台、DCC、TextMesh

下载Unity 2018.3
https://unity3d.com/get-unity/update

Visual Effect Graph(预览版)
全新的Visual Effect Graph在Unity 2018.3中作为预览版提供,需结合HDRP使用。你可以使用它来制作可配置,可重用的次世代效果,还可以在GPU上处理数百万个粒子。

Visual Effect Graph受到主流电影特效软件的启发,提供了灵活且易于使用的节点系统,能够帮助艺术家为游戏等交互式内容创作惊艳的视觉效果。

你可以通过拖动预制节点实现简单效果,或者使用节点来创作更高级的效果。Visual Effect Graph具有高效的响应性,你可以在创作过程中实时查看所有改动。Visual Effect Graph架构使你可以在GPU上处理数百万个粒子,而不会影响性能。

观看Visual Effect Graph演示项目

该工具的每个资源都包含一个视图,其中包含独立效果的所有行为。效果包括网格,粒子和其它模拟容器的任意组合,所有内容都将由Visual Effect Graph进行处理,该工具还与Timeline等其它工具集成。

Visual Effect Graph目前仅支持HDRP,针对LWRP的支持将在明年发布。

观看Visual Effect Graph介绍视频

光照
Unity 2018.3为精准光源加入了可配置的衰减(Configurable Falloff)功能。对CPU和GPU渐进式光照贴图的这一项改动意味着,即使未使用可编程脚本渲染管线SRP时,也可以通过脚本配置烘焙光照,以使用符合物理原理的“平方反比衰减”效果。

最终烘焙的光照会更接近现实中的光照效果,具有明亮的中心区域和漫长缓慢的衰减过程。这样会得到了更逼真的光照效果,同时改进了光照贴图场景的总体可信度。

152726cq0xigxgagxn8amg.png.thumb.jpg

我们还实现了Light Probe Deringing,你可以开启光照探针分组(Light Probe Group),从而在探针实现窗口化,窗口化可以减少负值和条带效应。

152726asbte9stmratmny1.png.thumb.jpg

Unity 2018.3加入了圆盘区域光(Disk Area Light),该功能针对CPU和GPU渐进式光照贴图使用。此区域光形状对建筑可视化和其它需要圆形光孔的应用非常实用。这些情况下,使用矩形光形状并不适合。Disc光提供了其它有趣的特性,例如:较小的热区,面向光照边缘的较柔和半阴影。

152726aipp8808ro0nozaa.png.thumb.jpg

GPU渐进式光照贴图(Windows预览版)
在Unity 2018.3 Windows版本中提供了预览版GPU渐进式光照贴图。在具有强大GPU的计算机上,使用GPU渐进式光照贴图能以更快的速度烘焙光照贴图。

我们基于Radeon Rays和OpenCL构建了一个纯粹基于路径跟踪的算法,用于在Unity中烘焙光照贴图,带来超过CPU 10倍的性能提升效果。

你可以在光照窗口尝试使用GPU渐进式光照贴图,该功能适用于所有内存超过2GB的GPU,对于大型光照贴图,我们推荐使用更大的内存配置。

152727k8h3hyc3tzc1ju88.png.thumb.jpg

Unity 2018.3支持渐进式更新,多个光照贴图、直接光照、间接光照、AO、所有光线类型、环境光照、发射、多重反射、GPU合成、剔除和融合测试。

由于GPU渐进式光照贴图功能是预览版功能,目前的功能有限,未来它将支持Unity中的所有光照功能。在Unity 2019.1中,我们将加入对Linux和macOS系统的支持。

轻量级渲染管线LWRP(预览版)
我们对轻量级渲染管线LWRP进行了改进,加入了基于物理的光照衰减,自定义渲染器和自定义渲染通道插入。预计Unity 2019.1中LWRP能结束预览阶段并应用于实际制作中。

1、基于物理的光照衰减
LWRP现在使用平方反比衰减来实现实时光照和烘焙光照。这在不同光照条件下提供更准确的结果,并且可以照亮较小范围,从而改善根据对象进行光线剔除的性能。从之前的版本更新至4.1.0-preview版时,你需要更新部分光照设置。

2、改进的阴影质量
深度和法线阴影偏差的偏移现在通过阴影贴图体素大小进行调整。这样能让你在调整阴影瑕疵进行更好的控制。无论阴影联级和阴影分辨率有多大,设置都会生效。

3、自定义渲染通道
LWRP现在提供一个的简单工作流进行扩展渲染器。你可以使用ScriptableRenderPass 类创建自定义渲染通道,并在渲染器中进行调度。

在LWRP中有二种插入自定义渲染通道的方法。
a、你可以通过实现IRendererSetup来完全重写LWRP渲染器。渲染器设置是可以附加到摄像机的脚本,它会执行所有在脚本中注册的ScriptableRenderPasses。
b、你可以使用它来实现不同渲染策略,例如:正向渲染和延迟渲染。

下图中,我们使用ScriptableRenderPass来创建平面反射纹理。然后我们在Shader Graph着色器视图使用该纹理,将其应用于金属地面。

152727x831h2perp855nm1.png.thumb.jpg

下图中,我们转换了内置渲染管线的指令缓冲区示例,以通过ScriptableRenderPass来实现模糊的折射效果。

152727qzqaz5eqa5er5q65.png.thumb.jpg

4、文档更新
单击资源包管理器窗口的View Documentation按钮,即可查看LWRP的文档。我们新增了关于Lit和Simple Lit等着色器的文档,预计在Unity 2019.1,我们将提供完整的LWRP文档。

5、性能提升
我们在GLES2中添加了着色点和聚光灯的改进,以及针对支持HSR的GPU的改进。

有关更多详情,请查看资源包管理器中提供的LWRP更新日志。你也可以获取Boat Attack演示项目,该项目用于帮助开发者对LWRP进行测试和开发。

下载Boat Attack演示项目:
https://github.com/Verasl/BoatAttack

6、对比内置渲染管线和LWRP
内置渲染管线会以对象级别剔除光照,它会在单独的渲染通道对每个光照进行着色。LWRP会根据对象剔除光照,但LWRP会在单通道对所有光照着色,从而减少批处理。

下面的屏幕截图展示了Angry Bots 2演示项目中的场景。

152728gnqn1mmmq1gd9mpm.png.thumb.jpg

我们在该场景中对比了Unity内置管线(左)和LWRP(右)中的实时光照和阴影,我们在内置渲染管线中使用了正向渲染路径。

二个场景使用了相同的光照设置:
a、1个定向光(柔和阴影)
b、2个点光源(无阴影)
c、2个聚光灯(柔和阴影)

为了使光照效果和内置渲染管线的一致,我们提高了LWRP场景中的点光源和聚光灯密度,这并不会造成任何额外的性能消耗。

如下图所示,LWRP中的实时光照和阴影(右图)和内置渲染管线中的效果(左图)大致相同,但是批处理和绘图调用的次数较少。

152728hkn7v0v14w7vv72s.png.thumb.jpg

高清晰渲染管线HDRP(预览版)
高清晰渲染管线HDRP专注于实现高端视觉效果和游戏。在Unity 2018.3中,我们为HDRP添加并改进了多项功能,以实现更好的视觉质量,并为艺术家提供更好的工作流程。新版本更稳定,能够更好地支持Mac的Metal、PC的Vulkan、Xbox One和PS4。

我们为VR和MSAA加入了初步支持。UI经过更新后可以检视更多HDRP元素,包括:摄像机、光线、反射探针和材质。我们还加入了新光照模型,让开发者可以制作更复杂的材质。

请注意:新版本的HDRP模板使用HDRP 4.1.0版资源包。如果希望使用到本文介绍的功能,我们推荐在安装模板后将资源包升级为4.6.0版。

1、平台支持,性能和稳定性
Unity 2018.3增加了对Metal API和Vulkan API更好的支持,减少瑕疵并实现了更好的性能。透明对象的雾和贴花仍存在瑕疵,但总体体验已经有了显著提升。

HDRP为VR提供了初步支持,VR需要使用正向渲染模式,但仍不支持摄像机相关的渲染,目前光照和体积仍然存在问题。

通过结合VR和正向渲染,新版本加入了对MSAA的初步支持。除屏幕空间反射外,所有其它效果目前都使用MSAA,例如:SSAO,接触阴影。但是MSAA会为渲染增加额外开销,所以请应谨慎使用。

152728y8qw6adein6nwwzs.jpg.thumb152728xppicxpux9fpikfz.png.thumb.jpg

Unity 2018.3为PS4和XBox One提供了更好的HDRP体验。新版本可以使用异步计算管线执行多种效果,包括:屏幕空间环境遮蔽、屏幕空间反射、密度体积的体素化、光照剔除和材质分类,所有这些效果都可以与阴影渲染通道并行执行。

正向渲染路径通过使用“标量化”(Scalarization)技术得到了改进,这项技术特别用于主机平台使用的AMD GCN架构。

现在我们可以通过渲染管线设置(Render Pipeline Settings)更精细地控制构建版本中包含的着色器变体。如果将不会用到的变体排除掉,则可以大幅减少构建时间。同样的,更多着色器变体会移除掉。

2、改进的UI和摄像机控制
HDRP的UX已经简化,你现在可以通过FrameSettings进行更好的控制。由于FrameSettings现在支持和后期处理相同的重写系统,它可以继承RenderPipelineSettings的数值并重写它们。摄像机现在支持Unity内置渲染管线的物理摄像机参数化功能。

153353u8v08zh6zn6nqzpx.png.thumb.jpg

在光线和反射探针的检视窗口现在提供了高级设置的开关,因此UI不会混入许多默认参数。

3、改进的质量和当前功能的控制
体积雾渲染现在通过“深度合成”(Deep Compositing)技术得到了改进,该技术可以让你更好地结合与全局雾相互重叠的密度体积。

此外,体积雾现在可以在远距离以指数雾的形式减少,并且支持高度雾(Height Fog)的激活。体积和密度体积的参数化和控制现在对艺术家更为友好,体积体素的光照性能也得到了改进。

下图中来自定向光并带有阴影的体积效果,可以让你看到通过树木的光束。

153354z2e5s446v4bmkimn.png.thumb.jpg

阴影系统现在更稳定,并提供了更多控制。阴影共有三个质量等级:低级(Low),中级(Medium)和高级(High),三个等级对应不同的过滤算法,当前版本中为PCF和PCSS算法。

请注意:你只可以在使用正向渲染路径时,对不同质量模式间进行切换。延迟路径默认使用低质量,低质量目前是主机平台的默认模式。

具有阴影图集的阴影贴图的内存管理也得到了改进。现在屏幕上会有许多可见阴影的预算。此外,阴影框架可以根据距离调整阴影贴图的分辨率,如果没有合适空间,它还会自动调整阴影的大小,以适合阴影图集。这意味着阴影将一直显示,但在它们不适合阴影图集时,阴影的质量会降低。

现在可以独立于阴影贴图启用接触阴影。接触阴影支持定向光,点光源和聚光灯,但一次只可以使用一种光源,我们还改进了质量和性能。

下图为接触阴影启用在定向光时,场景外的效果。

153354g2wwjihwx30e2333.png.thumb.jpg

下图为接触阴影启用在定向光时,场景内的效果。

153355y6j533dznnn6t30t.jpg.thumb

为了帮助开发者调试阴影,我们还对渲染管线调试(Render Pipeline Debug)窗口加入了新的工具集。现在可以根据每个单独光照,阴影图集,每个阴影贴图的缩放系数,以及阴影蒙版来显示阴影。

我们通过通道选择遮罩(per-channel selection mask)来增强了贴花。使用该功能,你可以创建仅影响部分材质属性的贴花。例如:你可以制作贴花,使其仅修改材质和金属表面的法线属性或光滑度。

它提供二种模式:
a、BaseColor, Normal, Smoothness
b、BaseColor, Normal, Smoothness, Metal和AO(性能较高昂)

153355eowfgsnn388xrn94.png.thumb.jpg

我们改进了贴花的辅助图示,现在支持控制深度偏差和绘制顺序,下图是贴花在FPS示例项目中的运用。

153355raxff0rzgrharomx

通过使用正向渲染路径,贴花现在会正确地影响法线缓冲区,从而正确地影响屏幕空间反射。

我们对光照加入了额外的控制。例如:除了Candela和Lumen,光照现在支持EV100和Lux等物理单位。HDRI Sky可以使用Lux单位的数值。

对于定向光,你可以控制高光的形状,从而更好地模仿太阳光盘,点光源和聚光灯拥有更柔和的衰减效果。Light Explorer现在支持HDRP的所有光线类型。

4、对反射系统的改进
Unity 2018.3提供了屏幕空间反射(SSR)。通过使用该功能,你可以对每个光滑表面启用反射,粗糙表面会回退为常规的反射探针和平面反射。

你可以给材质添加标签,使其不接收屏幕空间反射。但要注意,在使用高分辨率时,该效果目前的性能消耗比较高昂。

如下图所示,左边是没有平面反射的场景;右边是具有平面反射的场景。请注意地板对天空的反射效果。

153355h6kvp8huvu7o9h86.jpg.thumb

新版本还引入了平面反射(Planar Reflection),你可以使用它在平面获取高质量的反射效果。平面探针组件的行为和反射探针组件一样,只不过前者会实时渲染。平面探针和反射探针拥有相同的控制功能集。

下图为Unity伦敦办公室项目中,反射的运用。

153356fpq0lpegyyiiv8jz

反射控制:反射探针和平面探针的UI已经更新,从而为艺术家提供更好的工作流程。你现在可以通过FrameSettings来控制实时反射的渲染效果。

5、和内置渲染管线等效的功能
通过使用光照分层功能,你可以标记光照和对象,使具有相同标签的对象只接收特定光源的光照,它也可以在内置渲染管道中使用。在HDRP中,光照架构是不同的,这需要对此功能进行改进。

新版本引入了光照图层,适用于精准光源,区域光,反射探针和平面探针。该功能的第一个版本支持31种光源。目前,它还未能正确处理阴影。

下图中的小龙有不同的光照图层标签。右边是点光源,左边是反射探针。最左边的小龙是蓝色,因为它的标签使它只受蓝光影响。右边第三只深灰色小龙不受到本地反射探针的影响,因为这不匹配其标签。

153356llvl8zl9o69yg221.png.thumb.jpg

地形是内置渲染管线中不兼容HDRP的功能。现在Unity 2018.3版本中加入了Terrain Lit着色器,可兼容内置地形系统。它在单次绘图调用中最多支持8个图层。

Terrain Lit着色器使用和Lit着色器相同的光照模型,但是只提供在LayeredLit着色器中的受限选项。请注意:目前Terrain Lit着色器不支持曲面细分和替换功能。

下图是Terrain Lit材质示例。

153356n7xqezbt7kfnqr7i.jpg.thumb

通过粒子系统支持在内置渲染管道中渲染粒子。在HDRP中,仅支持无光粒子系统着色器。为了在使用受光粒子并在GPU制作效果,新版本支持全新的Visual Effect Graph工具,它可以使用Lit着色器和其简化版,即Simple Lit着色器。简化版着色器为绘制大量受光粒子提供了更好的性能。

如下图所示,右侧的节点视图用于在Visual Effect Graph制作效果。左侧是得到的效果,该效果通过数百万个粒子创建,完全在GPU上运行。

153751bt111lrgtonglc1d.png.thumb.jpg

6、调试工具
调试工具始终很重要,因为它们能够让你跟踪问题并监视性能。新版本中,我们对渲染管线调试窗口(Render Pipeline Debug Windows)加入了一些调试改动:
a、显示单个阴影/阴影图集/阴影缩放系数
b、重写发射的颜色
c、屏幕空间反射调试模式
d、亮度计模式
e、根据类型禁用光照的功能
f、冻结摄像机剔除,以便开发者检查通过摄像机椎体剔除的对象
g、显示光照体积

下图为显示光线体积的示例,图中有一个聚光灯和多个点光源。

153751zq4qflkielwe9lgl.png.thumb.jpg

7、新着色器和Shader Graph着色器视图支持
HDRP现在支持Shader Graph着色器视图,这将成为未来开发的主要解决方案。Lit主节点提供Shader Graph版本和内置着色器版本,即Lit、LayeredLit和TerrainLit。其它所有着色器只提供Shader Graph版。以后的着色器也将通过Shader Graph着色器视图来创建。

PBR主节点基于Lit着色器。它使用和LWRP一样的受限功能集,因此你可以制作跨管线使用的资源。Unity 2018.3加入对贴花的支持,以及对PBR主节点的光照分层支持。

Lit着色器现在可以在Shader Graph着色器视图中使用。该着色器可以使用完整的功能集,包括:涂层遮罩、晕彩、透明度、次表面散射和各向异性。然而,它还未支持用于准确混合法线的表面梯度。此外,该版本Shader Graph着色器视图还不支持曲面细分。

请注意,风效果在内置Lit着色器已被禁用,它在Shader Graph着色器视图中启用。如果想模拟风或其它顶点动画,必须使用Shader Graph着色器视图。

下图是我们在使用Shader Graph着色器视图中的HDRP创作精美的资源的示例,该示例项目包含的一个盆景和蝴蝶大量使用了晕彩和半透明效果。后续我们将单独介绍该示例项目的实现以及提供项目下载。

153751y7dii0d8ned7xx70

我们还对Shader Graph着色器视图加入了Fabric(布料)着色器。使用它,你可以制作柔软外表的布料材质,并仿造纤维的散射效果。

Fabric主节点支持二个光照模型:CottonWool(棉毛)和Silk(丝绸),你可以使用二个模型实现各种布料。CottonWool的实现基于索尼图像工作室在Siggraph 2017.发布的最新研究成果,Silk光照模型基于GGX各向异性算法。

下图中,《Windup》项目中,小女孩的衣服使用了布料模型。该网格使用了法线贴图的组合,它能定义Shader Graph着色器视图中制作的衣服模式。

153752cffrl3zmoekek0zr.jpg.thumb

下图为Unity球体上展示的模型。

153752cw6ubcu66u75wwq6.png.thumb.jpg

StackLit着色器被添加到了Shader Graph着色器视图。请注意,由于在相同资源包加入了Shader Graph版,内置StackLit着色器已从4.4.0版资源包移除。

StackLit着色器是对Lit着色器的改进,它更注重质量而不是性能,因此StackLit着色器不适用于某些游戏。对比Lit着色器,StackLit着色器可以更精准地处理表面的涂层。

最后,StackLit着色器允许开发者无限制地混合所有功能。例如:你可以将各向异性和次表面散射,晕影和模糊参数化混合使用。

153752r6t6b6ipiu8lmlmy.png.thumb.jpg

移除MovieTexture功能
Unity 2018.3加入了更快的纹理更新,这有助于消除在主线程上传纹理所使用的时间,并减少在图形线程使用的时间。HoloLens和Windows等平台会得到更好的效果。

我们还加入了音频重采样功能,它允许用户修改视频速度,还能相应地改变音频速度并保持同步。

在Unity 2018.2中,我们开始移除旧MovieTexture功能。如果你的项目仍使用MovieTexture,你应该将项目升级为使用VideoPlayer功能。

由于VideoPlayer和MovieTexture有着本质的区别,可能无法提供自动升级工具。了解更多关于MovieTexture的弃用信息,请访问:
https://forum.unity.com/threads/ … deprecation.550714/

本文我们将介绍Unity 2018.3正式版中关于服务、开发套件、示例项目以及大家关心的Unity版本发布和选择,这也是最后一篇Unity 2018.3正式版功能介绍。

了解更多Unity 2018.3正式版功能:
1、Unity 2018.3正式版功能介绍(1):预制件及工作流程、编辑器、影视、世界构建功能和工具、地形系统、资源包管理器及Unity Hub
2、Unity 2018.3正式版功能介绍(2):引擎、2D、粒子、平台、DCC、TextMesh
3、Unity 2018.3正式版功能介绍(3):图形,包含:Visual Effect Graph、光照、GPU渐进式光照贴图、LWRP、HDRP

下载Unity 2018.3:
https://unity3d.com/get-unity/update

云诊断
Performance Reporting性能报告服务加入了很多新功能和更新,我们将该服务更名为Cloud Diagnostics云诊断,以便更好地说明该服务的功能。

Performance Reporting性能报告服务不再仅限于Unity Plus加强版和Unity Pro专业版用户使用,所有用户均可使用。了解详情,请阅读:性能报告服务正式更名为Cloud Diagnostics云诊断

现在使用Unity 2018.3构建的游戏所发送的报告可以包含调试日志和自定义元数据等信息,这些功能将帮助你了解提交报告时的具体情况。

230511a5yzcpi8yciiu2oz

我们还加入全新的报告类型,崩溃和异常报告都是由电脑自动生成,而用户报告可以让开发者收集真实用户的反馈。

用户可以提供屏幕截图,游戏存档和视频等有用信息,帮助开发者改善用户体验,所有报告都会在Unity的Developer Dashboard上收集和汇总。

如下图所示Developer Dashboard开发者控制面板会归纳用户生成的屏幕截图和反馈,以便开发者进行查看。

230511qimz8arebow1y8wz.png.thumb.jpg

联网游戏
随着UNET被弃用,我们开始提供全新多人游戏功能。全新的网络传输层正处于Alpha状态进行公开测试。它非常精简,针对Unity未来版本的ECS风格实现而开发。

目前,有二项重要的多人游戏服务目前处于Alpha封闭式测试。其中,游戏服务器托管(Game Hosting Servers)服务利用基于云的集群来运行游戏的Headless实例。

另外,Matchmaker服务不仅将玩家聚集起来,还能与游戏服务器托管服务结合使用,让你可以根据玩家的实时需求自动提升云的利用率。

如果想使用公开测试的联网游戏功能,请访问:
https://github.com/Unity-Technologies/multiplayer

如果对Alpha版封闭式测试感兴趣,申请地址:
https://create.unity3d.com/connectedgamesaccess

Project Tiny小游戏开发套件
Project Tiny是Unity的一个全新模块,提供了全新的运行时和编辑器模式,旨在构建可以即时加载而无需安装的游戏和体验。

Project Tiny为开发者提供了快速创建高质量2D小游戏和可玩式广告所需的工具,创建出的游戏安装包非常之小,可以在各种移动设备上快速启动。

110257aw37w4j14k1mgukg.png.thumb.jpg

Project Tiny通过名为“Tiny Mode”的资源包提供,安装时请打开Unity 2018.3的资源包管理器,选择Preview Packages,然后安装Tiny Mode。

所有Unity的用户都可以使用该资源包,你可以在下载完成的预览资源包中找到Project Tiny用户手册,API文档和示例项目。

了解更多详情及查看视频教程,请阅读:Unity 2018.3推出Project Tiny小游戏开发套件,或者访问Unity Solution网站:

http://unity3d.com/solutions/instant-games/2d-games-and-playables

Unity FPS示例项目
在今年10月Unite LA上,我们正式发布了FPS示例项目,这是一款第一人称多人射击游戏的演示项目。该项目旨在成为开发者的灵感源泉,你可以用它来学习Unity中的新功能。

105226n3f6locl2z2j136r.jpg.thumb

FPS示例项目由来自Unity研发部门核心内容团队的6位资深游戏开发者设计,使用着最前沿的新功能,我们计划持续更新该项目到Unity最新版本。

Unity FPS示例项目开发团队的核心原则是使游戏运行于原版Unity上。也就是说,它不需要使用自定义版本或Asset Store资源商店的插件资源包。

FPS示例项目包含所有素材内容,源代码,艺术资源和音效等内容,使用最新版Unity进行构建。FPS示例项目提供了一个很好的机会来检查Unity 2018.3功能的实际使用效果。

当然,你也可以使用整个项目作为自己开发在线射击游戏的框架或起点。而且由于所有资源在Unity Companion License许可下发布,这意味着你可以将其用于基于Unity的商业项目中。

Unity FPS示例开发团队计划持续更新该项目到Unity最新版本,并利用Unity的最新功能,以帮助我们收集反馈。

获取FPS示例项目,并查看Unity 2018.3功能的实际效果,请访问Github库下载FPS示例项目,并在项目自述文档找到使用指南。了解更多FPS示例项目,请阅读:Unity FPS示例项目介绍

[url=https://v.qq.com/x/page/m07701z9c8g.html%5Dhttps://v.qq.com/x/page/m07701z9c8g.html]观看FPS示例项目演示[/url]

Unity FPS示例项目下载地址:
https://github.com/Unity-Technologies/FPSSample

Unity 2018.3发行说明
Unity 2018.3正式版完整的发行说明包含45个功能,250项改进,以及1915个修复。如果想要查看所有细节。

了解详情,请查看Unity 2018.3发行说明:
https://unity3d.com/unity/whats-new/unity-2018.3.0

Unity TECH和LTS版本
我们在Unity全新的版本发布计划所介绍的,以及此前在GDC的宣布内容,Unity将发布Unity TECH技术前瞻版本和Unity LTS稳定支持版本。

Unity TECH版本包含所有最新功能,每年将有三次主要更新。今年的Unity TECH版是Unity 2018.1,Unity 2018.2和Unity 2018.3,以上版本都加入了全新的功能与特性。

230512n8xqtzctotcnqzp3.png.thumb.jpg

Unity 2018.3是Unity 2018.x TECH版本周期的最后一个版本,当新的Unity TECH版本上线时,即Unity 2019.1,Unity 2018.3将成为LTS版本,并改为新的版本号,即Unity 2018.4,这标志着长达二年的Unity 2018.4支持的开始。

和Unity TECH版本不同,Unity LTS版本将不会有任何新功能,API变更或改进。Unity LTS版本会用于解决崩溃,回归测试和对修复来自开发者反馈的问题,以及针对主机的SDK/XDK,或者任何会对大多数人发布游戏产生阻碍的重大改变。

Unity TECH版本每周都会得到Bug修复与更新,而Unity LTS版本的Bug修复将会每二周一次进行定期发布。

因此,Unity LTS版本适用于希望继续开发和发布已有游戏或内容的用户,以及那些想要长时间保持使用一个稳定版本的用户。Unity TECH版本适用想要了解或者使用最新版Unity提供新功能的用户。

加入Unity 2019.1 Alpha测试
在过去,Unity开发周期的Alpha阶段版本一直处于封闭状态, 从Unity 2019.1a开始,我们会把全新的Alpha版Unity提供给所有用户。

虽然该版本可能比Beta版更容易遇到Bug,但作为Alpha版用户,你将能更快体验新功能,测试新版本对自己项目的兼容性,提供反馈以便Unity更快地修复这些问题。

作为Alpha版用户,你还可以与Unity的专家进行交流,和Unity社区的资深成员分享自己的看法,并通过调查,反馈和受邀参加用户圆桌会议的机会来影响Unity的未来。

Unity 2019.1 Alpha版的迭代更新以每周一次的频率发布,在此期间,我们会不断加入新功能,直到包含Unity 2019.1开发计划中的所有主要内容,Alpha版将转变为Beta版。

如果你希望收到包含Unity 2019相关新闻、更新、提示和技巧的邮件,你可以访问本文英文原文下方进行注册。

下载Unity 2019.1a:
https://unity3d.com/beta/2019.1

注册地址:
https://blogs.unity3d.com/cn/2018/12/13/introducing-unity-2018-3/

小结
Unity 2018.3正式版功能介绍,终于在2018年最后一周给大家介绍完毕,让我们等待2019年的到来,相信Unity 2018.4LTS和Unity 2019.1 Beta很快会和大家见面了。

P.S:Unity 2018.3正式版新功能和改进非常多,介绍文章真的非常长,超过了二万余字,小编非常感谢能够完整阅读本系列文章的所有用户