updated PureColor2D material codes

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-05-22 14:31:37 +08:00
parent fa7ecb91ac
commit 6b498d7e91
8 changed files with 45 additions and 29 deletions

2
CMCore

@ -1 +1 @@
Subproject commit fbe4815c748346fae03d08bed7d228f45f02ac79
Subproject commit 462f0792835cc5022771a3594e312efa365a5fae

@ -1 +1 @@
Subproject commit f5cfe02eed045d84ee03a9e32d62029c71fec530
Subproject commit 95ed7ae08b3c50055d2a162e22585c7c1cefc763

View File

@ -13,38 +13,40 @@ endmacro()
CreateProject("Basic" 1st_draw_triangle_in_NDC first_triangle.cpp)
CreateProject("Basic" 2nd_draw_triangle_use_UBO second_triangle.cpp)
CreateProject("Basic" 3rd_draw_triangle_use_RenderList third_triangle.cpp)
CreateProject("Basic" FragCoord FragCoordTest.cpp)
CreateProject("Basic" indices_rect indices_rect.cpp)
CreateProject("Basic" FullScreenTriangle FullScreenTriangle.cpp)
CreateProject("Basic" InstanceTriangle InstanceTriangle.cpp)
CreateProject("Basic" 4th_draw_triangle_use_MaterialInstance fourth_triangle.cpp)
#CreateProject("Basic" FragCoord FragCoordTest.cpp)
#CreateProject("Basic" indices_rect indices_rect.cpp)
#CreateProject("Basic" FullScreenTriangle FullScreenTriangle.cpp)
#CreateProject("Basic" InstanceTriangle InstanceTriangle.cpp)
CreateProject("Texture" TextureFormat TextureFormat.cpp)
CreateProject("Texture" texture_rect texture_rect.cpp)
#CreateProject("Texture" texture_rect texture_rect.cpp)
#CreateProject("Texture" HQFilterTexture HQFilterTexture.cpp)
#CreateProject(06.Geometry2D Geometry2D.cpp)
CreateProject("Geometry2D" RectanglePrimitive RectanglePrimitive.cpp)
CreateProject("Tile" DrawTile DrawTile.cpp)
CreateProject("Tile" DrawText DrawText.cpp)
#CreateProject("Geometry2D" RectanglePrimitive RectanglePrimitive.cpp)
#CreateProject("Tile" DrawTile DrawTile.cpp)
#CreateProject("Tile" DrawText DrawText.cpp)
CreateProject("Geometry3D " Geometry3D Geometry3D.cpp)
#CreateProject("Geometry3D " Geometry3D Geometry3D.cpp)
CreateProject("Scene" SceneTree SceneTree.cpp)
#CreateProject("Scene" SceneTree SceneTree.cpp)
#CreateProject("Scene" LoadStaticMesh LoadStaticMesh.cpp LoadScene.cpp)
CreateProject("Scene" InlineGeometryScene InlineGeometryScene.cpp)
#CreateProject("Scene" InlineGeometryScene InlineGeometryScene.cpp)
CreateProject("Scene/Sky" SkyColor SkyColor.cpp)
CreateProject("Scene/Sky" Atmosphere Atmosphere.cpp)
#CreateProject("Scene/Sky" SkyColor SkyColor.cpp)
#CreateProject("Scene/Sky" Atmosphere Atmosphere.cpp)
CreateProject("Advanced Rendering" OffscreenRender OffscreenRender.cpp)
#CreateProject("Advanced Rendering" OffscreenRender OffscreenRender.cpp)
#CreateProject(12.PBRBasic PBRBasic.cpp)
#CreateProject(12.Deferred Deferred.cpp)
CreateProject("Advanced Rendering" DeferredRender DeferredRender.cpp)
#CreateProject("Advanced Rendering" DeferredRender DeferredRender.cpp)
#CreateProject(14.AutoMaterial auto_material.cpp)
CreateProject("Texture" Cubemap Cubemap.cpp)
CreateProject("Texture" EquirectangularMap EquirectangularMap.cpp)
CreateProject("Picking" RayPicking RayPicking.cpp)
#CreateProject("Texture" Cubemap Cubemap.cpp)
#CreateProject("Texture" EquirectangularMap EquirectangularMap.cpp)
#CreateProject("Picking" RayPicking RayPicking.cpp)
CreateProject("Landscape" TerrainSimple TerrainSimple.cpp)
#CreateProject("Landscape" TerrainSimple TerrainSimple.cpp)

View File

@ -1,5 +1,5 @@
// third_triangle
// 该范例主要演示使用2D坐系统直接绘制一个渐变色的三角形
// second_triangle
// 该范例主要演示使用2D坐系统直接绘制一个渐变色的三角形,使用UBO传递Viewport信息
#include"VulkanAppFramework.h"
#include<hgl/math/Math.h>

View File

@ -1,4 +1,4 @@
// second_triangle
// third_triangle
// 该范例主要演示使用场景树系统绘制三角形
#include"VulkanAppFramework.h"

View File

@ -25,5 +25,6 @@ public:
};//struct Material2DConfig:public MaterialConfig
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
MaterialCreateInfo *CreatePureColor2D(const Material2DConfig *);
STD_MTL_NAMESPACE_END
#endif//HGL_GRAPH_MTL_2D_CONFIG_INCLUDE

View File

@ -1,9 +1,13 @@
#include"Std2DMaterial.h"
#include<hgl/shadergen/MaterialCreateInfo.h>
#include<hgl/math/Vector.h>
STD_MTL_NAMESPACE_BEGIN
namespace
{
constexpr const char mi_codes[]="vec4 Color;"; //材质实例代码
constexpr const uint32_t mi_bytes=sizeof(Vector4f); //材质实例数据大小
constexpr const char vs_main[]=R"(
void main()
{
@ -13,20 +17,26 @@ void main()
})";
constexpr const char fs_main[]=R"(
void main()
{
MaterialInstance mi=GetMI();
Color=mi.Color;
})";
})";// ^ ^
// | |
// | +--ps:这里的mi.Color是材质实例中的数据MaterialInstance结构对应上面C++代码中的mi_codes
// +--ps:这里的Color就是最终的RT
class MaterialPureColor2D:public Std2DMaterial
{
public:
using Std2DMaterial::Std2DMaterial;
MaterialPureColor2D(const Material2DConfig *c):Std2DMaterial(c)
{
mci->SetMaterialInstance( mi_codes, //材质实例glsl代码
mi_bytes, //材质实例数据大小
VK_SHADER_STAGE_FRAGMENT_BIT); //只在Fragment Shader中使用材质实例最终数据
}
~MaterialPureColor2D()=default;
bool CreateVertexShader(ShaderCreateInfoVertex *vsc) override

View File

@ -19,7 +19,10 @@ void main()
void main()
{
Color=Input.Color;
})";
})";// ^ ^
// | |
// | +--ps:这里的Input.Color就是上一个Shader中的Output.Color
// +--ps:这里的Color就是最终的RT
class MaterialVertexColor2D:public Std2DMaterial
{