Jump to content

Instance count is wrong?


SpiderPig
 Share

Go to solution Solved by Josh,

Recommended Posts

In this example without any instances I have an instance count of 5, If I create an instance of the box that count goes up to 7, not 6.  Is this a bug or has it made more instances for the render thread and the world is tracking those too?

I need to know because another project of mine my tree model increases the instance count by 4 for each instance even though it's one model.  :blink:   Just want to be sure if it's my model, or a bug, or a natural part of the engines workings.

#include "UltraEngine.h"
using namespace UltraEngine;


int main(int argc, const char* argv[])
{
    auto displays = GetDisplays();
    auto window = CreateWindow("Ultra Engine", 0, 0, 1440, 900, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);
    auto world = CreateWorld();
    world->RecordStats();
    auto framebuffer = CreateFramebuffer(window);

    //Create a camera
    auto camera = CreateCamera(world);
    camera->SetSweptCulling(true);
    camera->SetClearColor(0.125);
    camera->SetFov(70);
    camera->SetPosition(0, 0, -3);
    camera->SetRotation(0, 25, 0);

    auto font = LoadFont("Fonts/arial.ttf");
    auto ui = CreateInterface(world, font, framebuffer->size);
    ui->SetRenderLayers(2);
    ui->root->SetColor(0, 0, 0, 0);

    auto w_fps = CreateLabel("FPS : 0", 10, 10, 150, 30, ui->root);
    auto w_vertices = CreateLabel("Vertices : 0", 10, 30, 150, 30, ui->root);
    auto w_primitives = CreateLabel("Primitives : 0", 10, 50, 150, 30, ui->root);
    auto w_instances = CreateLabel("Instances : 0", 10, 70, 150, 30, ui->root);

    auto ui_cam = CreateCamera(world, PROJECTION_ORTHOGRAPHIC);
    ui_cam->SetPosition(framebuffer->size.x / 2, framebuffer->size.y / 2, 0);
    ui_cam->SetRenderLayers(2);
    ui_cam->SetClearMode(CLEAR_DEPTH);

    auto light = CreateDirectionalLight(world);
    light->SetRotation(35, 45, 0);
    light->SetRange(-10, 10);
    light->SetColor(5.0f);

    auto box = CreateBox(nullptr);

    //Comment out this line and instacne count is 5
    //Leave this line uncommented and the instacne count is 7
    auto inst = box->Instantiate(world);

    while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false)
    {
        w_fps->SetText("FPS : " + WString(world->renderstats.framerate));
        w_vertices->SetText("Vertices : " + WString(world->renderstats.vertices));
        w_primitives->SetText("Primitives : " + WString(world->renderstats.polygons));
        w_instances->SetText("Instances : " + String(world->renderstats.instances));


        world->Update();
        world->Render(framebuffer, false);
    }

    return 0;
}

 

Link to comment
Share on other sites

If I remember correctly, the instance count measures the instances which get drawn in the current frame. In your case the instance increase might be 2 because 1 instance is rendered for the rendering and the other one is rendered for the shadowmap of the directional light. So in the stats you need to consider all render targets.

  • Thanks 1
  • Intel® Core™ i7-8550U @ 1.80 Ghz 
  • 16GB RAM 
  • INTEL UHD Graphics 620
  • Windows 10 Pro 64-Bit-Version
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...