Jump to content

Josh

Staff
  • Posts

    24,629
  • Joined

  • Last visited

Everything posted by Josh

  1. When you create a new project, all the stock plugins are included in the /Plugins folder.
  2. glTF / glb files are loaded directly. You just place it somewhere in your project directory and it will work: https://www.ultraengine.com/learn/modeling https://www.ultraengine.com/learn/asseteditor The recommended format is glTF because it provides easy access to the texture data, and the JSON-based glTF file can be opened in a text editor and manually edited if needed. If you want to use memory-compressed textures (you probably do), there is an option in the asset window to convert textures to DDS or Basis and resave the model. We are all noobs right now.
  3. Fixed model thumbnail generation. Fixed terrain collision problem. When "Convert textures to DDS" or "Convert textures to Basis" are used, displacement maps will be saved as uncompressed DDS.
  4. This example shows the problem. This occurs with an ortho camera when the near range is less than zero and the object is behind you. I'm not even sure this is a bug, it might just be an unexpected mathematical outcome, but I think I can prevent it from happening: #include "UltraEngine.h" #include "Components/Motion/Mover.hpp" #include "Components/Player/CameraControls.hpp" #include "Components/Player/FirstPersonControls.hpp" using namespace UltraEngine; int main(int argc, const char* argv[]) { auto cl = ParseCommandLine(argc, argv); RegisterComponent<Mover>(); RegisterComponent<CameraControls>(); RegisterComponent<FirstPersonControls>(); //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a world auto world = CreateWorld(); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); world->SetEnvironmentMap(LoadTexture("materials/environment/default/diffuse.dds"), ENVIRONMENTMAP_DIFFUSE); world->SetEnvironmentMap(LoadTexture("materials/environment/default/specular.dds"), ENVIRONMENTMAP_SPECULAR); auto plg = LoadPlugin("Plugins/FITextureLoader"); auto model = LoadModel(world, "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF/DamagedHelmet.gltf"); auto camera = CreateCamera(world); camera->SetDepthPrepass(false); camera->SetClearColor(0.125); camera->Move(0, 0, -2); camera->SetProjectionMode(PROJECTION_ORTHOGRAPHIC); camera->SetRange(-100, 100); camera->SetZoom(125); camera->AddComponent<CameraControls>(); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { world->Update(); world->Render(framebuffer); } return 0; }
  5. It would be a lot better if DDS encoding could be added to the Blender exporter.
  6. Okay, this was an easy fix. I will have an update ready for you later today.
  7. It actually looks like the collision is working, but the terrain collider just isn't being loaded and remains flat.
  8. I wonder if its because the model thumbnail is rendered using an ortho projection....
  9. Not sure what's going on here, but a lot of model thumbnails look like this. Material previews do not have this problem and look normal
  10. Can Blender export textures as DDS into a glTF file? I am writing up some documentation and I want to establish the modeling pipeline for people. If it can't, then the only way to get your model's textures into DDS is to select that option in the Ultra Engine asset window and resave the model. https://github.com/UltraEngine/Documentation/blob/master/modeling.md
  11. DDS supports some HDR formats. BC6 is the compressed RGB HDR format.
  12. Added support for BC6H decoding, so skyboxes will now show their thumbnails in the editor. You can delete the folder C:\ProgramData\Ultra Engine\Thumbnails if you want to force a refresh of your file thumbnails.
  13. I found a small library that can do this and I integrated it. Will have an update soon for you.
  14. It's not just downsampling, though. The IBL filter I got from the Khronos project takes a lot of samples to blur make each mipmap blurrier. If you don't do that, then rough surfaces will look kind of blocky instead of rough.
  15. Looks good. How are you generating the specular mipmaps? It looks like the mipmaps in my specular cubemaps are a lot blurrier, if you look at Materials/Environment/Default/specular.dds in Visual Studio.
  16. Okay, I am adding this check in the routine: if (mipchain[0]->blocksize > 0) { for (auto mipmap : mipchain) { if (mipmap->size.x < mipchain[0]->blocksize or mipmap->size.y < mipchain[0]->blocksize) { Print("Error: Mipchain contains mipmaps with dimensoins smaller than the format's block size."); return false; } } } Thank you for pointing this out.
  17. Hmmm, I think the routine should still provide an error if the mipmaps are wrong. Are you sure SaveTexture is saving a bad file or is it returning false?
  18. I put together a working example for you. savecubemap.zip It seems to work, but maybe there is something small you and I are doing that is throwing it off. Some guesses: Maybe the pixmap format you are using isn't getting saved. Maybe a pixmap format conversion isn't working as expected. Maybe your order of mipmaps isn't correct. It could also be that the save routine is encountering a situation it can't handle correctly, and I just haven't noticed it yet. Hopefully this will help you!
  19. Maybe this code can be ripped out... https://github.com/GPUOpen-Tools/compressonator/blob/master/cmp_compressonatorlib/bc6h/bc6h_decode.cpp
  20. Both your issues are resolved and the fix is available to download now.
  21. Fixed bug where extra model limbs were being created when map is saved. Added a check to prevent the user from deleting model limbs, along with an error message if they try. Fixed bug where boolean properties were showing the indeterminant state incorrectly when multiple objects are selected.
  22. Oh wow. Without worrying about deletion or hiding, this is just what happens when you save the model in a map. The original model just has four limbs.
  23. I see. When a map is loaded, models are always reloaded from their original files, so any missing limbs would get recreated at that time. The real bug here is that the editor is not supposed to let you delete limbs from a model. It would be okay to hide those limbs in the map editor, but not to delete them. I need to make sure this is prevented...
  24. This issue came up here but I am breaking it off because it is a separate issue. Currently the engine cannot convert BC6H texture data to anything else, so these images appear black in the editor.
×
×
  • Create New...