Jump to content

Josh

Staff
  • Posts

    23,116
  • Joined

  • Last visited

Everything posted by Josh

  1. Wouldn't it have to be cast to a uvec2? The first four bytes could form a zero and the second four bytes could be another value, and an uint would not detect that.
  2. I will do this so it will choose the type based on what is in the shader, and you can use either. It also stores a shared pointer to the texture so it can't get deleted as long as it is bound to the shader: void RenderShader::SetUniform(const int location, std::shared_ptr<RenderTexture> tex) { if (not Finalize()) return; if (location < 0 or location >= uniforms.size()) return; auto& u = uniforms[location]; if (u.defined and u.resource == tex) return; if (u.size != 1) return; GLuint64 handle = 0; switch (u.type) { case GL_UNSIGNED_INT64_ARB: if (tex) handle = tex->GetHandle(); glProgramUniformHandleui64ARB(program, u.location, handle); break; case GL_UNSIGNED_INT_VEC2: if (tex) handle = tex->GetHandle(); glProgramUniform2uiv(program, u.location, 1, (GLuint*)handle); break; default: return; break; } glCheckError(); u.defined = true; u.resource = nullptr; if (handle) u.resource = tex; }
  3. The only downside is you can no longer check if the value is 0 to disable the texture.
  4. Don't use integer uniforms right now.
  5. No, that will go out tomorrow.
  6. Josh

    AppendFile

    https://www.ultraengine.com/learn/Stream_Write?lang=cpp
  7. Okay, it must just be standard shadow acne then. The default setting needs adjustment.
  8. What GPU do you have? I do not see anything on my GEForce 1080 in the editor.
  9. I think this occurs because of the asynchronous culling system. If I implement GPU culling this problem will be automatically fixed.
  10. @SpiderPig In the attached map, I disabled shadows on the spotlight. Do you see the same banding pattern in this map? Does it occur in the editor or only in the game? start.zip
  11. Here is an example program. The thickness parameter will work in the next build that goes up: #include "UltraEngine.h" #include "ComponentSystem.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*2, 2*720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a world auto world = CreateWorld(); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.125); camera->SetFov(70); camera->SetPosition(0, 0, -2); //Create a light auto light = CreateBoxLight(world); light->SetRotation(35, 45, 0); light->SetRange(-10, 10); //Create a box auto box = CreateBox(world); camera->AddPostEffect(LoadPostEffect("Shaders/Outline.fx")); //camera->SetUniform(0, "Thickness", 50); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { box->Turn(0, 1, 0); world->Update(); world->Render(framebuffer); } return 0; }
  12. If I increase the number of sounds I am getting a syntax error in another part of the code...invstigating further...
  13. How do I trigger the bug in your program? I tried adding this code right before the main loop but there was no error: sounds = {} for t=1, 28 do sounds[t] = LoadSound("https://raw.githubusercontent.com/UltraEngine/Documentation/master/Assets/Sound/notification.wav", LOAD_UNMANAGED ) end sounds[28]:Play() while window:KeyDown(KEY_ESCAPE) == false and window:Closed() == false do
  14. Fix is available on standalone build now.
  15. Ah okay, if you enable alpha discard on a material on an animated model it will display the error.
  16. Wait, if it is using a fragment shader in a depth pass, it must be using alpha discard...
  17. Bug fixes. Added Camera::SetUniform, for post-effect parameters.
  18. I am not able to produce this bug in a new project, using the player robot model, on my Nvidia card.
  19. I added some code that automatically decompresses the pixmap to another format, resizes it, and compresses it again.
  20. This will be fixed in the next build. The command is now called Camera::SetUniform, and it accepts the following values: int, ivec2, ivec3, ivec4, float, vec2, vec2, vec4, texture Textures will be passed as a uvec2 bindless handle. The texture will be kept in memory while it is used by a camera.
  21. Map loading from asset browser now supported. Added clear button in world settings environment map fields (icon has the wrong path, will be fixed in next update)
  22. https://registry.khronos.org/OpenGL/specs/gl/glspec46.core.pdf
  23. This extension automatically converts images to DDS format, taking the best guess at what type of compression to use. Build 598 or greater is required. DDSConverter.lua
×
×
  • Create New...