Jump to content

Josh

Staff
  • Posts

    24,626
  • Joined

  • Last visited

Everything posted by Josh

  1. Here is a working build of the Khronos IBL sampler command-line tool. This outputs a KTX file, so this is only step one. IBLSampler.zip Source code: glTF-IBL-Sampler.zip The project was compiled from this: https://github.com/pcwalton/glTF-IBL-Sampler/tree/ac00ecdc90794b8f3cd024359216d0bf1a606a0d The official repo uses a lot of dependencies that won't build.
  2. Josh

    Auto exposure

  3. If you want to convert a lot of files in a batch process, you can do something like this: local dir = LoadDir("mask") for n = 1, #dir do collectgarbage() local pixmap = LoadPixmap("mask/"..dir[n]) if pixmap ~= nil then local x, y, r, g, b, a for x = 0, pixmap.size.x - 1 do for y = 0, pixmap.size.y - 1 do local rgba = pixmap:ReadPixel(x, y) r = Red(rgba) g = Green(rgba) b = Blue(rgba) a = Alpha(rgba) rgba = Rgba(g, 255 - a, r, 255) pixmap:WritePixel(x, y, rgba) end end pixmap:Save("mask/"..dir[n]) end end
  4. Updated version. This actually can load some scenes correctly, although the way unity does LODs is really weird and not every scene is compatible. Definitely break all prefabs before exporting. Unity Import.lua
  5. This extension adds a menu item in the texture editor that will do the necessary channel swizzle to convert a unity "mask texture" into the standard occlusion / roughness / metal map that Khronos glTF and Ultra use. After the process finishes you can save the texture, probably in DDS format with BC7 compression, and start using it. Unity Mask Texture.lua
  6. In earlier builds, yes. In more recent builds I changed it so the MSAA resolve happens at the beginning of the post-processing chain. The reason for this is that the depth buffer is the only texture that really needs to retain its full resolution, and the shaders can access that anyways, so only depth-based effects need to worry about this.
  7. Keep in mind, if you have 45 degree lines they will hit some spots where they appear completely solid, and in some positions they will disappear, because it's a checker pattern.
  8. You could also use alpha masking, and define a fragment shader in the depth pass settings.
  9. Maybe not: https://discord.com/channels/1175951843118031049/1175951843612954786/1242663005158772756
  10. If you add this inside the shaderfamily structure in the file, it will behave like a standard shader: "root": "Shaders/PBR.fam" Note that this shader is not really line stippling, it just discards pixels in a grid pattern.
  11. The latest build on Steam adds a timer that ticks once every second. This causes the program to not sit idly for long periods of time, and will cause the Steam_runcallbacks function to be called periodically.
  12. 0.9.6 Added a timer so the Steam callbacks function gets called periodically when the application is idle. Double-clicking an entity in the scene browser now navigates the viewports to that object.
  13. This extension loads a scene from Unity. Place this file in "Ultra Engine/Scripts/Start/Extensions": Unity Import.lua You can use this plugin to export a JSON file from Unity containing the open scene: https://assetstore.unity.com/packages/tools/integration/scene-to-json-exporter-280989 I recommend breaking any prefabs you have before exporting. These files can then be loaded with this extension. Select the Script > Utilities > Import Unity Scene menu item and open the JSON file you saved. Currently just the basic hierarchy is loaded with no visible meshes, but it does work.
  14. Lua projects include a .bat file in the base folder that will open VSCode with the project folder loaded and the main.lua file open.
  15. Hmmm, perhaps the OP's problem is that Intel graphics are being used instead of the Nvidia card. You can check by adding this code to your main loop: while (PeekEvent()) { auto e = WaitEvent(); if (e.id == EVENT_STARTRENDERER) { Print(e.text); } }
  16. When the application is dormant, SteamAPI_RunCallbacks() does not get called for however long it is sitting there. If this is a Steam-exclusive problem then I am thinking maybe this function performs actions based on time elapsed, so it is called after a long pause it performs some kind of tasks that take a long time, causing the program to stop responding.
  17. If you select the Ultra .mdl format, saving animations is supported. Version 0.9.6 is required for this.
  18. 0.9.6 Fixed bug in mesh colliders that inverted all the polygons. To add entities to the flowgraph, drag them from the scene tree. Other bug fixes.
  19. Please upload the prefab and any models it uses.
  20. The overload you are using above expects integer coordinates but you are giving it a world position. If either of those values is less than zero or greater than the terrain resolution, the returned value will be 0.0. You can do this instead: float x = entity->GetPosition(true).x + distance * cos; float z = entity->GetPosition(true).z + distance * sin; float y = terrain->GetElevation(Vec3(x, 0.0f, z));
  21. This will be fixed in the next build. All mesh colliders were effected.
  22. Is this only happening with the Steam build? Has anyone experienced this with the standalone? https://steamcommunity.com/discussions/forum/1/3430075523240630574/
×
×
  • Create New...