コード例 #1
0
        private void btnCreateMtl_Click(object sender, EventArgs e)
        {
            try
            {
                MaterialProperty mtlProp = this.propertyGridMtl.SelectedObject as MaterialProperty;
                if (mtlProp != null)
                {
                    NMtlStatic mtl = new NMtlStatic(mtlProp.Name);
                    mtl.DefaultCreate(mtlProp.ShaderLoc);

                    mtlProp.BindMaterial(mtl);
                    this.propertyGridMtl.SelectedObject = mtlProp;
                    m_Material = mtl;

                    if (m_Sphere == null)
                    {
                        LoadSphere();
                    }
                    if (m_Material != null)
                    {
                        m_Sphere.SetMaterial(m_Material);
                    }
                    m_preview.Refresh();
                }
            }
            catch (System.Exception ex)
            {
                NexusEditor.Program.ShowException(ex, "Create Material FAILED");
            }
        }
コード例 #2
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            //新建材质
            NResourceLoc resLoc = new NResourceLoc("engine_data", "material/standard.hlsl");
            NMtlStatic   mtl    = new NMtlStatic(resLoc.ToString());

            mtl.DefaultCreate(resLoc);
            m_Material = mtl;
            MaterialProperty mtlProp = new MaterialProperty(m_Material);

            mtlProp.ApplyChange();
            this.propertyGridMtl.SelectedObject = mtlProp;
            LoadSphere();
        }
コード例 #3
0
        public override void  BindMaterial(NMtlBase _mtl)
        {
            base.BindMaterial(_mtl);

            NMtlStatic mtl = _mtl as NMtlStatic;

            m_params = new MaterialParamCollection();
            if (mtl != null)
            {
                m_ShaderLoc = _mtl.ShaderLoc;
                int num = mtl.GetNumParameter();
                for (int i = 0; i < num; i++)
                {
                    NMaterialParam mp = mtl.GetParameter(i);
                    switch (mp.type)
                    {
                    case EMaterialParameter.Int:
                        m_params.Add(new MaterialParamInt(mp));
                        break;

                    case EMaterialParameter.Float:
                        m_params.Add(new MaterialParamFloat(mp));
                        break;

                    case EMaterialParameter.Float2:
                        m_params.Add(new MaterialParamVector2(mp));
                        break;

                    case EMaterialParameter.Float3:
                        m_params.Add(new MaterialParamVector3(mp));
                        break;

                    case EMaterialParameter.Float4:
                        m_params.Add(new MaterialParamVector4(mp));
                        break;

                    case EMaterialParameter.Texture:
                        m_params.Add(new MaterialParamTexture(mp));
                        break;

                    default:
                        break;
                    }
                }
            }// end of if
        }
コード例 #4
0
 public void ApplyChange()
 {
     try
     {
         NMtlStatic mtl = m_mtl as NMtlStatic;
         if (m_mtl != null)
         {
             m_ShaderLoc = m_mtl.ShaderLoc;
         }
         foreach (MaterialParamEdit param in m_params)
         {
             if (param.IsValid())
             {
                 mtl.SetParameter(param.GetData());
             }
         }
     }
     catch (System.Exception e)
     {
         NexusEditor.Program.ShowException(e, "Material Param Set FAILED!");
     }
 }
コード例 #5
0
        public MaterialEditor()
        {
            InitializeComponent();

            m_finalClose = false;
            m_realTime   = false;

            m_Location = new NResourceLoc("", "");

            m_preview = new ResourcePreview("MaterialPreview_LV");
            this.splitContainer1.Panel1.Controls.Add(m_preview);

            //新建材质
            NResourceLoc resLoc = new NResourceLoc("engine_data", "material/standard.hlsl");
            NMtlStatic   mtl    = new NMtlStatic(resLoc.ToString());

            mtl.DefaultCreate(resLoc);
            m_Material = mtl;
            MaterialProperty mtlProp = new MaterialProperty(m_Material);

            mtlProp.ApplyChange();
            this.propertyGridMtl.SelectedObject = mtlProp;
            LoadSphere();
        }