diff --git a/modules/skottie/src/effects/SphereEffect.cpp b/modules/skottie/src/effects/SphereEffect.cpp index 3c4a9ff833..df18cfa8d7 100644 --- a/modules/skottie/src/effects/SphereEffect.cpp +++ b/modules/skottie/src/effects/SphereEffect.cpp @@ -24,7 +24,7 @@ namespace { // This shader maps its child shader onto a sphere. To simplify things, we set it up such that: // // - the sphere is centered at origin and has r == 1 -// - the eye is positioned at (0,0,cam_z), where cam_z is chosen to visually match AE +// - the eye is positioned at (0,0,eye_z), where eye_z is chosen to visually match AE // - the POI for a given pixel is on the z = 0 plane (x,y,0) // - we're only rendering inside the projected circle, which guarantees a quadratic solution // @@ -35,13 +35,13 @@ namespace { // 2) rotate the normal // 3) UV-map the sphere // 4) scale uv to source size and sample +// 5) apply lighting model // // Note: the current implementation uses two passes for two-side ("full") rendering, on the // assumption that in practice most textures are opaque and two-side mode is infrequent; // if this proves to be problematic, we could expand the implementation to blend both sides // in one pass. // -// TODO: lighting static constexpr char gSphereSkSL[] = R"( uniform shader child; @@ -49,40 +49,96 @@ static constexpr char gSphereSkSL[] = R"( uniform half2 child_scale; uniform half side_select; - half3 to_sphere(half2 xy) { - half cam_z = 5.5, - cam_z2 = cam_z*cam_z; - half3 RAY = half3(xy, -cam_z); + // apply_light() + %s - half a = dot(RAY, RAY), - b = -2*cam_z2, - c = cam_z2 - 1, + half3 to_sphere(half3 EYE) { + half eye_z2 = EYE.z*EYE.z; + + half a = dot(EYE, EYE), + b = -2*eye_z2, + c = eye_z2 - 1, t = (-b + side_select*sqrt(b*b - 4*a*c))/(2*a); - return half3(0, 0, cam_z) + RAY*t; + return half3(0, 0, -EYE.z) + EYE*t; } half4 main(float2 xy) { - half3 N = rot_matrix*to_sphere(xy); + half3 EYE = half3(xy, -5.5), + N = to_sphere(EYE), + RN = rot_matrix*N; half kRPI = 1/3.1415927; half2 UV = half2( - 0.5 + kRPI * 0.5 * atan(N.x, N.z), - 0.5 + kRPI * asin(N.y) + 0.5 + kRPI * 0.5 * atan(RN.x, RN.z), + 0.5 + kRPI * asin(RN.y) ); - return sample(child, UV*child_scale); + return apply_light(EYE, N, sample(child, UV*child_scale)); } )"; -static sk_sp sphere_effect_singleton() { - static const SkRuntimeEffect* effect = - SkRuntimeEffect::Make(SkString(gSphereSkSL), /*options=*/{}).effect.release(); - if (0 && !effect) { - printf("!!! %s\n", - SkRuntimeEffect::Make(SkString(gSphereSkSL), /*options=*/{}).errorText.c_str()); +// CC Sphere uses a Phong-like lighting model: +// +// - "ambient" controls the intensity of the texture color +// - "diffuse" controls a multiplicative mix of texture and light color +// - "specular" controls a light color specular component +// - "roughness" is the specular exponent reciprocal +// - "light intensity" modulates the diffuse and specular components (but not ambient) +// - "light height" and "light direction" specify the light source position in spherical coords +// +// Implementation-wise, light intensity/height/direction are all combined into l_vec. +// For efficiency, we fall back to a stripped-down shader (ambient-only) when the diffuse & specular +// components are not used. +// +// TODO: "metal" and "reflective" parameters are ignored. +static constexpr char gBasicLightSkSL[] = R"( + uniform half l_coeff_ambient; + + half4 apply_light(half3 EYE, half3 N, half4 c) { + c.rgb *= l_coeff_ambient; + return c; } +)"; + +static constexpr char gFancyLightSkSL[] = R"( + uniform half3 l_vec; + uniform half3 l_color; + uniform half l_coeff_ambient; + uniform half l_coeff_diffuse; + uniform half l_coeff_specular; + uniform half l_specular_exp; + + half4 apply_light(half3 EYE, half3 N, half4 c) { + half3 LR = reflect(-l_vec*side_select, N); + half s_base = dot(normalize(EYE), LR), + + a = l_coeff_ambient, + d = l_coeff_diffuse * max(dot(l_vec, N), 0), + s = l_coeff_specular * saturate(pow(s_base, l_specular_exp)); + + c.rgb = (a + d*l_color)*c.rgb + s*l_color; + + return c; + } +)"; + +static sk_sp sphere_fancylight_effect() { + static const SkRuntimeEffect* effect = + SkRuntimeEffect::Make(SkStringPrintf(gSphereSkSL, gFancyLightSkSL), {}).effect.release(); + if (0 && !effect) { + printf("!!! %s\n", SkRuntimeEffect::Make(SkStringPrintf(gSphereSkSL, gFancyLightSkSL), + {}).errorText.c_str()); + } + SkASSERT(effect); + + return sk_ref_sp(effect); +} + +static sk_sp sphere_basiclight_effect() { + static const SkRuntimeEffect* effect = + SkRuntimeEffect::Make(SkStringPrintf(gSphereSkSL, gBasicLightSkSL), {}).effect.release(); SkASSERT(effect); return sk_ref_sp(effect); @@ -105,6 +161,13 @@ public: SG_ATTRIBUTE(Rotation, SkM44 , fRot ) SG_ATTRIBUTE(Side , RenderSide, fSide ) + SG_ATTRIBUTE(LightVec , SkV3 , fLightVec ) + SG_ATTRIBUTE(LightColor , SkV3 , fLightColor ) + SG_ATTRIBUTE(AmbientLight , float, fAmbientLight ) + SG_ATTRIBUTE(DiffuseLight , float, fDiffuseLight ) + SG_ATTRIBUTE(SpecularLight, float, fSpecularLight) + SG_ATTRIBUTE(SpecularExp , float, fSpecularExp ) + private: sk_sp contentShader() { if (!fContentShader || this->hasChildrenInval()) { @@ -123,7 +186,12 @@ private: } sk_sp buildEffectShader(float selector) { - SkRuntimeShaderBuilder builder(sphere_effect_singleton()); + const auto has_fancy_light = + fLightVec.length() > 0 && (fDiffuseLight > 0 || fSpecularLight > 0); + + SkRuntimeShaderBuilder builder(has_fancy_light + ? sphere_fancylight_effect() + : sphere_basiclight_effect()); builder.child ("child") = this->contentShader(); builder.uniform("child_scale") = fChildSize; @@ -134,6 +202,16 @@ private: fRot.rc(2,0), fRot.rc(2,1), fRot.rc(2,2), }; + builder.uniform("l_coeff_ambient") = fAmbientLight; + + if (has_fancy_light) { + builder.uniform("l_vec") = fLightVec * -selector; + builder.uniform("l_color") = fLightColor; + builder.uniform("l_coeff_diffuse") = fDiffuseLight; + builder.uniform("l_coeff_specular") = fSpecularLight; + builder.uniform("l_specular_exp") = fSpecularExp; + } + const auto lm = SkMatrix::Translate(fCenter.fX, fCenter.fY) * SkMatrix::Scale(fRadius, fRadius); @@ -187,6 +265,13 @@ private: float fRadius = 0; RenderSide fSide = RenderSide::kFull; + SkV3 fLightVec = {0,0,1}, + fLightColor = {1,1,1}; + float fAmbientLight = 1, + fDiffuseLight = 0, + fSpecularLight = 0, + fSpecularExp = 0; + using INHERITED = sksg::CustomRenderNode; }; @@ -198,17 +283,27 @@ public: : INHERITED(std::move(node)) { enum : size_t { - // kRotGrp_Index = 0, - kRotX_Index = 1, - kRotY_Index = 2, - kRotZ_Index = 3, - kRotOrder_Index = 4, - // ??? = 5, - kRadius_Index = 6, - kOffset_Index = 7, - kRender_Index = 8, + // kRotGrp_Index = 0, + kRotX_Index = 1, + kRotY_Index = 2, + kRotZ_Index = 3, + kRotOrder_Index = 4, + // ??? = 5, + kRadius_Index = 6, + kOffset_Index = 7, + kRender_Index = 8, - // TODO: Light params + // kLight_Index = 9, + kLightIntensity_Index = 10, + kLightColor_Index = 11, + kLightHeight_Index = 12, + kLightDirection_Index = 13, + // ??? = 14, + // kShading_Index = 15, + kAmbient_Index = 16, + kDiffuse_Index = 17, + kSpecular_Index = 18, + kRoughness_Index = 19, }; EffectBinder(jprops, *abuilder, this) @@ -218,7 +313,16 @@ public: .bind( kRotY_Index, fRotY ) .bind( kRotZ_Index, fRotZ ) .bind(kRotOrder_Index, fRotOrder) - .bind( kRender_Index, fRender ); + .bind( kRender_Index, fRender ) + + .bind(kLightIntensity_Index, fLightIntensity) + .bind( kLightColor_Index, fLightColor ) + .bind( kLightHeight_Index, fLightHeight ) + .bind(kLightDirection_Index, fLightDirection) + .bind( kAmbient_Index, fAmbient ) + .bind( kDiffuse_Index, fDiffuse ) + .bind( kSpecular_Index, fSpecular ) + .bind( kRoughness_Index, fRoughness ); } private: @@ -251,12 +355,37 @@ private: SkUNREACHABLE; }; + const auto light_vec = [](float height, float direction) { + float z = std::sin(height * SK_ScalarPI / 2), + r = std::sqrt(1 - z*z), + x = std::cos(direction) * r, + y = std::sin(direction) * r; + + return SkV3{x,y,z}; + }; + const auto& sph = this->node(); sph->setCenter({fOffset.x, fOffset.y}); sph->setRadius(fRadius); sph->setSide(side(fRender)); sph->setRotation(rotation(fRotOrder, fRotX, fRotY, fRotZ)); + + sph->setAmbientLight (SkTPin(fAmbient * 0.01f, 0.0f, 2.0f)); + + const auto intensity = SkTPin(fLightIntensity * 0.01f, 0.0f, 10.0f); + sph->setDiffuseLight (SkTPin(fDiffuse * 0.01f, 0.0f, 1.0f) * intensity); + sph->setSpecularLight(SkTPin(fSpecular* 0.01f, 0.0f, 1.0f) * intensity); + + sph->setLightVec(light_vec( + SkTPin(fLightHeight * 0.01f, -1.0f, 1.0f), + SkDegreesToRadians(fLightDirection - 90) + )); + + const auto lc = static_cast(fLightColor); + sph->setLightColor({lc.fR, lc.fG, lc.fB}); + + sph->setSpecularExp(1/SkTPin(fRoughness, 0.001f, 0.5f)); } Vec2Value fOffset = {0,0}; @@ -267,6 +396,15 @@ private: fRotOrder = 1, fRender = 1; + VectorValue fLightColor; + ScalarValue fLightIntensity = 0, + fLightHeight = 0, + fLightDirection = 0, + fAmbient = 100, + fDiffuse = 0, + fSpecular = 0, + fRoughness = 0.5f; + using INHERITED = DiscardableAdapterBase; }; diff --git a/resources/skottie/skottie-sphere-lighting-types.json b/resources/skottie/skottie-sphere-lighting-types.json new file mode 100644 index 0000000000..d544ebf814 --- /dev/null +++ b/resources/skottie/skottie-sphere-lighting-types.json @@ -0,0 +1 @@ +{"v":"5.7.5","fr":60,"ip":0,"op":601,"w":500,"h":500,"nm":"sphere lighting","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[0,100],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[50,50],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[50,150],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[500,200],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882352948189,0.882352948189,0.882352948189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers bg","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[125.5,500],"ix":2},"p":{"a":0,"k":[-186.5,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.643137276173,1,0.447058856487,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862807274,0.603921592236,0.980392217636,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg4","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[125.5,500],"ix":2},"p":{"a":0,"k":[186.5,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862807274,0.603921592236,0.980392217636,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg3","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250,500],"ix":2},"p":{"a":0,"k":[125,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.64425355196,1,0.448791623116,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg2","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[500,500],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.958150804043,0.605471134186,0.980122625828,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg1","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":601,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"ambient/outside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,87.5,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":2,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,0.823529422283,0.262745112181,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":0,"k":40,"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":0,"k":-85,"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[200]},{"t":600,"s":[0]}],"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":0,"k":0,"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":100,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":0,"k":0.093,"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":66,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":1,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"ambient/inside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,87.5,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":3,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":0,"k":0,"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,0.823529422283,0.262745112181,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":0,"k":40,"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":0,"k":-85,"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[200]},{"t":600,"s":[0]}],"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":0,"k":0,"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":100,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":0,"k":0.093,"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":66,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":2,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"diffuse/outside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":2,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[1000]},{"t":330,"s":[100]}],"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,1,0,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[100]},{"t":600,"s":[-100]}],"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0]},{"t":390,"s":[180]}],"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":0,"k":27,"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"t":390,"s":[50]}],"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":0,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":0,"k":0.5,"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":0,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":3,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"diffuse/inside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":3,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[1000]},{"t":330,"s":[100]}],"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,1,0,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[100]},{"t":600,"s":[-100]}],"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0]},{"t":390,"s":[180]}],"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":0,"k":27,"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"t":390,"s":[50]}],"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":0,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":0,"k":0.5,"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":0,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":4,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"specular/outside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[150,410.5,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":2,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":0,"k":100,"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,1,0,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[100]},{"t":600,"s":[-100]}],"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0]},{"t":390,"s":[180]}],"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":0,"k":27,"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":0,"k":0,"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":100,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.001]},{"t":390,"s":[0.5]}],"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":0,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":5,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"specular/inside","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[350,410.5,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-20,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1]},{"t":600,"s":[721]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":75,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":3,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":0,"k":100,"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[1,1,0,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":390,"s":[100]},{"t":600,"s":[-100]}],"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0]},{"t":390,"s":[180]}],"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":0,"k":27,"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":0,"k":0,"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":100,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":210,"s":[0.001]},{"t":390,"s":[0.5]}],"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":0,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":6,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/resources/skottie/skottie-sphere-lighting.json b/resources/skottie/skottie-sphere-lighting.json new file mode 100644 index 0000000000..9519eb89ad --- /dev/null +++ b/resources/skottie/skottie-sphere-lighting.json @@ -0,0 +1 @@ +{"v":"5.7.5","fr":60,"ip":0,"op":601,"w":500,"h":500,"nm":"sphere lighting 2","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[0,100],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[50,50],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[50,50],"ix":2},"p":{"a":0,"k":[0,-75],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.196078434587,0.196078434587,0.196078434587,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":-3,"ix":2},"m":1,"ix":3,"tr":{"ty":"tr","p":{"a":0,"k":[100,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[50,150],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[500,200],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882352948189,0.882352948189,0.882352948189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"checkers bg","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[125.5,500],"ix":2},"p":{"a":0,"k":[-186.5,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.643137276173,1,0.447058856487,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862807274,0.603921592236,0.980392217636,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg4","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[125.5,500],"ix":2},"p":{"a":0,"k":[186.5,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862807274,0.603921592236,0.980392217636,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg3","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[250,500],"ix":2},"p":{"a":0,"k":[125,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.64425355196,1,0.448791623116,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg2","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[500,500],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.958150804043,0.605471134186,0.980122625828,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"bg1","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":601,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"grid2","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":5,"nm":"CC Sphere","np":28,"mn":"CC Sphere","ix":1,"en":1,"ef":[{"ty":6,"nm":"Rotation","mn":"CC Sphere-0001","ix":1,"v":0},{"ty":0,"nm":"Rotation X","mn":"CC Sphere-0002","ix":2,"v":{"a":0,"k":-28,"ix":2}},{"ty":0,"nm":"Rotation Y","mn":"CC Sphere-0003","ix":3,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":600,"s":[-720]}],"ix":3}},{"ty":0,"nm":"Rotation Z","mn":"CC Sphere-0004","ix":4,"v":{"a":0,"k":0,"ix":4}},{"ty":7,"nm":"Rotation Order","mn":"CC Sphere-0026","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":6,"nm":"","mn":"CC Sphere-0005","ix":6,"v":0},{"ty":0,"nm":"Radius","mn":"CC Sphere-0006","ix":7,"v":{"a":0,"k":150,"ix":7}},{"ty":3,"nm":"Offset","mn":"CC Sphere-0007","ix":8,"v":{"a":0,"k":[250,250],"ix":8}},{"ty":7,"nm":"Render","mn":"CC Sphere-0008","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":6,"nm":"Light","mn":"CC Sphere-0009","ix":10,"v":0},{"ty":0,"nm":"Light Intensity","mn":"CC Sphere-0010","ix":11,"v":{"a":0,"k":100,"ix":11}},{"ty":2,"nm":"Light Color","mn":"CC Sphere-0011","ix":12,"v":{"a":0,"k":[0.764705896378,1,1,1],"ix":12}},{"ty":0,"nm":"Light Height","mn":"CC Sphere-0012","ix":13,"v":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[-100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":300,"s":[100]},{"t":600,"s":[-100]}],"ix":13}},{"ty":0,"nm":"Light Direction","mn":"CC Sphere-0013","ix":14,"v":{"a":1,"k":[{"t":0,"s":[-90],"h":1},{"t":300,"s":[90],"h":1}],"ix":14}},{"ty":6,"nm":"","mn":"CC Sphere-0014","ix":15,"v":0},{"ty":6,"nm":"Shading","mn":"CC Sphere-0015","ix":16,"v":0},{"ty":0,"nm":"Ambient","mn":"CC Sphere-0016","ix":17,"v":{"a":0,"k":10,"ix":17}},{"ty":0,"nm":"Diffuse","mn":"CC Sphere-0017","ix":18,"v":{"a":0,"k":100,"ix":18}},{"ty":0,"nm":"Specular","mn":"CC Sphere-0018","ix":19,"v":{"a":0,"k":100,"ix":19}},{"ty":0,"nm":"Roughness","mn":"CC Sphere-0019","ix":20,"v":{"a":0,"k":0.209,"ix":20}},{"ty":0,"nm":"Metal","mn":"CC Sphere-0020","ix":21,"v":{"a":0,"k":42,"ix":21}},{"ty":0,"nm":"Reflective","mn":"CC Sphere-0021","ix":22,"v":{"a":0,"k":0,"ix":22}},{"ty":10,"nm":"Reflection Map","mn":"CC Sphere-0022","ix":23,"v":{"a":0,"k":1,"ix":23}},{"ty":7,"nm":"Internal Shadows","mn":"CC Sphere-0023","ix":24,"v":{"a":0,"k":0,"ix":24}},{"ty":7,"nm":"Transparency Falloff","mn":"CC Sphere-0024","ix":25,"v":{"a":0,"k":0,"ix":25}},{"ty":6,"nm":"","mn":"CC Sphere-0025","ix":26,"v":0}]}],"w":500,"h":500,"ip":0,"op":601,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":1,"nm":"Black Solid 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2,"l":2},"a":{"a":0,"k":[250,250,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"sw":500,"sh":500,"sc":"#000000","ip":0,"op":601,"st":0,"bm":0}],"markers":[]} \ No newline at end of file