INNER CODE UNIT · C++
z2
vectozavr/3dzavr · engine/Engine.cpp:68
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) {
screen->drawLine(line, color);