Jump to content

Josh

Staff
  • Posts

    22,900
  • Joined

  • Last visited

Everything posted by Josh

  1. Maybe create a new thread with more specific details?
  2. This seems to be fixed on AMD. I am not sure why because I did not merge the terrain textures like I did shadow maps.
  3. Hmmm, that does not really make sense because there is nothing that ties a 3D interface to any particular window. There is no connection between them. A 3D interface can be drawn on the screen, it can appear on a panel in the 3D game world, or it can appear as a hovering VR menu. The same interface could appear in a framebuffer in multiple windows. Tying a 3D interface to a window would be like tying some entity to a window.
  4. That's why I always use std::array.
  5. Are you using multiple threads?
  6. Okay, so you are saying this issue is solved on Nvidia cards?
  7. Maybe, if you install the right Windows SDK and compiler? Why would you want to?
  8. Interfaces that are used in 3D graphics do not have a window to return, since they were not created on any window.
  9. I believe I have solved the core issue but am waiting to confirm it. It would be nice to have an example that that easily demonstrates the problem.
  10. The core problem of this issue is now solved and will be included in an upcoming update. I never did get the nonuniform feature working. I am not sure if it even works, and I am not sure if it has a negative impact on performance, and I just don't care,
  11. Josh

    Artifacts Fixed!

    Several point lights plus the directional light, no artifacts.
  12. Josh

    Artifacts Fixed!

    Not one of my most beautiful shots, but one of the most important. The prescribed changes I made have resolved our errors. These could happen in some situations on Nvidia hardware, but were especially predominant on AMD cards. GPU is a Radeon 6600.
  13. Hi, can you please upload a map that demonstrates this problem? I tried to recreate it with the attached map but I don't know how. start.zip
  14. Yes, that is a bit more clear, thank you. I am working on something that I believe may solve this issue automatically.
  15. Are you saying that the editor crashing is related to the preview app not closing? How do you know these things are related?
  16. Updated the editor. Editing should be a bit snappier now, especially terrain.
  17. Update for this is available now.
  18. Another update, just fixes a small memleak issue reported by @klepto2
  19. I think it is. I just checked with the source build. You are opted into the beta branch on Steam, right? The current build number of the editor on Steam is 485.
  20. Okay, two more things I found: I added a global list of entities, but since it stores weak pointers it won't get cleaned up until the user calls GetEntities() if large numbers of entities are deleted. I added an internal call to this method in the world Update method, so it will always trim the list of dead entities. Your example is adding entities in faster than the rendering thread can keep up. The entities are being added each frame, but the rendering thread keeps them around a little bit longer, so it is being overwhelmed. There is a renderable entity limit of 65536 (some entities take up more than one slot, so it can be a little less than this). This is because the engine stores entity IDs as unsigned short integers on the GPU. There is a tendency for things to grow a little bit when numbers of items fluctuate, due to the nature of how memory resizing is implemented. STL vectors for example get bigger when they need to, but they don't release memory if the are resized to a small size, with the idea they may need to grow again. In the same manner, I don't ever make GPU storage buffers smaller, I just let them grow as needed, and if the application needs less space, I just keep the extra memory as a reserve. As long as the memory display in VS studio looks flat after a few moments, then you are good. I will check to see if there is anything else I can improve and then do another build and upload these fixes. #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280 * displays[0]->scale, 720 * displays[0]->scale, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a world auto world = CreateWorld(); auto camera = CreateCamera(world); camera->SetClearColor(0.125); camera->SetFov(70); camera->Move(0, 2, -8); shared_ptr<Entity> main_instance = CreatePlane(world, 10.0, 10.0, 256, 256); //shared_ptr<Entity> main_instance = CreateModel(world); vector<shared_ptr<Entity>> instances; int n = 0; //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { instances.clear(); ++n; if (n == 100) { n = 0; for (int i = 0; i < 100; i++) instances.push_back(main_instance->Instantiate(world)); } world->Update(); world->Render(framebuffer); window->SetText("MEM: " + String(GetMemoryUsage() / 1024) + " kb"); } return 0; }
×
×
  • Create New...