6. 特效属性
特效¶
在VRP Quantum编辑器中,场景特效主要用来模拟自然状态下场景周围的环境因素,让整个场景更加丰富和真实。场景特效包括雾效、LOD、粒子、后处理、天空盒、水面和气象。
属性列表¶
一、雾效¶
在VR场景中,除了应用天空盒和太阳光晕来烘托场景的气氛外,还可以为VR场景添加雾效,以模拟大自然中的雾效。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
启用 | enabled | boolean | true、false | 勾选后即可开启雾效特效。 |
雾浓度 | concentration | number | 可调节雾的浓度。 | |
雾高度 | height | number | 可调节雾相对于水平面的高度。 | |
雾颜色 | color | object | {r:1,g:1,b:1,a:1} | 可修改雾的颜色。 |
衰减系数 | attenuation | number | 可调节雾的衰减系数。用于雾浓度调节的补充。 | |
体积光 | volumetricLightEnabled | boolean | true、false | 支持开启体积光。 |
光晕外轮廓 | extinctionCoef | number | 开启体积光后,可调节体积光光晕外轮廓。 | |
光晕内轮廓 | scatteringCoef | number | 开启体积光后,可调节体积光光晕内轮廓。 | |
体积光精度 | samplingCount | number | 开启体积光后,可调节体积光精度。 | |
体积光增强 | enhancedLevel | number | 开启体积光后,可调节体积光增强。 |
二、粒子¶
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
形状 | shape | number | 0、1、2、3、4 | 支持修改粒子的形状。包括球形、半球形、圆圈形、圆盘形和矩形。 0=球形,1=半球形,2=圆圈形,3=圆盘形,4=矩形。 |
方向 | direction | number | 0、1 | 支持修改粒子运动的方向。 0=向上, 1=向外。 |
每秒粒子数 | particlesPerSecond | number | 支持修改每秒粒子数。 | |
时间缩放 | timeScale | number | 支持修改时间缩放。 | |
重力 | gravity | number | 支持修改重力。 | |
生命周期 | lifeSpan | object | {x:2,y:5} | 生命周期参数控制了粒子从发射到消失的时间。 |
曲线坐标 | curvePos | number | 坐标曲线或者位置变化曲线,该参数可控制粒子的运动轨迹。 | |
曲线缩放 | curveScale | number | 坐标曲线或者位置变化曲线,该参数可控制粒子的运动轨迹。 | |
曲线混合 | curveBlend | number | 即颜色混合曲线,该参数控制粒子颜色的混合。 | |
颜色 | color | array | [{r:1,g:1,b:1,a:1},{r:1,g:1,b:1,a:1},{r:1,g:1,b:1,a:1},{r:1,g:1,b:1,a:1}] | 支持修改粒子的颜色。可设置开始、过渡和结束颜色,控制了粒子从出生到结束的颜色变化,包括透明度,共5个颜色。 |
纹理 | map | string | 支持修改粒子的纹理。 |
三、后处理¶
1.SSR¶
屏幕空间反射(Scene Space Reflection,SSR):可改变场景视图内材质表面反射的效果。此处控制整体场景的屏幕空间反射。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
厚度测试阈值 | zThickThreshold | number | 0.01~0.8 | 支持修改厚度测试阈值,该值可调整反射细节的显示程度。 一般来说,值越高,反射细节越多,但过高值也可能导致瑕疵,因此用户可根据场景需要设定合适值。 |
2.景深¶
景深特效在人眼跟光学摄像设备上很常见。是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。可以简单的理解为,相机视点位置附近画面显示清晰,而视点位置附近以外的位置则画面模糊。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
聚焦点距离 | point | number | 0.1~1000 | 可调节聚焦点距离,调节该参数可以设置景深最远点与最近点之间的距离。 |
聚焦宽度 | length | number | 1~10 | 可调节聚焦宽度。 |
聚焦衰减距离 | attenuationDistance | number | 1~5 | 可调节聚焦衰减距离。 |
模糊次数 | DOFBlurTimes | number | 1~16 | 可调节模糊次数。该参数控制了背景模糊程度。 |
模糊扩散程度 | DOFBlurSpread | number | 1~5 | 可调节模糊扩散程度。该参数控制模糊状态下物体颜色向周围侵染程度。 |
3.色彩校正¶
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
色彩调节 | colorGrading | number | 0、1、2、3、4 | 色彩调节预设,默认模式为0即没有进行色彩调节,有½/¾四种不同模式。 |
亮度 | brightness | number | 支持调节亮度,通过调节该参数可控制画面的明亮程度。 | |
对比度 | contrast | number | 支持调节对比度。 | |
图像抖动 | imageDither | boolean | true、false | 支持开启图像抖动,常用于减轻HDR颜色之间的过渡。 |
伽玛校正 | gammaCorrect | boolean | true、false | 又叫伽马非线性化或伽马编码,是用来针对影片或是影像系统里对于光线的辉度或是三色刺激值所进行非线性的运算或反运算。 |
ACES色调映射 | acesToneMap | boolean | true、false | ACES是一种色彩系统,旨在标准化从各种输入源(胶片,CG等)管理色彩的方式, 该参数可使场景获得电影效果的观感,它比中性色的对比度更高,并且对实际颜色的色调和饱和度有影响。 |
4.环境光¶
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
环境光遮蔽 | SSAOEnabled | boolean | true、false | 支持开启环境光遮蔽。环境光遮蔽(Ambient Occlusion,AO),描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果。 |
SSAO强度 | SSAOPower | number | 0~1 | 可调节SSAO强度。SSAO(Screen Space Ambient Occlusion,屏幕空间环境光遮蔽),可以在实时运行的条件下较为逼真的模拟全局光照的渲染效果。 |
SSAO半径 | SSAORadius | number | 可调节AO半径。半径越大,参与AO计算的范围越大。 | |
SSDO | SSDOEnabled | boolean | true、false | 支持开启SSDO。 SSDO(Screen Space Directional Occlusion,屏幕空间定向遮蔽)开启后,环境明暗对比更加明显,物体空间感更加强烈。 |
5.全屏泛光¶
使用全屏泛光效果后,画面的对比会得到增强,亮的地方曝光也会得到加强,画面也会呈现一种朦胧,梦幻的效果。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
阈值 | threshold | number | 用于控制全屏泛光的强度。 | |
软阈值 | softThreshold | number | 用于控制全屏泛光的强度。 | |
模糊次数 | iterator | number | 0~4 | 可设置模糊次数,设置值越高,效果越明显。 |
抗闪烁 | antiFlicker | boolean | true、false | 用于消除相机移动时的全屏泛光的闪烁。 |
6.抗锯齿¶
抗锯齿:抗锯齿(Anti-aliasing),由于在3D图像中,受分辨率的制约,物体边缘总会或多或少的呈现三角形的锯齿,而抗锯齿就是指对图像边缘进行柔化处理,使图像边缘看起来更平滑,更接近实物的物体。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
抗锯齿模式 | AAmode | number | 0、1、2、3 | FXAA:快速近似抗锯齿(Fast Approximate Anti-Aliasing),是一种典型的边缘检查取样操作。 TAA:是一种更先进的抗锯齿技术,它可以将过去的几帧存储在历史缓冲区中,用于更有效的平滑边缘。 FXAA&TAA:FXAA和TAA两种模式都起作用。 None=0,FXAA=1,TAA=2,FXAA&TAA=3 |
7.全局光照¶
全局光照(Global Illumination,简称 GI),是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
更新全局光照 | updateGIEnabled | boolean | true、false | 设置是否进行全局光照的静态烘焙。默认开启,此时GI每帧都会更新; 若不开启,只在初始化时计算一次体素,相当于静态GI烘焙。 |
GI强度 | strength | number | 0.01~10 | 可调节全局光照的强度。 |
AO衰减 | attenuation | number | 1~2000 | 调节AO的细节表现。 |
AO透明度 | alpha | number | 0~1 | 调节AO的细节表现。 |
采样系数 | samplingFactor | number | 0.5~0.7 | 改变全局光照采样的步径距离。 |
天光范围 | skyFallOff | number | 0.1~1000 | 可调节天光范围。天光指用以模拟(天空)日光照射效果的灯光。 该参数的设置可参考GI box范围,一般范围越大,该参数值设置得越高。 |
光照范围 | range | string | 可选择光照范围。 |
8.阳光射线¶
阳光射线特效用于模拟亮度很高的光源被物体遮挡时所产生的径向光线散射效果,合理运用该特效能有效的提升游戏画面的真实感,例如透过密林向太阳的方向看,光线会透过树的枝叶产生一束束类似体积光的效果。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
光线半径 | radius | number | 0~0.5 | 可调节光线半径。 |
亮度阈值 | GRThreshold | number | 0~1.4 | 可设置亮度阈值。该值设置得越高,过滤的亮度越多,光线散射范围越小; 设置的越低,过滤的值越少,光线散射范围越大。 |
四、天空盒¶
在VRP Quantum中,无论是制作室内的场景还是室外的场景,很多时候需要利用天空盒来烘托整个场景,让天空盒来作为场景的环境和背景,这样,制作的场景和环境就可以融为一体,表现更加真实逼真的效果。
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
辐照度图 | irradianceMap | string | 支持更换辐照度图。 | |
环境贴图 | ambientMap | string | 支持更换环境贴图。 | |
月亮贴图 | moonMap | string | 支持更换月亮贴图。 | |
大气渲染 | rendered | boolean | true、false | 可选择是否开启大气渲染。 |
大气高度 | airHeight | number | 可调节大气高度。 | |
卷云密度 | cirrusDensity | number | 0~1 | 可调节卷云密度。 |
积云密度 | cumulusDensity | number | 0~1 | 可调节积云密度。 |
云层速度 | speed | number | 0.01~1 | 可调节云层速度。 |
云层高度 | cloudHeight | number | 0.01~1 | 可调节云层高度。 |
太阳尺寸 | size | number | 0~10 | 可调节太阳尺寸。 |
漫反射强度 | diffuseIntensity | number | 0~1 | 可调节天光漫反射强度。 |
镜面反射强度 | specularIntensity | number | 0~1 | 可调节天光镜面反射强度。 |
开启天光颜色 | skyColorEnabled | boolean | true、false | 可选择是否开启天光颜色。 |
天光颜色 | color | object | { r: 1, g: 1, b: 1, a: 1 } | 可调节天光颜色。 |
五、水面¶
属性 | 属性名 | 类型 | 默认值/可选值 | 说明 |
---|---|---|---|---|
水面颜色 | color | object | { r: 1, g: 1, b: 1, a: 1 } | 可调节水面颜色。 |
水流速度 | speed | object | { x: 0.029, y: 0.03 } | 可调节水流速度,即UV动画的速度。 |
水面UV重复 | repeatUV | object | { x: 10, y: 10 } | 可调节水面UV重复。 |
反射模糊次数 | blurTimes | number | 1~8 | 可调节反射模糊次数。 |
反射模糊扩散 | blurSpread | number | 1~3 | 可调节反射模糊扩散。 |
叠加物体折射 | refrationEnabled | boolean | true、false | 可选择是否开启叠加物体折射。 |
菲涅尔缩放值 | fresnelScale | number | ||
菲涅尔基础值 | fresnelBase | number | 当设置的基础值越小时,水面的反射较小,能清晰的看到水底; 基础值越高时,水面的反射越强,倒影越清晰 | |
菲涅尔强度值 | fresnelPower | number | ||
法线反射扰动 | distortion | number | 0~100 | 可调节法线反射扰动,该值设置得越高,水面波浪越大。 |
天空盒雾效 | skyBoxFog | boolean | true、false | 可选择是否开启天空盒雾效,开启后水面可以反射雾效。 |
示例代码¶
// 是否打开景深|PEEnabled
postprocessing.PEEnabled = true;
// 修改聚焦点距离|point
postprocessing.point = 5;
// 修改聚焦宽度|length
postprocessing.length = 2;
// 修改聚焦衰减距离|attenuationDistance
postprocessing.attenuationDistance = 2;
// 修改模糊次数|DOFBlurTimes
postprocessing.DOFBlurTimes = 8;
// 修改模糊扩散程度|DOFBlurSpread
postprocessing.DOFBlurSpread = 1.5f;
示例案例¶
// 1-天空盒
SkyBox_Demo(){
// 获取Untitled*
Actor actor = VrpCoreScene.SceneManager.singleton.Find("Untitled*");
// 获取天空盒组件
SkyBox skybox = actor.GetComponent<SkyBox>();
// 选择辐照度图|irradianceMap
skybox.irradianceMap = "";
// 选择环境贴图|ambientMap
skybox.ambientMap = "";
// 选择月亮贴图|moonMap
skybox.moonMap = "";
// 是否打开大气渲染|rendered
skybox.rendered = true;
// 修改大气高度|airHeight
skybox.airHeight = 16;
// 修改卷云密度|cirrusDensity 范围:0~1
skybox.cirrusDensity = 0.4f;
// 修改积云密度|cumulusDensity 范围:0~1
skybox.cumulusDensity = 0.67f;
// 修改云层速度|speed 范围:0.01~1
skybox.speed = 0.38f;
// 修改云层高度|cloudHeight 范围:0.01~1
skybox.cloudHeight = 0.68f;
// 修改太阳尺寸|size 范围:0~10
skybox.size = 4;
// 修改漫反射强度|diffuseIntensity 范围:0~1
skybox.diffuseIntensity = 1;
// 修改镜面反射强度|specularIntensity 范围:0~1
skybox.specularIntensity = 0.79f;
// 是否开启天光颜色|skyColorEnabled
skybox.skyColorEnabled = false;
// 修改天光颜色|color
skybox.color =new Color(1,1,1,1);
}
// 2-后处理
PostProcessing_Demo(){
// 获取Untitled*
Actor actor = VrpCoreScene.SceneManager.singleton.Find("Untitled*");
// 获取后处理组件
PostProcessingComponent postprocessing = actor.GetComponent<PostProcessingComponent>();
// 景深
// 是否打开景深|PEEnabled
postprocessing.PEEnabled = true;
// 修改聚焦点距离|point 范围:0.1~1000
postprocessing.point = 5;
// 修改聚焦宽度|length 范围:1~10
postprocessing.length = 2;
// 修改聚焦衰减距离|attenuationDistance 范围:1~5
postprocessing.attenuationDistance = 2;
// 修改模糊次数|DOFBlurTimes 范围:1~16
postprocessing.DOFBlurTimes = 8;
// 修改模糊扩散程度|DOFBlurSpread 范围:1~5
postprocessing.DOFBlurSpread = 1.5f;
// 色彩校正
// 选择色彩调节|colorGrading 可选value为0~4
postprocessing.colorGrading = 0;
// 修改亮度|brightness
postprocessing.brightness = 1.2f;
// 修改饱和度|saturation
postprocessing.saturation = 0.5f;
// 修改对比度|contrast
postprocessing.contrast = 0.8f;
// 是否打开图像抖动|imageDither
postprocessing.imageDither = false;
// 是否打开伽马校正|gammaCorrect
postprocessing.gammaCorrect = true;
// 是否打开ACES色调映射|acesToneMap
postprocessing.acesToneMap = true;
// 环境光
// 是否打开环境光遮蔽|SSAOEnabled
postprocessing.SSAOEnabled = true;
// 修改SSAO强度|SSAOPower 范围:0~1
postprocessing.SSAOPower = 1;
// 修改SSAO半径|SSAORadius
postprocessing.SSAORadius = 1.5f;
// 是否打开SSDO|SSDOEnabled
postprocessing.SSDOEnabled = false;
// 全局泛光
// 是否打开全屏泛光|enableBloom
postprocessing.enableBloom = true;
// 修改阈值|threshold
postprocessing.threshold = 1.22f;
// 修改软阈值|softThreshold
postprocessing.softThreshold = 0.45f;
// 修改模糊次数|iterator 范围:0~4
postprocessing.iterator = 2;
// 是否打开抗闪烁|antiFlicker
postprocessing.antiFlicker = true;
// 修改采样缩放|sampleScale
postprocessing.sampleScale = 1;
// 抗锯齿
// 选择抗锯齿模式|AAmode 可选value为0~3 即 None=0,FXAA=1,TAA=2,FXAA&TAA=3
postprocessing.AAMode = 1;
// 全局光照
// 是否启用全局光照|GIEnabled
postprocessing.GIEnabled = false;
// 是否更新全局光照|updateGIEnabled
postprocessing.updateGIEnabled = true;
// 修改GI强度|strength 范围:0.01~10
postprocessing.strength = 0.2f;
// 修改AO衰减|attenuation 范围:1~2000
postprocessing.attenuation = 800;
// 修改AO透明度|alpha 范围:0~1
postprocessing.alpha = 0.171f;
// 修改采样系数|samplingFactor 范围:0.5~0.7
postprocessing.samplingFactor = 0.5f;
// 修改天光范围|skyFallOff 范围:0.1~1000
postprocessing.skyFallOff = 3.2f;
// 选择光照范围|range
postprocessing.range = "";
// 阳光射线
// 是否启用|godRayEnabled
postprocessing.godRayEnabled = false;
// 修改光线半径|radius 范围:0~0.5
postprocessing.radius = 3.8f;
// 修改亮度阈值|GRThreshold 范围:0~1.4
postprocessing.GRThreshold = 0.9f;
}
// 3-雾效
Fog_Demo(){
// 获取Untitled*
Actor actor = VrpCoreScene.SceneManager.singleton.Find("Untitled*");
// 获取雾效组件
FullScreenFogEffect fog = actor.GetComponent<FullScreenFogEffect>();
// 是否启用|enabled
fog.enabled = true;
// 修改雾浓度|concentration
fog.concentration = 10;
// 修改雾高度|height
fog.height = 30;
// 修改雾颜色|color
fog.color = new Color(1,0,1,1);
// 修改衰减系数|attenuation
fog.attenuation = 0.5f;
// 体积光
// 是否打开体积光|volumetricLightEnabled
fog.volumetricLightEnabled = true;
// 修改光晕外轮廓|extinctionCoef
fog.extinctionCoef = 0.03f;
// 修改光晕内轮廓|scatteringCoef
fog.scatteringCoef = 0.009f;
// 修改体积光精度|samplingCount
fog.samplingCount = 50;
// 修改体积光增强|enhancedLevel
fog.enhancedLevel = 3;
}
// 4-气象
Weather_Demo(){
// 获取name为下雪天的三维物体-空物体
Actor weather_actor = VrpCoreScene.SceneManager.singleton.Find("下雪天");
// 修改位置、旋转、缩放
weather_actor.localPosition = new Vector3(0, 200, 0);
weather_actor.localEulerAngles = Vector3.zero;
weather_actor.localScale = Vector3.one;
// 添加气象组件
weather_actor.AddComponent("WeatherComponent");
// 获取气象组件
WeatherComponent weather = weather_actor.GetComponent("WeatherComponent");
// 是否启用|enabled
weather.enabled = true;
// 选择天气模式|mode 可选值为0/1 即 晴天=0,雪天=1
weather.mode = 1;
}
// 5-水面
Water_Demo(){
// 获取name为水面的三维物体-平面
Actor water_actor = VrpCoreScene.SceneManager.singleton.Find("水面");
// 添加水面组件
water_actor.AddComponent("WaterComponent");
// 获取水面组件
WaterComponent water = water_actor.GetComponent("WaterComponent");
// 是否启用|enabled
water.enabled = true;
// 修改水面颜色|color
water.color = new Color(1,0,1,1);
// 修改水流速度|speed
water.speed = new Vector2(0.03f,1.83f);
// 修改水面UV重复|repeatUV
water.repeatUV = new Vector2(4,4.8f);
// 修改反射模糊次数|blurTimes 范围:1~8
water.blurTimes = 8;
// 修改反射模糊扩散|blurSpread 范围:1~3
water.blurSpread = 1.75f;
// 是否打开叠加物体折射|refrationEnabled
water.refrationEnabled = false;
// 修改菲涅尔缩放值|fresnelScale 范围:0~1
water.fresnelScale = 0.34f;
// 修改菲涅尔基础值|fresnelBase 范围:0~1
water.fresnelBase = 0;
// 修改菲涅尔强度值|fresnelPower 范围:0~5
water.fresnelPower = 5;
// 修改法线反射扰动|distortion 范围:0~100
water.distortion = 60;
// 是否打开天空盒雾效|skyBoxFog
water.skyBoxFog = false;
}