From cf8ca23ba99a2ff7463ad43efbb59d227e5ba186 Mon Sep 17 00:00:00 2001 From: h4570 Date: Sat, 23 Jul 2022 21:47:18 +0200 Subject: [PATCH] small documentation --- engine/inc/renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp | 1 + .../inc/renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp | 4 +++- .../inc/renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp | 2 +- engine/inc/renderer/3d/pipeline/static/static_pipeline.hpp | 4 +++- .../src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp | 1 + engine/src/renderer/3d/pipeline/static/static_pipeline.cpp | 1 - 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/engine/inc/renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp b/engine/inc/renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp index bb755fa..a3273e1 100644 --- a/engine/inc/renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp +++ b/engine/inc/renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp @@ -23,6 +23,7 @@ namespace Tyra { * Pipeline for animated models (DynamicMesh). * Supports: * - Simple PS2 clipping (culling) + * - Frustum culling * - Modes: color, texture+color, dir lights, texture + dir lights */ class DynamicPipeline : public Renderer3DPipeline { diff --git a/engine/inc/renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp b/engine/inc/renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp index ca762dd..0801d40 100644 --- a/engine/inc/renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp +++ b/engine/inc/renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp @@ -20,7 +20,9 @@ namespace Tyra { /** * Pipeline specialized in fast rendering of voxels - * Supports full "against each plane" clipping + * Supports: + * - Full "against each plane" clipping + * - Frustum culling (on noFullClipChecks = false) */ class MinecraftPipeline : public Renderer3DPipeline { public: diff --git a/engine/inc/renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp b/engine/inc/renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp index 4a5e07c..cc7492a 100644 --- a/engine/inc/renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp +++ b/engine/inc/renderer/3d/pipeline/shared/bag/pipeline_info_bag.hpp @@ -31,7 +31,7 @@ class PipelineInfoBag { /** * @brief True -> disables "clip against each plane" algorithm. - * Mandatory, default: false. + * Default: false. * * Full clip checks are slow, but they are * preventing visual artifacts, which can happen diff --git a/engine/inc/renderer/3d/pipeline/static/static_pipeline.hpp b/engine/inc/renderer/3d/pipeline/static/static_pipeline.hpp index 3931bb1..6fca5d4 100644 --- a/engine/inc/renderer/3d/pipeline/static/static_pipeline.hpp +++ b/engine/inc/renderer/3d/pipeline/static/static_pipeline.hpp @@ -23,7 +23,9 @@ namespace Tyra { /** * Pipeline for static models (StaticMesh). * Supports: - * - Full "against each plane" clipping, + * - Full "against each plane" clipping and simple PS2 clipping + * (noFullClipChecks), + * - Force enabled precise frustum culling (checks parts of given mesh) * - Modes: color(s), texture+color(s), dir lights, texture + dir lights */ class StaticPipeline : public Renderer3DPipeline { diff --git a/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp b/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp index 3f27ddc..7db26ba 100644 --- a/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp +++ b/engine/src/renderer/3d/pipeline/minecraft/minecraft_pipeline.cpp @@ -52,6 +52,7 @@ void MinecraftPipeline::render(McpipBlock* blocks, const u32& count, if (noFullClipChecks) { for (u32 i = 0; i < count; i++) cullIndexes.push_back(i); cull(blocks, cullIndexes, &texBuffers, isMulti); + return; } else { u32 culled = 0, clipped = 0; std::vector clipIndexes; diff --git a/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp b/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp index 898acdf..c2ca289 100644 --- a/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp +++ b/engine/src/renderer/3d/pipeline/static/static_pipeline.cpp @@ -23,7 +23,6 @@ void StaticPipeline::init(RendererCore* t_core) { void StaticPipeline::onUse() { core.reinitVU1Programs(); } -// TODO - Clipping mode // TODO - StaPipCore::render(StaPipBag* bags, StaPipBagPackagesBBox* bboxes, // const u32& count) // TODO - MD2 loader - choose between static/dynamic mesh