-
Posts
2,600 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by reepblue
-
Thanks. Going to have a ton of fun this weekend!
-
In Cyclone, I used the exposed Model::collapsedfrombrushes member as a first check to identify if the entity was a static brush. If this was false, that meant I was looking at a model loaded from disk which my placement system ignored completely. I understand you not wanting to expose this member in Ultra Engine, but please make a return function like so: const bool Model::IsCollapsedBrush() { return collapsedfrombrushes; } Thanks.
-
What about the GUI? Would I render that onto a sprite?
-
Oh nice, I was wondering about this. Interesting that you chose to make the bottom-left the origin for sprites/2D projection instead of top-left. It threw me off at first.
-
Ok, it seems that the Ultra.json file is gonna be used outside the project manager. I was experimenting with loading packages and plugins from a json file, but now it makes sense to just put that information here. Can you explain the reason for supporting multiple layers? Will one cause problems on one type of hardware?
-
Let me know what you find would totally be interested in this. I understand the hesitation on gifting but I don't see any reason why I couldn't buy credits.
-
Hello, Could it be possible to buy account credits from the store and have the payment system deduct from that until funds deplete? I wish to just put a years worth of credit on my account and not have to worry about monthly payments hitting my card. Could gifting credits also be an option? I want an artist to help with my projects but convincing them to sign up for a month subscription is going to be difficult. I'd be willing to pay their license for a year or so to get their feet in the door.
-
I once followed a tutorial in a different engine where you could create a shader that repositions the vertices of the model to always reflect the preferred fov. By default it looks ugly and I hate that I spent hours getting the placement of the model just right for Cyclone only to see screenshots of it distorted because the player wanted their for at 90 like they were playing Quake Arena or TFC. This just looks really ugly, and IDK why people are ok with this trade off. I also think starting in Portal 2, Valve changed the pickup system in that game to have picked up props be rendered on the view model layer. So that's also something to look into.
-
Curious, can this render layering system work for view models if the viewmodel camera is parented to the main camera clearing the depth buffer? Since both the player and the model are in the same world and location, I don't see why this couldn't work with the lighting system. If lights are a problem, I could just instance every light in my scene to render on the viewmodel layer. I want the viewmodel on its own layer so the player can have their fov at 90 and not have the viewmodel distort. I'd have to give it a go tonight.
-
Making custom components doesn't seem to work correctly. The solution doesn't call the preprocessor application and when it does, I get this error. Also, I have to include the ComponentSystem.h with my components, but for some reason, the Mover doesn't need to. Sorry for turning this thread into a bug report collection..
-
No dice. #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 * displays[0]->scale, 720 * displays[0]->scale, 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, -3); camera->SetFreeLookMode(true); //Create a light auto light = CreateLight(world, LIGHT_DIRECTIONAL); light->SetRotation(35, 45, 0); //Create Interface (Crashes) //auto gui = CreateInterface(world, iVec2(framebuffer->size.x, framebuffer->size.y)); //auto panel = CreatePanel(0, 0, 100, 100, gui->GetBase()); //auto text = CreateLabel("Hello Ultra Engine!", 2, 2, 100, 32, panel); //Create HUD auto hud_camera = CreateCamera(world); hud_camera->SetProjectionMode(PROJECTION_ORTHOGRAPHIC); hud_camera->SetClearMode(CLEAR_DEPTH); hud_camera->SetRenderLayers(RENDERLAYER_2); auto font = LoadFont("Fonts/arial.ttf"); auto test_sprite = CreateSprite(world, font, "Hello Ultra Engine!", 1); test_sprite->SetRenderLayers(RENDERLAYER_2); //Create a box auto box = CreateBox(world); //Entity component system auto actor = CreateActor(box); auto component = actor->AddComponent<Mover>(); component->rotation.y = 45; //Main loop while (window->Closed() == false and window->KeyDown(KEY_DELETE) == false) { world->Update(); camera->UpdateControls(window); world->Render(framebuffer); } return 0; } If I comment the SetRenderLayers call, the text doesn't render properly like I forgot to set the blend mode or something. Howver, no such call exists. Edit: Ok, I got it to render to the screen by setting the projection mode at creation. But the text is not drawing correctly. //Create HUD auto hud_camera = CreateCamera(world, PROJECTION_ORTHOGRAPHIC); hud_camera->SetRenderLayers(RENDERLAYER_2); //hud_camera->SetProjectionMode(PROJECTION_ORTHOGRAPHIC); hud_camera->SetClearMode(CLEAR_DEPTH);
-
Very informative, but I just want to create a simple fps counter and plot 5 dots on the screen for the time being. (Which I assume is just 5 box models with the camera in orthographic view.) Does rendering widgets in the frame buffer work as of now? Some insight on that would be helpful but I'll be sure to look into it more tonight.
-
I was pulling old code from previous alphas last night to see what still worked. I noticed the canvas system was stubbed out when I wanted to refresh myself how to add text to the screen. I'm under the impression that this will be unavailable until official early access release? I still have nvcompress and tga2dot for making textures until the official engine tools ship. I'm under the impression you've already made such tools and hopefully we can see those shortly. Still, I'm very happy to see the fruits of your labor again after so long.
-
Weekend Plans: Start development on Cyclone 2.
-
You're doing nothing wrong. It's just that physics in Leadwerks don't work like that. Anything you wish to move or have a physical reaction needs to use the Joint class in someway.
-
I just hope this time that you don't put game scripts and assets in the Core Template like you did in Leadwerks. Also you will still allow us to mute warnings that our project is out of date or make it less intrusive. When I create a project from a blank template, I should only get files needed to run the app successfully. I don't want Monster Lua scripts or Tree models if I'm making a tic-tac-toe game. Besides my early years with Leadwerks, I did manual version controlling.
-
At 1080p with 100% scaling, my wholesome avatar is distorted although the client downloaded it as 200x200. I also find it weird that it reports that I don't have full community features and 2GB of space despite me being a customer of Leadwerks for 8 years. 🤪 Otherwise, it's really nice.
-
Nice. Does this have a macOS/Linux equivalent or you need to come up with a different method? Nevermind, tar seems to be a unix standard.
-
Hello, I'm currently having textures done with PBR in mind. There used to be a discussion about this years ago, but I can no longer find it. What is the texture standard for merging the roughness, metal, AO, and emissive masks into one texture? If I recall correctly, I'm sure it went as follows. R - Roughness G - Metalness B - Ambient Occlusion A - Emissive The artist is more familiar with MRAO(E) R - Metalness G - Roughness B - Ambient Occlusion A - Emissive If you want customers to simply be able to drag in any gltf they find on the web, how can/will the engine detect what channels are which since there doesn't seem to be a standard across the board. I'm also under the assumption that by changing the "emission" value in the json file, it would automatically multiply the color accordingly?
-
I'd have to look more into that. I personally use 7zip and have it set as a system environment variable. I wonder if it has commands to omit files from being included.
-
Getting the OpenAL Source ID for EFX
reepblue replied to EvilTurtleProductions's topic in Programming
You're probably going to be waiting for a while. I still recommend FMOD Studio and if you want, you can integrate Steam Audio on top of it. Although the code is a bit outdated, you can follow it for a basic implementation. Leadwerks + FMOD Studio - reepblue's Blog - Ultra Engine Community - Best game engine for VR optimized for fastest virtual reality performance -
I know we can't rush greatness, but it seems that Ultra Engine is always 6 weeks away. 🙃
-
Decals stop working correctly with multisampling mode set to 0. Always have 1 as the lowest available setting.
-
SetMaterial with Manually Created Models/Surfaces
reepblue replied to jasonwkeith's topic in Programming
This code below creates a plane model facing forward along the Z axis with a squared texture uniformly mapped. //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- Leadwerks::Model* CreatePlaneModel() { auto mdl = Leadwerks::Model::Create(); auto surf = mdl->AddSurface(); surf->AddVertex(-0.5, -0.5, 0, 0, 0, -1); surf->AddVertex(0.5, -0.5, 0, 0, 0, -1); surf->AddVertex(0.5, 0.5, 0, 0, 0, -1); surf->AddVertex(-0.5, 0.5, 0, 0, 0, -1); surf->AddTriangle(2, 1, 0); surf->AddTriangle(0, 3, 2); surf->FlipNormals(); surf->Update(); surf->SetVertexTexCoords(1, Leadwerks::Vec2(0, 1), 0); // Bottom Left surf->SetVertexTexCoords(2, Leadwerks::Vec2(0, 0), 0); // Top Left surf->SetVertexTexCoords(3, Leadwerks::Vec2(1, 0), 0); // Top Right surf->SetVertexTexCoords(0, Leadwerks::Vec2(1, 1), 0); // Bottom Right mdl->UpdateAABB(Leadwerks::Entity::LocalAABB); mdl->UpdateAABB(Leadwerks::Entity::GlobalAABB); return mdl; } Hope this helps.