-
Posts
23,093 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Blog Comments posted by Josh
-
-
And here that is in action:
-
A lot of the objects in glTF have an "extras" property in the spec, so for things that you have no intention of usage outside your own app, that's the place to put that information. So the extended properties extension mentioned above is axed.
-
This is the code I used to make the tessellation comparison screenshot:
#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, 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, 1.5, 0); camera->SetRotation(90, 0, 0); camera->SetWireframe(true); world->SetAmbientLight(1); //Create a box auto p1 = CreatePlane(world, 1, 1, 1, 1, MESH_TRIANGLES); p1->SetPosition(-0.75, 0, 0); auto p2 = CreatePlane(world, 1, 1, 1, 1, MESH_QUADS); p2->SetPosition(0.75, 0, 0); auto mtl = CreateMaterial(); mtl->SetTessellation(true); p1->SetMaterial(mtl); p2->SetMaterial(mtl); camera->SetTessellation(20); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { if (window->KeyDown(KEY_UP)) camera->Move(0, 0, 0.01); if (window->KeyDown(KEY_DOWN)) camera->Move(0, 0, -0.01); world->Update(); world->Render(framebuffer); } return 0; }
-
I'm going to create a formal spec for the quads extension:
https://github.com/UltraEngine/glTF/blob/main/extensions/2.0/Vendor/ULTRA_primitive_quads/README.md -
1 minute ago, Canardia said:
Does Vulkan render quads or are they divided into triangles when rendering and does this triangulation take GPU time?
Vulkan accepts quads and ngons but in wireframe they will appear like triangles.
-
There is also an unofficial FB_ngon_encoding extension but I don't know its current status:
https://github.com/facebookincubator/FBX2glTF/issues/300 -
Sure, if you write a plugin for your file format.
- 1
-
-
-
Wow! It really looks like there are solid pieces of ice inside the object when I view this in the material editor.
- 1
-
Not yet. I have done earlier work loading Quake models, but did not load animations. It will also require support for vertex morphing.
- 1
-
-
-
-
I'm using zlib / minizip. There's a lot of details. Zip files aren't actually designed to allow deletion of a single file. You can only create a new archive, and copy every existing file into the new archive, minus the one you wanted to delete.
-
10 hours ago, SpiderPig said:
It's so annoying how you can spend months getting something to work then realise there is a 5 minute method that is so much better.
This happens to me when I am working too much / too hard. Some of my biggest wastes of time were when I was in crunch mode and I went in a wrong direction.
You might also want to check out the cubesphere shape:
https://www.ultraengine.com/learn/CreateCubeSphere?lang=cpp- 1
-
The last major stepping stone to work out will be to figure out how file saving in packages is supposed to work. I think having that will be extremely useful though, especially for people making mods for other games.
- 2
-
If I break off the asset browser and asset manager, that might be a decent standalone app that can be released first, before the full editor. That would allow me to get a visual tool out to the people faster, and get started testing it sooner.
- 2
-
-
-
I will add sliders. Right now I am trying to get the basic structure down. Now using a property grid in the side panel. This lets me fit more stuff into the interface, and it also will make it easy to add new functionality with an extension. For example, you could add a "Quake Texture" group for files loaded from a Quake WAD package, and add special Quake-specific properties to be edited there.
- 2
-
I've got embedded assets displaying now. You can open a material or texture that is packed into a model file, view, and modify it. glTF and OBJ supports embedded materials, glTF supports embedded textures, and there are some other obscure formats like Quake MDL that do this as well.
Embedded files show their name in square brackets and link back to the file they are embedded in. You can use this to modify materials embedded in a glTF, or use it to extract materials and textures from a model and save them as a standalone file.
- 6
-
-
I believe most graphics drivers will automatically move textures that haven't been used in a while into "virtual memory", i.e. they write it to a file to unload it from VRAM. There is no good reason to keep texture data in system memory, and Ultra doesn't ever do that.
I'll keep this in mind and we can revisit it if it will make an improvement.
AI-Generated Game Textures and Concept Art
in Development Blog
A blog by Josh in General
Posted
A few months later, and this is how the technology has progressed: