怎么为自己开发的游戏制作音效(来源知乎)

经历过几个游戏的音效制作过程,下面是一些经验谈,

音效要达到何种效果取决于2个方面:需求和资源(包括预算和制作能力)。

如果需求简单,要求不高,没有预算,只是自娱自乐,自己去网上或游戏扒就OK

如果对自己的产品有要求,有预算,但团队没有音效制作的经验和能力,建议外包,省钱省时间,缺点是沟通成本高,需要磨合;

 

如果对自己的产品有要求,有预算,有一定的音效制作能力或兴趣,想自己尝试解决音效问题,可以继续向下看(需要积累,最可控)

先交待一下整个流程,大概分为5个步骤,分别是1-需求,2-动画与场景准备,3-素材收集,4-音效编辑,5-输出

d5422b50baec48d566dae4e77a50aad7_r

1-需求

这个环节基本是个填表的过程,考虑到项目的整体过程,所以在需求阶段,需要为后续工作做一些统筹和规范。

可以设计一个叫音效需求模版。xlsx的文件,表格的字段如下:42142983a89e7f91b01406e4ac5bb845_r

 

注意字段前面的1,2,3,4,5还有颜色,和整个流程的序号和颜色保持一致,当我们进行到不同的阶段,会不断完善这个表格,最终完成的时候,这个表格会包含整个音效产生过程的相关文件的路径信息,方便你进行管理。

音效需求表字段

1-音效名称

1-音效用途与使用场景

1-效果描述

1-独立播放或循环

2-对应动画文件路径

2-时长

3-素材目录

4-编辑源文件路径

4-开发用文件名

4-高品质文件名与路径

5-使用输出文件名与路径

需要明确⼀一点,开始写需求的时候,只填写“1-”对应的字段即可;另外,别指望⼀一下就能百分百 ⽆无误的把所有需求罗列列出来,以尽可能详细的罗列列出所有需要添加⾳音效的地⽅方,后续增删改即 可。

1-需求部分完成后,我们就得到了了⼀一个填写了了1⼩小半的excel表格,对项⽬目需要制作⾳音频的数量量,规 模有了了初步的概念。

2-动画与场景准备
这个过程,需要整理理出需要配⾳音效的视频。 好的⾳音效需要和动作过程同步,在⾳音效编辑的时候,例例如Audition,你可以把视频⽂文件拖拽到1个 ⾳音轨上(⼀一个多轨只能有⼀一个视频),这样可以精确的进⾏行行声画同步操作。

可以在⼀一个视频,录制多个不不同的过程。

在这个过程准备中,可以把需求表格“2-”的部分填写完成,包括视频的路路径和⽂文件名,需要制作 的⾳音效的⼤大致⻓长度。

422589e2aea21b7e9aaabc998c8eacac_r

视频置⼊入后,可以给需要配⾳音的地⽅方添加标记并命名(快捷键是 m),这样你就不不⽤用每次都来回 滚动视频找⾳音频起点了了。

这个过程要提醒你,要开始着⼿手管理理好⾳音频⼯工程的⽂文件⽬目录,在⾳音频项⽬目下⾯面,建⽴立⼀一个视频⽬目 录,对视频⽂文件进⾏行行集中管理理,记得在表格⾥里里填写对应⾳音效的视频⽂文件的路路径和⽂文件名。顺⼿手做 的事情,在项⽬目真的开始进⼊入编辑环节的时候,会提⾼高很多效率。

3-素材收集素材收集是个相对关键的环节,也是需要创造和想像⼒力力的环节。如果需要规避版权问题,可以直 接去卖⾳音效素材的⽹网站搜索,这样效率相对⾼高些,不不过好的素材⼤大多都在国外……

素材收集的⾸首要原则就是:素材品质⼀一定要⾼高,尽可能的⾼高!很多扒来的素材,通常都经过严重 的压缩,糟糕的素材会导致你编辑的时候困难重重(很难获得完美效果)。这个过程好像找图⽚片 素材的时候,尽量量避免那些⼩小尺⼨寸的jpg或gif(压糊了了或⾊色彩损失巨⼤大),去找那些⼤大尺⼨寸的PSD、TIFF、AI这样的源⽂文件⼀一样。

在线搜索素材

下⾯面举个通过⽹网站寻找素材的栗栗⼦子,我常⽤用的audiojungle
audiojungle.net/categor…在这⾥里里找⾳音效,考验你英⽂文关键字的把握能⼒力力,多尝试吧,⽐比如搜索magic flash,如果英⽂文不不 佳,果断⽤用各种翻译软件帮你找关键字。 寻找合适的⾳音效,本身就是⼀一个探索和尝试的过程,需要⼤大量量的时间~~~

