-
Posts
24,629 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Josh
-
- 1 reply
-
- 1
-
When I tried it on mine, I found a bad driver bug with one of the more advanced commands. I'll report it to Intel and hopefully get it fixed.
-
0.9.5 Editor updated with some fixes.
-
I am changing it to use the highest-res LOD.
-
Ah, I see. The pick routine uses the lowest LOD available, but in your case the model geometry is very different from the full-res model.
-
Hold on, I was looking at one of the LOD models. For the main model, it looks like the branch material can be picked, but the trunk cannot...
-
If you scene has an IBL intensity of zero or no specular and diffuse reflection maps set, things will appear very dark. However, I did also notice that the light in the asset editor world was being hidden all the time, so I am fixing that.
-
.cpp error causing crash to desktop when applying material to terrain
Josh replied to CJO Games's topic in Bug Reports
The error above indicates there is some pixel format being used that I have not written support for yet. This is why the texture ID is zero. -
.cpp error causing crash to desktop when applying material to terrain
Josh replied to CJO Games's topic in Bug Reports
This occurs when you add a new material layer to the terrain? What material are you using? The error you are seeing indicates that an unsupported texture format was probably used. I would like to know what texture file it is. -
If you look at GPU utilization on the 1080, the numbers are like this: 0.9.4 / 0.9.5 Instances: 96% / 85% Lighting 96% / 96% Animation 96% / 93% Batches 76% / 67% Again, they are for practical purposes identical in lighting and animation. The batches test had lower GPU usage, which may be caused by small changes in the visibility list processing step, since this involves 1000+ separate batches that have to be iterated through and processed in the rendering thread. The GPU usage in the instances test is strange because 0.9.5 has lower GPU utilization but higher performance. This may be attributed to small changes in shader code, although I do not know what those changes would be. 0.9.5 does use one fewer vertex attribute, but I don't really see that doubling the framerate. All in all, it looks like OpenGL 4.6 gives AMD a major performance boost and runs about the same as Vulkan on Nvidia cards in these tests.
-
I tested on my GEForce 1080, and these are the numbers I got: 0.9.4 / 0.9.5 Instances: 1206 / 2320 Lighting: 863 / 810 Animation: 1067 / 1032 Batches: 5199 / 3300 So on Nvidia it's faster in one test, slower in the other, and about the same in the other two. When you are running at 1000+ frames per second, it's very easy for small things to have a disproportionate impact on the framerate. Adding something that takes 1/4 of a millisecond will drop 6000 FPS to 4000, so I don't think at that speed the results are very meaningful. Both the instances and batches tests could have been skewed by very small changes.
-
It's working fine here. If you have the create tool selected you won't be able to select objects.
-
The biggest difficulty with getting consistent shadow map offsets is the fact that depth textures are stored in non-linear space. This is good for camera depth testing but terrible for shadows. You can see in this image the area near the light source has higher precision than the area further away from the camera. If the precision was equal for all distances it would be much easier to set or calculate an offset that would prevent the "shadow acne" artifact. My idea is to modify the gl_FragPosition.z value in the output of the vertex shader, in order to reverse the linear-to-depth transformation before it is stored in the shadow map, which will equal a linear value that can then be compared to a linear position in the shadow sampling step in the lighting shaders. I am having no luck getting this to work so far.
-
Multiple instances still running after crash to desktop.
Josh replied to CJO Games's topic in Bug Reports
If you edit a map file by hand you will destroy its contents, because there is some binary data at the end. -
Can't profile a video!
-
I wanted to talk to you guys about this topic. In the Vulkan renderer we had a transfer and render hook. I don't see any need for these two hooks anymore. Do you? What information needs to be passed to the hook? I think everything can be retrieved with functions: wglGetCurrentContext(); glGetIntegerv(GL_FRAMEBUFFER_BINDING, &fbo); At what point in the renderer should this hook be called? I am thinking after all objects are rendered, before post-processing effects. Should it be set per-camera instead of per-world perhaps?
-
The editor does not use a log file. Usually these don't help with crashes because once the crash occurs program execution stops. Are you having trouble with something?
-
I also want to note that the animations themselves seem to be coming through perfectly. The skeleton looks correct. So in the future I will be looking more closely at the skin bind matrices and initial orientation of the model, which seem wrong.
-
0.9.5 Update improves performance in debug build.
-
Lasts updates in beta branch reduced peromance a lot in debug
Josh replied to Dreikblack's topic in Bug Reports
Okay, this was being caused by all the Assert statements I had in the source. Constructing a WString from a const char apparently is pretty slow in debug builds. Once I removed that the change in framerate was more like 4000 -> 3000 in the debug build. -
Lasts updates in beta branch reduced peromance a lot in debug
Josh replied to Dreikblack's topic in Bug Reports
That does seem to be a big reduction in performance just based on a single panel being visible. I'm going from 4000 to 400 FPS when the space key is hit, in debug mode. I don't see the same change in release mode. #include "UltraEngine.h" using namespace UltraEngine; shared_ptr<Window> window; shared_ptr<Framebuffer> framebuffer; shared_ptr<World> menuWold; shared_ptr<Interface> ui; shared_ptr<Camera> uiCamera; shared_ptr<Widget> panel; shared_ptr<Icon> icon1; shared_ptr<Icon> icon2; bool isFirst = true; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_DEFAULT); //Create a world menuWold = CreateWorld(); menuWold->RecordStats(); //Create a framebuffer framebuffer = CreateFramebuffer(window); //Create light auto light = CreateBoxLight(menuWold); light->SetRange(-10, 10); light->SetRotation(15, 15, 0); light->SetColor(2); //Create camera auto camera = CreateCamera(menuWold); camera->SetClearColor(0.125); camera->SetPosition(0, 0, -3); camera->SetFov(70); uiCamera = CreateCamera(menuWold, PROJECTION_ORTHOGRAPHIC); uiCamera->SetPosition((float)framebuffer->GetSize().x * 0.5f, (float)framebuffer->GetSize().y * 0.5f, 0); uiCamera->SetRenderLayers(2); uiCamera->SetClearMode(CLEAR_DEPTH); uiCamera->SetLighting(false); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { if (window->KeyHit(KEY_SPACE)) { if (not ui) { auto default_font = LoadFont("Fonts\\arial.ttf"); ui = CreateInterface(menuWold, default_font, framebuffer->GetSize()); ui->SetRenderLayers(2); ui->root->SetColor(0.0f, 0.0f, 0.0f, 0.0f); panel = CreatePanel(10, 50, 64, 64, ui->root, PANEL_DEFAULT); icon1 = LoadIcon("https://raw.githubusercontent.com/UltraEngine/Documentation/master/Assets/Icons/help.svg"); panel->SetIcon(icon1); } } window->SetText("FPS: " + String(menuWold->renderstats.framerate)); menuWold->Update(); menuWold->Render(framebuffer, false); } return 0; } -
I believe this is fixed now.
-
Would also disable your directional light for testing.
-
0.9.5 Prefabs are back in, fixed reported bug in these.