Beispiel #1
0
        public static UnlitMaterial UnlitFromGltf(VrmProtobuf.Material material, List <Texture> textures)
        {
            var unlit = new UnlitMaterial(material.Name);

            unlit.LoadCommonParams(material, textures);
            return(unlit);
        }
Beispiel #2
0
        public override void Update()
        {
            base.Update();

            if (Input.Keys.JustPressed(Keys.Space))
            {
                var color   = Color.HasValue ? Color.Value : RandomHelper.GetColor();
                var lightGo = GameObjectFactory.CreateLight(LightType.Point, color, Intensity, 1024);
                lightGo.Transform.LocalPosition = m_Transform.LocalPosition;
                Scene.current.Add(lightGo);

                var light = lightGo.GetComponent <Light>();
                light.Range = 5;
                light.ShadowGenerator.ShadowStrength = 1;
                light.ShadowGenerator.Enabled        = ShadowMapEnabled;

                if (ShowDebugMesh)
                {
                    var ligthSphere = lightGo.AddComponent <MeshRenderer>();
                    ligthSphere.Geometry = new SphereMesh(0.05f, 12);
                    ligthSphere.Geometry.Build();
                    ligthSphere.CastShadow    = true;
                    ligthSphere.ReceiveShadow = false;

                    var sphereMaterial = new UnlitMaterial(Scene.current);
                    sphereMaterial.DiffuseColor = color;
                    ligthSphere.Material        = sphereMaterial;
                }
            }
        }
Beispiel #3
0
        private void CreateNewVisual()
        {
            visual = Slot.AddSlot("ComplexFractalVisual");

            FractalType fractalType = fractalData.Evaluate(new FractalData(FractalType.none, new double2(0, 0))).fractalType;

            if (fractalType == FractalType.mandelbrot)
            {
                resultTexture = visual.AttachComponent <MandelbrotTexture>();
            }
            else if (fractalType == FractalType.julia)
            {
                resultTexture = visual.AttachComponent <JuliaTexture>();
            }
            else if (fractalType == FractalType.newton)
            {
                resultTexture = visual.AttachComponent <NewtonTexture>();
            }
            else
            {
                return;
            }
            ChangeTextureAttributes();

            resultMat = visual.AttachComponent <UnlitMaterial>(false, null);
            resultMat.BlendMode.Value = BlendMode.Transparent;
            resultMat.Texture.Target  = resultTexture;
            graph = visual.AttachQuad(new float2(0.6f, 0.4f), resultMat, true);
            AdjustGraphAttributes();

            graphRenderer = visual.AttachComponent <MeshRenderer>();
            graphRenderer.Materials.Add();
            graphRenderer.Materials[0] = resultMat;
            graphRenderer.Mesh.Target  = graph;
        }
Beispiel #4
0
        public void Setup(string icon)
        {
            CastShadow              = false;
            ReceiveShadow           = false;
            _geometry               = new QuadMesh();
            _geometry.Size          = new Vector3(0.5f);
            _geometry.TextureRepeat = new Vector2(2);
            _geometry.Build();

            boundingBox = new BoundingBox(new Vector3(-0.25f), new Vector3(0.25f));

            UnlitMaterial iconMaterial = null;

            if (s_Materials.ContainsKey(icon))
            {
                iconMaterial = s_Materials[icon];

                // Mat is null if the scene was changed.
                if (iconMaterial == null)
                {
                    iconMaterial      = CreateMaterial(icon);
                    s_Materials[icon] = iconMaterial;
                }
            }
            else
            {
                iconMaterial = CreateMaterial(icon);
                s_Materials.Add(icon, iconMaterial);
            }

            material = iconMaterial;
        }
Beispiel #5
0
        private UnlitMaterial CreateMaterial(string icon)
        {
            var iconMaterial = new UnlitMaterial(icon);

            iconMaterial.MainTexture = Application.Content.Load <Texture2D>($"Icons/{icon}");
            return(iconMaterial);
        }
