From 104e5ff6159af0dbdc79d691397bdcebe837ec29 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 10 May 2025 00:29:20 +0800 Subject: [PATCH] added doc/CreateMaterialInstance.md --- doc/CreateMaterialInstance.md | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 doc/CreateMaterialInstance.md diff --git a/doc/CreateMaterialInstance.md b/doc/CreateMaterialInstance.md new file mode 100644 index 00000000..56b1387b --- /dev/null +++ b/doc/CreateMaterialInstance.md @@ -0,0 +1,47 @@ +# CreateMaterialInstance + +## 1st + +最早最根本的方法,直接在C++代码层面通过mtl::CreateVertexColor2D()函数来创建MaterialCreateInfo +```C++ +mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Triangles); + +cfg.coordinate_system=CoordinateSystem2D::NDC; +cfg.local_to_world=false; + +AutoDelete mci=mtl::CreateVertexColor2D(&cfg); + +material_instance=CreateMaterialInstance(mci); +``` + +## 2nd +注册材质系统引入后的方法,通过名称"VertexColor2D"来创建MaterialCreateInfo +```C++ +mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Triangles); + +cfg.coordinate_system=CoordinateSystem2D::NDC; +cfg.local_to_world=false; + +AutoDelete mci=mtl::CreateMaterialCreateInfo("VertexColor2D",&cfg); + +material_instance=CreateMaterialInstance(mci); +``` + +## 3rd +其实是第二种方法在WorkObject层面的封装 +```C++ +mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2D",PrimitiveType::Triangles); + +cfg.coordinate_system=CoordinateSystem2D::NDC; +cfg.local_to_world=false; + +material_instance=CreateMaterialInstance("VertexColor2D",&cfg); +``` + +## 4th +是更进一步的封装,通过材质配置文件连带Material2DCreateConfig的具体配置都进行了封闭。 +```C++ +AssetPath path(":/asset/test_material.mtl"); + +material_instance=CreateMaterialInstance(path); +``` \ No newline at end of file