25f28dd1a5a3404e1b72b490c14d4970_r

出来数百个,挨个听下去吧,如果遇到感觉靠谱的,可以先别急着购买(这个过程你还不不能确定 是否最终要⽤用),可以先下载预览版本:

511a14557e8d3351e3d7123d2fda8a4b_hd

点击后可以获得⼀一个preview.mp3的预览版⽂文件,不不过这个素材通常会有⼀一个⼈人声的⽔水印。把这个mp3修改⽂文件名(按⾃自⼰己的习惯取吧),放⼊入素材⽬目录下(否则后⾯面所有下载的预览⽂文件都是这 个名),记得把这个素材的链接先记录到表格“3-素材⽬目录”⾥里里,相信我,当你真的需要这个⾳音效 的正式版的时候,如果没有链接,会哭的。

通常,⼀一个⾳音效,通常会找出多个素材作为备选。 另外,别期望⼀一下就找到完全合适的,你可能需要多个⾳音效进⾏行行组合编辑,才能达到满意的效果。

我通常会把这个素材在Audition做⼀一下去⼈人声⽔水印,去⽔水印会进⼀一步损失⾳音频质量量,但可以在⾳音效 的初期编辑的时候,帮你决定这个素材是否合适(动作节奏,效果等)。

如果最终决定要⽤用这个素材,可以在右侧购买。付款后,你可以获得下载⾼高质量量版本素材压缩包 的链接,并且还可以选择下载授权⽂文件。
下⾯面是⼀一个⾳音效素材的示例例⽂文件截图:

443a72cd01b16c0874f1d530502db74b_hd

压缩包展开后,通常会有⼀一个wav⽂文件和MP3⽂文件(不不同制作者提交的⽂文件内容可能会有所不不 同,有些⾳音效可能包括多个不不同的⾳音效⽂文件,会分别在包⾥里里提供)。这个138K的wav就是可以⽤用 来进⾏行行最终编辑的⽂文件。

65273b7221c164c2ad1401d77c9cdb46_r

⾳音效素材库

有很多⾳音效素材库,按题材分类,通常都是数G规模的容量量,⾥里里⾯面会提供⾼高品质的wav格式的素 材,⼿手头有个100G+的⾼高品质⾳音效库后,就可以⽐比较蛋定的⾯面对各种题材的需求了了。 素材库⾥里里找到合适的,记得复制到⾃自⼰己⼯工程的素材⽬目录下,不不要把原⽂文件拖⾛走喽。

创作或录制

对⾳音效的终极追求,就是⾃自⼰己创作或录制了了,这⾥里里本⼈人⾮非专业⼈人⼠士,所以不不在多说了了,⾳音效创作 的⼯工具很多,每个宿主软件都博⼤大精深,有兴趣的⾃自⼰己去找把,要录⾳音的话,⽔水也相当深……

如果有需要找外包录制⼈人声,记得要求对⽅方提供⽆无混响的单声道⼲干声录⾳音⽂文件,这样你在后期编 辑的时候,有⾜足够的调整空间。

这个环节结束后,你的表格应该填了了⼀一⼤大半,然后⼯工程⽬目录下,塞满了了各种素材⽂文件,料料备⻬齐 了了,可以开始炒菜了了。

4-⾳音效编辑这个环节是整个流程的核⼼心,本身就是⼀一个创作过程,对于剪辑型的⾳音效编辑,Audition这样的软 件就可以了了,最好在配合Waves插件,基本上就可以应付绝⼤大多数需求了了。 但如果要创作⾳音效,最好再精修⼀一⻔门⾳音频宿主软件,如Logic 、Cubase、FL Studio等。 ⾄至于Audition和Waves的⽤用法就不不在这⾥里里介绍了了,⼤大把教程。 ⼯工作过程基本就是结合视频,把找来的⾳音频素材拖到不不同⾳音轨上,裁剪,调整⻓长度,加混响,压 缩,调整EQ……直到合成的⾳音效和画⾯面完美配合,最终输出⾼高质量量的wav⽂文件。

编辑过程中要时刻注意合成⾳音效的电平指标,别爆了了,也别太⼩小,最好项⽬目初期,就定下⼀一个合 适电平标准,确保输出的⾳音效(具体多少,可以⾃自⼰己尝试),统⼀一在设定的电平阀值内,否则最 终⼏几⼗十个⾳音效输出的时候,电平不不⻬齐,声⾳音强弱不不⼀一,再来调⼀一遍很痛苦的。 如下图,是Audition的编辑环境,可以在电平处开启静态峰值,这样可以帮你查看电平最⾼高的点。

f168ea6b2842635afbe7e65ff18ad757_hd-2

