updated PureColor2D material codes
This commit is contained in:
parent
fa7ecb91ac
commit
6b498d7e91
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit fbe4815c748346fae03d08bed7d228f45f02ac79
|
Subproject commit 462f0792835cc5022771a3594e312efa365a5fae
|
@ -1 +1 @@
|
|||||||
Subproject commit f5cfe02eed045d84ee03a9e32d62029c71fec530
|
Subproject commit 95ed7ae08b3c50055d2a162e22585c7c1cefc763
|
@ -13,38 +13,40 @@ endmacro()
|
|||||||
CreateProject("Basic" 1st_draw_triangle_in_NDC first_triangle.cpp)
|
CreateProject("Basic" 1st_draw_triangle_in_NDC first_triangle.cpp)
|
||||||
CreateProject("Basic" 2nd_draw_triangle_use_UBO second_triangle.cpp)
|
CreateProject("Basic" 2nd_draw_triangle_use_UBO second_triangle.cpp)
|
||||||
CreateProject("Basic" 3rd_draw_triangle_use_RenderList third_triangle.cpp)
|
CreateProject("Basic" 3rd_draw_triangle_use_RenderList third_triangle.cpp)
|
||||||
CreateProject("Basic" FragCoord FragCoordTest.cpp)
|
CreateProject("Basic" 4th_draw_triangle_use_MaterialInstance fourth_triangle.cpp)
|
||||||
CreateProject("Basic" indices_rect indices_rect.cpp)
|
|
||||||
CreateProject("Basic" FullScreenTriangle FullScreenTriangle.cpp)
|
#CreateProject("Basic" FragCoord FragCoordTest.cpp)
|
||||||
CreateProject("Basic" InstanceTriangle InstanceTriangle.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" TextureFormat TextureFormat.cpp)
|
||||||
CreateProject("Texture" texture_rect texture_rect.cpp)
|
#CreateProject("Texture" texture_rect texture_rect.cpp)
|
||||||
#CreateProject("Texture" HQFilterTexture HQFilterTexture.cpp)
|
#CreateProject("Texture" HQFilterTexture HQFilterTexture.cpp)
|
||||||
#CreateProject(06.Geometry2D Geometry2D.cpp)
|
#CreateProject(06.Geometry2D Geometry2D.cpp)
|
||||||
|
|
||||||
CreateProject("Geometry2D" RectanglePrimitive RectanglePrimitive.cpp)
|
#CreateProject("Geometry2D" RectanglePrimitive RectanglePrimitive.cpp)
|
||||||
CreateProject("Tile" DrawTile DrawTile.cpp)
|
#CreateProject("Tile" DrawTile DrawTile.cpp)
|
||||||
CreateProject("Tile" DrawText DrawText.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" LoadStaticMesh LoadStaticMesh.cpp LoadScene.cpp)
|
||||||
CreateProject("Scene" InlineGeometryScene InlineGeometryScene.cpp)
|
#CreateProject("Scene" InlineGeometryScene InlineGeometryScene.cpp)
|
||||||
|
|
||||||
CreateProject("Scene/Sky" SkyColor SkyColor.cpp)
|
#CreateProject("Scene/Sky" SkyColor SkyColor.cpp)
|
||||||
CreateProject("Scene/Sky" Atmosphere Atmosphere.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.PBRBasic PBRBasic.cpp)
|
||||||
#CreateProject(12.Deferred Deferred.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(14.AutoMaterial auto_material.cpp)
|
||||||
|
|
||||||
CreateProject("Texture" Cubemap Cubemap.cpp)
|
#CreateProject("Texture" Cubemap Cubemap.cpp)
|
||||||
CreateProject("Texture" EquirectangularMap EquirectangularMap.cpp)
|
#CreateProject("Texture" EquirectangularMap EquirectangularMap.cpp)
|
||||||
CreateProject("Picking" RayPicking RayPicking.cpp)
|
#CreateProject("Picking" RayPicking RayPicking.cpp)
|
||||||
|
|
||||||
CreateProject("Landscape" TerrainSimple TerrainSimple.cpp)
|
#CreateProject("Landscape" TerrainSimple TerrainSimple.cpp)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// third_triangle
|
// second_triangle
|
||||||
// 该范例主要演示使用2D坐系统直接绘制一个渐变色的三角形
|
// 该范例主要演示使用2D坐系统直接绘制一个渐变色的三角形,使用UBO传递Viewport信息
|
||||||
|
|
||||||
#include"VulkanAppFramework.h"
|
#include"VulkanAppFramework.h"
|
||||||
#include<hgl/math/Math.h>
|
#include<hgl/math/Math.h>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// second_triangle
|
// third_triangle
|
||||||
// 该范例主要演示使用场景树系统绘制三角形
|
// 该范例主要演示使用场景树系统绘制三角形
|
||||||
|
|
||||||
#include"VulkanAppFramework.h"
|
#include"VulkanAppFramework.h"
|
||||||
|
@ -25,5 +25,6 @@ public:
|
|||||||
};//struct Material2DConfig:public MaterialConfig
|
};//struct Material2DConfig:public MaterialConfig
|
||||||
|
|
||||||
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
|
MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *);
|
||||||
|
MaterialCreateInfo *CreatePureColor2D(const Material2DConfig *);
|
||||||
STD_MTL_NAMESPACE_END
|
STD_MTL_NAMESPACE_END
|
||||||
#endif//HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
|
#endif//HGL_GRAPH_MTL_2D_CONFIG_INCLUDE
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
#include"Std2DMaterial.h"
|
#include"Std2DMaterial.h"
|
||||||
#include<hgl/shadergen/MaterialCreateInfo.h>
|
#include<hgl/shadergen/MaterialCreateInfo.h>
|
||||||
|
#include<hgl/math/Vector.h>
|
||||||
|
|
||||||
STD_MTL_NAMESPACE_BEGIN
|
STD_MTL_NAMESPACE_BEGIN
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
constexpr const char mi_codes[]="vec4 Color;"; //材质实例代码
|
||||||
|
constexpr const uint32_t mi_bytes=sizeof(Vector4f); //材质实例数据大小
|
||||||
|
|
||||||
constexpr const char vs_main[]=R"(
|
constexpr const char vs_main[]=R"(
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -13,20 +17,26 @@ void main()
|
|||||||
})";
|
})";
|
||||||
|
|
||||||
constexpr const char fs_main[]=R"(
|
constexpr const char fs_main[]=R"(
|
||||||
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
MaterialInstance mi=GetMI();
|
MaterialInstance mi=GetMI();
|
||||||
|
|
||||||
Color=mi.Color;
|
Color=mi.Color;
|
||||||
})";
|
})";// ^ ^
|
||||||
|
// | |
|
||||||
|
// | +--ps:这里的mi.Color是材质实例中的数据,MaterialInstance结构对应上面C++代码中的mi_codes
|
||||||
|
// +--ps:这里的Color就是最终的RT
|
||||||
|
|
||||||
class MaterialPureColor2D:public Std2DMaterial
|
class MaterialPureColor2D:public Std2DMaterial
|
||||||
{
|
{
|
||||||
public:
|
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;
|
~MaterialPureColor2D()=default;
|
||||||
|
|
||||||
bool CreateVertexShader(ShaderCreateInfoVertex *vsc) override
|
bool CreateVertexShader(ShaderCreateInfoVertex *vsc) override
|
||||||
|
@ -19,7 +19,10 @@ void main()
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
Color=Input.Color;
|
Color=Input.Color;
|
||||||
})";
|
})";// ^ ^
|
||||||
|
// | |
|
||||||
|
// | +--ps:这里的Input.Color就是上一个Shader中的Output.Color
|
||||||
|
// +--ps:这里的Color就是最终的RT
|
||||||
|
|
||||||
class MaterialVertexColor2D:public Std2DMaterial
|
class MaterialVertexColor2D:public Std2DMaterial
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user