跳转至

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;
    }