Örgü objeleri farklı köşe düzenleri ile büyük çaba sarf etmek için iyi bir yol arıyorum (ör. Her köşe yerleşimi için bir oluşturucu sınıfı tanımlama). Aşağıda farklı köşe biçimlerinin bazı örneklerini görebilirsiniz.Opengl - farklı köşe formatları oluşturma
enum EVertexFormat
{
VERTEX_FORMAT_UNDEFINED = -1,
VERTEX_FORMAT_P1 = 0,
VERTEX_FORMAT_P1N1,
VERTEX_FORMAT_P1N1UV,
VERTEX_FORMAT_P1N1C1,
VERTEX_FORMAT_P1N1UVC1,
};
// the simplest possible vertex -- position only
struct SVertexP1
{
math::Vector3D m_position; // position of the vertex
};
struct SVertexP1N1
{
math::Vector3D m_position; // position of the vertex
math::Vector3D m_normal; // normal of the vertex
};
// a typical vertex format with position, vertex normal
// and one set of texture coordinates
struct SVertexP1N1UV
{
math::Vector3D m_position; // position of the vertex
math::Vector3D m_normal; // normal of the vertex
math::Vector2D m_uv; // (u,v) texture coordinate
};
struct SVertexP1N1C1
{
math::Vector3D m_position; // position of the vertex
math::Vector3D m_normal; // normal of the vertex
uint32_t m_color_u32; // color of the vertex
};
struct SVertexP1N1UVC1
{
math::Vector3D m_position; // position of the vertex
math::Vector3D m_normal; // normal of the vertex
math::Vector2D m_uv; // (u,v) texture coordinate
uint32_t m_color_u32; // color of the vertex
};
Arka plan, farklı nesneler oluşturmak istiyorum. Bazıları, doku koordinatlarına veya normlarına sahip olmayan ilkellerdir (örneğin, uçaklar, küreler). Öte yandan, normalden daha karmaşık nesneler, doku koordinatları vb. Gibi daha karmaşık nesneler oluşturmak istiyorum. Birden fazla işleyici sınıfını programlamaktan kaçınmak ve bunun yerine tek bir işleyici sınıfı kullanmak için akıllı bir yol veya tasarım var mı? Bunun, gölgelendiricileri de etkileyeceğinin farkındayım.
oh bu iyi bir fikir. teşekkür ederim! – bobby