public override void Initialize(IComponentManager componentManager)
 {
     _editableMeshResolver = componentManager.GetComponent <IEditableMeshResolver>();
     _sceneManager         = componentManager.GetComponent <SceneManager>();
     _selectionManager     = componentManager.GetComponent <SelectionManager>();
     _resourceLib          = componentManager.GetComponent <ResourceLibary>();
 }
        public Rmv2ModelNode(RmvRigidModel model, ResourceLibary resourceLib, string name, AnimationPlayer animationPlayer, IGeometryGraphicsContextFactory contextFactory) : base(name)
        {
            Name = name;

            for (int lodIndex = 0; lodIndex < 4; lodIndex++)
            {
                var lodNode = new Rmv2LodNode("Lod " + lodIndex, lodIndex)
                {
                    IsVisible = lodIndex == 0
                };
                AddObject(lodNode);
            }

            SetModel(model, resourceLib, animationPlayer, contextFactory);
        }
        public TexturePreviewController(string imagePath, TexturePreviewViewModel viewModel, PackFileService packFileService)
        {
            _imagePath       = imagePath;
            _viewModel       = viewModel;
            _packFileService = packFileService;

            _scene = new SceneContainer();
            _scene.Components.Add(new ResourceLibary(_scene, packFileService));
            _scene.ForceCreate();


            _resourceLib     = _scene.GetComponent <ResourceLibary>();
            _textureRenderer = new TextureToTextureRenderer(_scene.GraphicsDevice, new SpriteBatch(_scene.GraphicsDevice), _resourceLib);
            CreateImage();
        }
예제 #4
0
        public ModelLoaderService(PackFileService packFileService, ResourceLibary resourceLibary, AnimationControllerViewModel animationView, SceneManager sceneManager, IPackFile mainFile)
        {
            _packFileService = packFileService;
            _resourceLibary  = resourceLibary;
            _animationView   = animationView;
            _sceneManager    = sceneManager;

            var skeletonNode = _sceneManager.RootNode.AddObject(new SkeletonNode(resourceLibary.Content, animationView)
            {
                IsLockable = false
            }) as SkeletonNode;

            EditableMeshNode  = (MainEditableNode)_sceneManager.RootNode.AddObject(new MainEditableNode("Editable Model", skeletonNode, mainFile));
            ReferenceMeshRoot = sceneManager.RootNode.AddObject(new GroupNode("Reference meshs")
            {
                IsEditable = false, IsLockable = false
            });
        }
        public void SetModel(RmvRigidModel model, ResourceLibary resourceLibary, AnimationPlayer animationPlayer, IGeometryGraphicsContextFactory contextFactory)
        {
            Model = model;
            for (int lodIndex = 0; lodIndex < model.Header.LodCount; lodIndex++)
            {
                if (lodIndex >= Children.Count)
                {
                    AddObject(new Rmv2LodNode("Lod " + lodIndex, lodIndex));
                }

                var lodNode = Children[lodIndex];
                for (int modelIndex = 0; modelIndex < model.LodHeaders[lodIndex].MeshCount; modelIndex++)
                {
                    var node = new Rmv2MeshNode(model.MeshList[lodIndex][modelIndex], contextFactory.Create(), resourceLibary, animationPlayer);
                    node.LodIndex = lodIndex;
                    lodNode.AddObject(node);
                }
            }
        }
예제 #6
0
        public PbrShader(ResourceLibary resourceLibary)
        {
            Effect = resourceLibary.GetEffect(ShaderTypes.Phazer);

            Effect.Parameters["tex_cube_diffuse"].SetValue(resourceLibary.PbrDiffuse);
            Effect.Parameters["tex_cube_specular"].SetValue(resourceLibary.PbrSpecular);
            Effect.Parameters["specularBRDF_LUT"].SetValue(resourceLibary.PbrLut);

            _textures.Add(TexureType.Diffuse, Effect.Parameters["DiffuseTexture"]);
            _textures.Add(TexureType.Specular, Effect.Parameters["SpecularTexture"]);
            _textures.Add(TexureType.Normal, Effect.Parameters["NormalTexture"]);
            _textures.Add(TexureType.Gloss, Effect.Parameters["GlossTexture"]);


            _useTextures.Add(TexureType.Diffuse, Effect.Parameters["UseDiffuse"]);
            _useTextures.Add(TexureType.Specular, Effect.Parameters["UseSpecular"]);
            _useTextures.Add(TexureType.Normal, Effect.Parameters["UseNormal"]);
            _useTextures.Add(TexureType.Gloss, Effect.Parameters["UseGloss"]);

            _resourceLibary = resourceLibary;
        }
 public SceneLoader(PackFileService packFileService, ResourceLibary resourceLibary)
 {
     _packFileService = packFileService;
     _device          = resourceLibary.GraphicsDevice;
     _resourceLibary  = resourceLibary;
 }