SpiecsEngine
 
Loading...
Searching...
No Matches

◆ OnCreatePack()

bool Spices::PlanePack::OnCreatePack ( bool isCreateBuffer = true)
overridevirtual

This interface is used for build specific mesh pack data.

Parameters
[in]isCreateBufferWhether it needs to create buffer.
Returns
Returns true if Create Pack successfully.

Reimplemented from Spices::MeshPack.

Definition at line 315 of file MeshPack.cpp.

316 {
318
319 if (MeshPack::OnCreatePack(isCreateBuffer)) return true;
320
321 for (uint32_t i = 0; i < m_Rows; i++)
322 {
323 float rowRamp = i / static_cast<float>(m_Rows - 1) - 0.5f; // -0.5f ~ 0.5f
324
325 for (uint32_t j = 0; j < m_Columns; j++)
326 {
327 const uint32_t vtIndex = i * m_Columns + j;
328 float colRamp = j / static_cast<float>(m_Columns - 1) - 0.5f; // -0.5f ~ 0.5f
329
330 m_MeshResource.positions.attributes->push_back({ colRamp, rowRamp, 0.0f });
331 m_MeshResource.normals .attributes->push_back({ 0.0f, 0.0f, -1.0f });
332 m_MeshResource.colors .attributes->push_back({ 1.0f, 1.0f, 1.0f });
333 m_MeshResource.texCoords.attributes->push_back({ colRamp + 0.5, 0.5 - rowRamp });
334
335 m_MeshResource.vertices .attributes->push_back(glm::uvec4(vtIndex));
336 }
337 }
338
339 for (uint32_t i = 0; i < m_Rows - 1; i++)
340 {
341 for (uint32_t j = 0; j < m_Columns - 1; j++)
342 {
343 const uint32_t vtIndex = i * m_Columns + j;
344
345 m_MeshResource.primitiveVertices.attributes->push_back({ vtIndex, vtIndex + 1, vtIndex + m_Columns + 1 });
346 m_MeshResource.primitiveVertices.attributes->push_back({ vtIndex + m_Columns + 1, vtIndex + m_Columns, vtIndex });
347 }
348 }
349
350 if (isCreateBuffer)
351 {
353 CreateBuffer();
354 }
355
356 return true;
357 }
#define SPICES_PROFILE_ZONE
virtual bool OnCreatePack(bool isCreateBuffer=true)
This interface is used for build specific mesh pack data.
Definition MeshPack.cpp:119
MeshResource m_MeshResource
Mesh Resources.
Definition MeshPack.h:331
void CreateBuffer()
Create Vertices buffer anf Indices buffer.
Definition MeshPack.cpp:278
static void GenerateMeshLodClusterHierarchy(MeshPack *meshPack)
Generate Mesh Lod Resources.
uint32_t m_Columns
How much cols number we use.
Definition MeshPack.h:437
uint32_t m_Rows
How much rows number we use.
Definition MeshPack.h:432
std::shared_ptr< std::vector< T > > attributes
Attribute Data Array.
Definition Attribute.h:49
TexCoords texCoords
Definition MeshPack.h:71
Positions positions
Declare value.
Definition MeshPack.h:68
PrimitiveVertices primitiveVertices
Definition MeshPack.h:74

References Spices::MeshPack::CreateBuffer(), Spices::MeshProcessor::GenerateMeshLodClusterHierarchy(), m_Columns, m_Rows, and Spices::MeshPack::OnCreatePack().

Referenced by Spices::CubePack::OnCreatePack().