圆形的顶点数据:
struct CircleVertex
{
glm::vec3 WorldPosition; // 世界空间位置
glm::vec3 LocalPosition; // 局部坐标位置
glm::vec4 Color;
float Thickness;
float Fade;
int EntityID;
};
初始化圆形渲染器数据:
s_Data.CircleVertexArray = VertexArray::Create();
s_Data.CircleVertexBuffer = VertexBuffer::Create(s_Data.MaxVertices * sizeof(CircleVertex));
s_Data.CircleVertexBuffer->SetLayout({
{ ShaderDataType::Float3, "a_WorldPosition" },
{ ShaderDataType::Float3, "a_LocalPosition" },
{ ShaderDataType::Float4, "a_Color" },
{ ShaderDataType::Float, "a_Thickness" },
{ ShaderDataType::Float, "a_Fade" },
{ ShaderDataType::Int, "a_EntityID" }
});
s_Data.CircleVertexArray->AddVertexBuffer(s_Data.CircleVertexBuffer);
s_Data.CircleVertexArray->SetIndexBuffer(quadIB); // Use quad IB
s_Data.CircleVertexBufferBase = new CircleVertex[s_Data.MaxVertices];

Leave a comment