Version = 1.9.4.30080; CParticleEffect $LOCAL$/Resource { EditorInfosPosition = int2(73, 52); OnSpawn = "$LOCAL$/Spawner"; CustomAttributes = "$LOCAL$/_GlobalAttributes"; Autostart = true; } CActionFactoryParticleSpawnerBase $LOCAL$/Layer_1 { EditorInfosPosition = int2(-288, -61); Descriptor = "$LOCAL$/CParticleDescriptor_AE135B2A"; Infinite = true; DurationInSeconds = 2.0000000e+000; SpawnCount = 3.0000000e+002; } CParticleDescriptor $LOCAL$/CParticleDescriptor_AE135B2A { EditorInfosPosition = int2(-392, -44); Renderer = "$LOCAL$/CParticleRenderer_Billboard_9136D2F4"; CustomFields = { "$LOCAL$/CParticleFieldDeclaration_CBEB632D", "$LOCAL$/CParticleFieldDeclaration_A6FFE779", }; Samplers = { "$LOCAL$/CParticleSamplerCurve_BFD04111", "$LOCAL$/CParticleSamplerProceduralTurbulence_8E7D769B", "$LOCAL$/CParticleSamplerCurve_F2CD6F30", "$LOCAL$/CParticleSamplerShape_3E09C57A", }; SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7"; States = { "$LOCAL$/CParticleState_3AF8190E", }; } CActionFactoryWithChilds $LOCAL$/Spawner { EditorInfosPosition = int2(-162, -81); ChildList = { "$LOCAL$/Layer_1", }; } CParticleRenderer_Billboard $LOCAL$/CParticleRenderer_Billboard_9136D2F4 { EditorInfosPosition = int2(-508, -63); CustomName = "Billboard"; Diffuse = "Textures/FX/bokeh_diffraction_xsmall.dds"; AtlasDefinition = "Textures/FX/bokeh_diffraction.pkat"; SoftAnimationBlending = true; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7 { EditorInfosPosition = int2(-508, 22); Expression = "function void Eval() { Size = 0.05; Position = StartPosition.samplePosition(); // Velocity = float3(0,pow(sin(scene.Time)*0.5+0.5,2)+2,0);//rand(-1.0.xxx, 1.0.xxx) * float3(1,0.2,1) + float3(0,2,0); Velocity = float3(0,0.1,0); // Brightness = 5 + step(ninja, 0.95) * 100; float power = BrightnessSelector.sample(ninja); Life = 12.0 + power * 5; Brightness = power * 100; } "; } CParticleState $LOCAL$/CParticleState_3AF8190E { EditorInfosPosition = int2(-508, 65); StateName = "State_0"; Evolvers = { "$LOCAL$/CParticleEvolver_Physics_36D6D4BD", "$LOCAL$/Field_1", "$LOCAL$/Script_1", }; } CParticleEvolver_Physics $LOCAL$/CParticleEvolver_Physics_36D6D4BD { EditorInfosPosition = int2(-590, 86); CustomName = "Physics"; ConstantVelocityField = float3(0.0000000e+000, 9.9999998e-003, 0.0000000e+000); Drag = 1.0000000e+000; VelocityFieldSampler = "Turb_0"; } CParticleAttributeList $LOCAL$/_GlobalAttributes { EditorInfosPosition = int2(-599, -20); AttributeList = { "$LOCAL$/CParticleAttributeDeclaration_4EFEBBFA", "$LOCAL$/CParticleAttributeDeclaration_731FAD45", "$LOCAL$/CParticleAttributeDeclaration_A93E82EC", "$LOCAL$/CParticleAttributeDeclaration_D130A61F", "$LOCAL$/CParticleAttributeDeclaration_0AC61FCE", }; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_CBEB632D { FieldName = "Color"; FieldType = float4; } CParticleEvolver_Field $LOCAL$/Field_1 { CustomName = "Field"; Name = "Color"; Evaluator = "$LOCAL$/CParticleSamplerCurve_777BFAC7"; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_777BFAC7 { ValueType = Float4; Times = { 0.0000000e+000, 8.8679262e-002, 8.9314032e-001, 1.0000000e+000, }; FloatValues = { 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 5.9527493e-001, 5.8135343e-001, 4.2271119e-001, 9.8072559e-001, 2.5069571e-001, 5.2228272e-001, 8.1159347e-001, 5.5738533e-001, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, -9.7854652e-002, -3.4917984e-002, -6.6325706e-003, 0.0000000e+000, -8.8769633e-001, -3.1676129e-001, -6.0167897e-002, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, -1.5176258e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, -2.0159213e-001, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleEvolver_Script $LOCAL$/Script_1 { CustomName = "Script"; Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_8B1C3D96"; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_8B1C3D96 { Expression = "function void Eval() { float distToView = dot(Position - ViewPosition, ViewDirection); float dofSignedDist = distToView - FocusDistance; float dofDist = abs(dofSignedDist); float dofFactor = min(1, max(0, dofDist - FocusRange.y) / FocusRange.x); float dofFactorNonLin = pow(dofFactor,2); float cocFactor = dofFactorNonLin; float cocScale = distToView * cocFactor; float realSize = 0.01; float newSize = realSize + cocScale * MaxCocRadius; float areaDiffusion = pow(realSize / newSize, 2); float cocBias = sqrt(min(realSize / (newSize - realSize), 100)); // hack TextureID = 3*(1-cocFactor) + 2*cocBias; Size = newSize; Color *= (areaDiffusion*Brightness).111x; // Color = DOF_DEBUG.sample(1-cocFactor); } "; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_BFD04111 { SamplerName = "DOF_DEBUG"; ValueType = Float4; Times = { 0.0000000e+000, 1.0000000e+000, }; FloatValues = { 1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 9.8960614e-001, 0.0000000e+000, 1.0000000e+000, 0.0000000e+000, 9.8960614e-001, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleSamplerProceduralTurbulence $LOCAL$/CParticleSamplerProceduralTurbulence_8E7D769B { SamplerName = "Turb_0"; Strength = 8.8388346e-002; TimeScale = 5.0000000e-001; } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_4EFEBBFA { AttributeName = "FocusDistance"; AttributeDescription = "Distance from the focus plane to the camera"; DefaultValueF4 = float4(1.4457840e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); HasMin = true; HasMax = true; MaxValueF4 = float4(2.0000000e+001, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_731FAD45 { AttributeName = "FocusRange"; AttributeType = float2; AttributeDescription = "Distance from the in-focus to the out-of-focus plane in \'x\'\\nSize of the fully-focused zone in \'y\'"; DefaultValueF4 = float4(2.2891560e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); HasMin = true; HasMax = true; MaxValueF4 = float4(4.0000000e+001, 2.0000000e+001, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_A93E82EC { AttributeName = "MaxCocRadius"; AttributeDescription = "Radius of the Bokeh when fully out of focus.\\n(Warning: larger values can quickly become EXTREMELTY HEAVY on overdraw\\nand can bring your GPU to its knees...)"; DefaultValueF4 = float4(5.0000001e-002, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); HasMin = true; HasMax = true; MaxValueF4 = float4(1.0000000e-001, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_D130A61F { AttributeName = "ViewPosition"; AttributeType = float3; AttributeDescription = "Camera position (Will be auto-filled by the editor)"; MinValueF4 = float4(-1.0000000e+002, -1.0000000e+002, -1.0000000e+002, 0.0000000e+000); MaxValueF4 = float4(1.0000000e+002, 1.0000000e+002, 1.0000000e+002, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_0AC61FCE { AttributeName = "ViewDirection"; AttributeType = float3; AttributeDescription = "Normalized camera direction (Will be auto-filled by the editor)"; HasMin = true; HasMax = true; MinValueF4 = float4(-1.0000000e+000, -1.0000000e+000, -1.0000000e+000, 0.0000000e+000); MaxValueF4 = float4(1.0000000e+000, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_A6FFE779 { FieldName = "Brightness"; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_F2CD6F30 { SamplerName = "BrightnessSelector"; Times = { 0.0000000e+000, 9.8499995e-001, 9.8999995e-001, 1.0000000e+000, }; FloatValues = { 4.9999997e-002, 1.4027023e-001, 9.8938227e-001, 1.0000000e+000, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, 1.9461302e-001, 9.8788249e-004, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleSamplerShape $LOCAL$/CParticleSamplerShape_3E09C57A { SamplerName = "StartPosition"; Shape = "$LOCAL$/CShapeDescriptor_B59AB4C5"; SampleDimensionality = Volume; } CShapeDescriptor $LOCAL$/CShapeDescriptor_B59AB4C5 { ShapeType = SPHERE; Radius = 2.5000000e+001; }