Skip to content

[Question] Why does my code fail to render color on a cube? #129

Closed
@Davilarek

Description

@Davilarek

I know I probably shouldn't be asking this in Issues but this project as far as I know doesn't have a discord or any other way of communication.

rw::Atomic* CreateCube()
{
    float size = 0.25f; // Size of the cube

    rw::V3d vertices[8] = {
        {-size, -size, -size},
        {size, -size, -size},
        {size, size, -size},
        {-size, size, -size},
        {-size, -size, size},
        {size, -size, size},
        {size, size, size},
        {-size, size, size} };

    rw::uint16 indices[36] = {
        0, 1, 2, 0, 2, 3, // Front face
        1, 5, 6, 1, 6, 2, // Right face
        5, 4, 7, 5, 7, 6, // Back face
        4, 0, 3, 4, 3, 7, // Left face
        3, 2, 6, 3, 6, 7, // Top face
        4, 5, 1, 4, 1, 0  // Bottom face
    };

    rw::Geometry* geometry = rw::Geometry::create(8, 36, 0);
    for (int i = 0; i < 36; ++i)
    {
        rw::Triangle* triangle = &(geometry->triangles[i]);
		triangle->matId = 0;
		triangle->v[0] = indices[i * 3];
		triangle->v[1] = indices[i * 3 + 1];
		triangle->v[2] = indices[i * 3 + 2];
    }
    auto mat = rw::Material::create();
    mat->color = rw::makeRGBA(200, 64, 200, 255);
    geometry->matList.appendMaterial(mat);

    geometry->unlock();

	size_t meshI = geometry->meshHeader->numMeshes;
    for (int i = 0; i < meshI; i++)
    {
        rw::Mesh* t = geometry->meshHeader->getMeshes();
        t[i].material = mat;
    }
    geometry->morphTargets->vertices = (rw::V3d*)rwMalloc(sizeof(rw::V3d)*(sizeof(vertices)/sizeof(*vertices)),0);
    for (int i = 0; i < 8; ++i)
    {
        geometry->morphTargets->vertices[i] = vertices[i];
    }

    rw::Atomic* atomic = rw::Atomic::create();
    atomic->geometry = geometry;
    return atomic;
}

This code renders the cube plain black

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions