重构材质系统

This commit is contained in:
2025-12-03 23:38:08 +08:00
parent bf62257884
commit 3c0e177905
47 changed files with 755 additions and 1151 deletions
@@ -31,7 +31,7 @@ public:
return (a < b) ? a : b;
}
static DV_CORE_API fVector4 texture2D(const RenderPipe& pipe, const Material::TextureInfo& texturePtr, const fVector2& uv, const fVector4& defaultValue);
static DV_CORE_API fVector4 texture2D(const RenderPipe& pipe, const TextureInfo& texturePtr, const fVector2& uv, const fVector4& defaultValue);
};
DV_CORE_END_NAMESPACE
@@ -16,9 +16,11 @@ public:
virtual const VertexDesc& getOutputVertexDesc() const = 0;
typedef std::function<DeviceBufferAccessorConstPtr(VertexElementType)> SetInputAttributeFunc;
virtual void prepare(const RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc) = 0;
virtual void begin(const RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc) = 0;
virtual void process(size_t index, void* outputVertex, fVector3& vertexWorldPos) = 0;
virtual void process(size_t index, float32_t* outputVertex) = 0;
virtual void end() = 0;
};
class PixelShaderInterface
@@ -26,9 +28,11 @@ class PixelShaderInterface
public:
virtual const char* getName(void) const = 0;
virtual void prepare(const RenderPipe* pipe, MaterialConstPtr material) = 0;
virtual void begin(const RenderPipe* pipe, MaterialConstPtr material) = 0;
virtual void process(const VertexDesc& veretexDesc, const float32_t* pixelData, fVector4& color) = 0;
virtual void end() = 0;
};
class ShaderFileInterface