0a0a395e6097b94ca7ccb3908987f35d_hd

编辑好的⾳音效,输出⾼高品质的wav作为原始⽂文件,记得这个⽂文件要按照⼯工程规范的⽂文件名命名(如何命名,可以和开发⼈人员把规范确定)!这样你最后输出压缩⾳音频⽂文件的时候,可以批量量进 ⾏行行,直接批量量导出开发要的的mp3,ogg等格式⽂文件,甚⾄至在对包进⾏行行减肥的时候,批量量进⾏行行调 整。

最后记得填表!

4-编辑源⽂文件路路径4-开发⽤用⽂文件名4-⾼高品质⽂文件名与路路径

现在,你⼿手头有了了⼀一堆⾼高品质的成品wav了了。

5-输出
这步的终极⽬目标,就是要导出给开发使⽤用的最终⾳音效⽂文件。 在Audition的“/编辑/批处理理”下,可以把所有⾳音频⼀一股脑丢进去,⾄至于输出是mp3还是ogg还是其 他,和开发商量量吧,输出的品质视包的⼤大⼩小要求,这是⼀一个品质和⼤大⼩小的平衡问题,每个项⽬目有 ⾃自⼰己的平衡点,需要⾃自⼰己把握。

压得太狠会让⽂文件⼤大幅降低,但声⾳音的损失会很⼤大。压得⼿手软点,⽂文件会变得⽐比较⼤大,⾃自⼰己去 听,去试吧。
祝愿⼤大家都能作出⾃自⼰己满意的⾳音效。

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

[Unity2018.2]ShaderGraph更新详解

在2018.1中,Shader Graph作为Unity的新功能,以预览版的形式呈现。通过ShaderGraph可以直观地构建着色器。可以在图形界面中创建和连接节点,而不需要编写代码。图中的每个节点都可以对更改即时反馈,大大降低了编写着色器的门槛。

Unity2018.2也对ShaderGraph(3.0.0)进行了很多优化和改进,包括:

高清渲染管道(HDRP)支持

Shader Graph现在支持PBR和Unlit主节点的HDRP。使用ShaderGraph构建的着色器可与LWRP和HDRP一起使用。

78733-67e49237a3b7ab47

顶点位置

现在可以通过PBR和Unlit主节点上的Position栏位修改顶点位置。默认情况下,此节点的输入是对象空间位置。此栏位应该输入给定顶点的绝对本地位置。某些节点(例如程序形状Procedural Shapes)在顶点着色器中不可行。此类节点与此栏位不兼容。

78733-ec325bc6a339f7fc

主节点设置

主节点的设置现在可在一个小窗口中使用,可以打开和关闭该窗口来更改着色器的各种渲染设置。

78733-8d4987e9c130319b

属性引用名称和公开状态

现在可以编辑属性的引用名称,从而更容易从脚本引用着色器属性。选择属性并在Reference旁边设置新名称。如果要重置为默认名称,请右键单击Reference,然后选择 Reset Reference。

在属性窗口中,现在还可以切换Exposed复选框,来设置属性是否公开。

78733-60ab6c0df0cb46ef

可编辑路径

现在可以更改着色器图和子图的路径。更改着色器图形的路径时,将修改其在着色器选择列表中的位置。更改子图的路径时,它将在节点创建菜单中具有不同的位置。

78733-0d34c561102cc8a8

78733-6f7d4592ce0f2d9f

Is FrontFace节点

78733-e138173e6940349e

使用此节点,你可以根据给定片段的朝向标识更改图形输出。如果当前片段是正面的一部分,则节点返回True。对于背面,节点返回False。注意:此功能需要在主节点上启用双面。

渐变节点

78733-35ef423a3d9927e2

通过两个新节点添加了渐变功能。Sample Gradient节点使用给定的Time参数对渐变进行采样。您可以在渐变栏位控件视图上定义此渐变。Gradient Asset节点定义了一个渐变,可以使用不同的时间参数对多个Sample Gradient节点进行采样。

Texture3D和Texture2D数组

78733-aa69f3dabdff605b

通过两个新属性类型和四个新节点扩展了Unity对Texture类型的支持。可以在着色器图中定义和采样Texture 3D和Texture 2D Array类型资源。

Texture2D LOD节点

这个新节点为Texture 2D Sample添加了LOD功能。Sample Texture 2D LOD使用与Sample Texture 2D相同的输入和输出栏,但包括通过Vector1输入参数调整细节级别的输入。

显示生成的代码

78733-641f0ee1839d4155

现在可以看到任何特定节点的生成代码。右键单击该节点,然后选择Show Generated Code。代码段将在Unity的代码编辑器中打开。