Beispiel #6
0
        private void SpawnLightAt(Vector3 position)
        {
            var color   = Color.HasValue ? Color.Value : RandomHelper.GetColor();
            var lightGo = GameObjectFactory.CreateLight(LightType.Point, color, Intensity, 1024);

            lightGo.Transform.LocalPosition = position;
            Scene.current.Add(lightGo);

            var light = lightGo.GetComponent <Light>();

            light.Radius = 5;
            light.ShadowGenerator.ShadowStrength = 1;
            light.ShadowGenerator.Enabled        = ShadowMapEnabled;

            if (ShowDebugMesh)
            {
                var ligthSphere = lightGo.AddComponent <MeshRenderer>();
                ligthSphere.Geometry = new SphereMesh(0.05f, 12);
                ligthSphere.Geometry.Build();
                ligthSphere.CastShadow    = true;
                ligthSphere.ReceiveShadow = false;

                var sphereMaterial = new UnlitMaterial();
                sphereMaterial.DiffuseColor = color;
                ligthSphere.Material        = sphereMaterial;
            }
        }
Beispiel #7
0
        public static VrmProtobuf.Material UnlitToGltf(this UnlitMaterial unlit, string name, List <Texture> textures)
        {
            var material = unlit.ToGltf(name, textures);

            material.PbrMetallicRoughness.RoughnessFactor = 0.9f;
            material.PbrMetallicRoughness.MetallicFactor  = 0.0f;

            return(material);
        }
Beispiel #8
0
        public void ExportMaterialUnlit(Material src, UnlitMaterial unlit, List <Texture> textures)
        {
            var material = unlit.UnlitToGltf(textures);

            Storage.Gltf.materials.Add(material);
            if (!Storage.Gltf.extensionsUsed.Contains(UnlitMaterial.ExtensionName))
            {
                Storage.Gltf.extensionsUsed.Add(UnlitMaterial.ExtensionName);
            }
        }
Beispiel #9
0
        public void ExportMaterialUnlit(Material src, UnlitMaterial unlit, List <Texture> textures)
        {
            var material = unlit.UnlitToGltf(src.Name, textures);

            Gltf.Materials.Add(material);
            if (!Gltf.ExtensionsUsed.Contains(UnlitMaterial.ExtensionName))
            {
                Gltf.ExtensionsUsed.Add(UnlitMaterial.ExtensionName);
            }
        }
Beispiel #10
0
        public static VrmProtobuf.Material UnlitToGltf(this UnlitMaterial unlit, List <Texture> textures)
        {
            var material = unlit.ToGltf(textures);

            material.Extensions = new VrmProtobuf.Material.Types.Extensions
            {
                KHRMaterialsUnlit = new VrmProtobuf.Material.Types.KHR_materials_unlitglTFextension(),
            };
            material.PbrMetallicRoughness.RoughnessFactor = 0.9f;
            material.PbrMetallicRoughness.MetallicFactor  = 0.0f;

            return(material);
        }
Beispiel #11
0
        public static glTFMaterial UnlitToGltf(this UnlitMaterial unlit, List <Texture> textures)
        {
            var material = unlit.ToGltf(textures);

            if (!(material.extensions is glTFExtensionExport extensions))
            {
                extensions          = new glTFExtensionExport();
                material.extensions = extensions;
            }
            extensions.Add(
                glTF_KHR_materials_unlit.ExtensionName,
                new ArraySegment <byte>(glTF_KHR_materials_unlit.Raw));

            material.pbrMetallicRoughness.roughnessFactor = 0.9f;
            material.pbrMetallicRoughness.metallicFactor  = 0.0f;

            return(material);
        }
Beispiel #12
0
 public DeferredUnlit(UnlitMaterial material) : base(material)
 {
 }
Beispiel #13
0
 public ForwardUnlit(UnlitMaterial material)
 {
     m_Material = material;
 }