INNER CODE UNIT · C++

z1

vectozavr/3dzavr · engine/Engine.cpp:67

        double z1 = projT1[0].z() + projT1[1].z() + projT1[2].z();
        double z2 = projT2[0].z() + projT2[1].z() + projT2[2].z();
        return z1 > z2;
    });
    Time::stopTimer("d sort triangles");

    Time::startTimer("d rasterization");
    auto cameraPosition = camera->transformMatrix()->fullPosition();
    // Draw opaque (non-transparent) triangles
    for (const auto& [projectedTriangle, triangle, material]: _projectedOpaqueTriangles) {
        screen->drawTriangleWithLighting(projectedTriangle, triangle, _lightSources, cameraPosition, material);
    }
    // Draw transparent triangles
    for (const auto& [projectedTriangle, triangle, material]: _projectedTranspTriangles) {
        screen->drawTriangleWithLighting(projectedTriangle, triangle, _lightSources, cameraPosition, material);
    }
    // Draw lines
    for (const auto& [line, color]: _projectedLines) {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…