Jump to content

Blogs

UTF8 Support!

Hello again. Implemented UTF8 support for LE4. Works fine🙃. context->SetBlendMode(Blend::Alpha); context->DrawText(u8"Привет мир! Hello world!", 25.0f, 25.0f); context->SetBlendMode(Blend::Solid); Add yours symbols to "familychars" and make own "family" in Font.cpp if (family==Font::English) { familychars = L"abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!@#$%^&*()_+[]\\{}|;':\",./<>

IgorBgz90

IgorBgz90

How to construct own machines with joints.

Using joints Hinge() Joints are funny and powerful to build machines. They allow to use mass (gravity), different masses on different part of the machine depends on what you need, frictions, and limits. By this machine, the only enabled motor is the first big oval cylinder, which is turning. The rest is articulated with disabled hinge joints.    

Marcousik

Marcousik

Texture Atlas & Animation

Hello community, long time no see. I am working on my own graphical user interface, for my super duper rpg game :). The use separate textures for each button state, etc. I consider it not effective! It is better to load the texture with the atlas of the whole GUI once. And use her. In order to draw a texture from the atlas, we need to slightly modify the standard shader (drawimage), and save it under a different name (drawimagerect). Shader #version 400 uniform vec4 drawcolor

IgorBgz90

IgorBgz90

Leadwerks Game Engine 5 Beta Update

A new beta update to Leadwerks Game Engine 5 is available now. New stuff: Streaming terrain CopyRect and Texture::SetSubPixels Texture saving Note that the "SharedObject" class has been renamed to "Object" and that math classes (Vec3, Vec4, Plane, Mat3, etc.) no longer derive from anything.

JMK

JMK

Streaming Terrain in Leadwerks Game Engine 5

The terrain system in Leadwerks Game Engine 4 allows terrains up to 64 square kilometers in size. This is big enough for any game where you walk and most driving games, but is not sufficient for flight simulators or space simulations. For truly massive terrain, we need to be able to dynamically stream data in and out of memory, at multiple resolutions, so we can support terrains bigger than what would otherwise fit in memory all at once. The next update of Leadwerks Game Engine 5 beta suppo

JMK

JMK

Random generated Forest: About performances.

Hellö Here are a few thoughts about finding the best way to create  a dense forest, with different models, quickly, dense and allowing good performances by walking and driving.   I first try with the vegetation tool. https://www.leadwerks.com/community/profile/15151-marcousik/?status=10763&type=status           I got good results but not by driving and I find that the collision checked causes the lost of 40 FPS (from 60 by to 20) making the game unplayable.    

Marcousik

Marcousik

Leadwerks 5 Beta Update

A new beta is available in the beta forum. This adds new texture and pixmap features, Basis texture support, and support for customized project workflows. Use of Basis textures brought the download size down to less than 300 megabytes. New Lua examples are included: Build Texture Build Cubemap SetSubPixels

JMK

JMK

Building Textures in Leadwerks Game Engine 5

Building Textures in Leadwerks Game Engine 5

The new engine features advanced image and texture manipulation commands that allow a much deeper level of control than the mostly automated pipeline in Leadwerks Game Engine 4. This article is a deep dive into the new image and texture system, showing how to load, modify, and save textures in a variety of file formats and compression modes. Texture creation has been finalized. Here is the command: shared_ptr<Texture> CreateTexture(const TextureType type, const int width, const in

JMK

JMK

Project Workflows

It's funny how all of the various features in the new engine are interconnected and development just flows from one to another. I was working on terrain, and I needed to save out some texture data so I implemented Pixmaps, and I wanted to add Basis support and DXT decompression, and then I started converting texture formats, and now I need a way to manage this all. This is an idea I have had for several years and I finally got to try it out. Leadwerks Game Engine 4 has a strictly defined wo

JMK

JMK

Basis Universal Texture Support

Basis Universal Texture Support

Last year Google and Binomial LLC partnered to release the Basic Universal library as open-source. This library is the successor to Crunch. Both these libraries are like OGG compression for textures. They compress data very well into small file sizes, but once loaded the data takes the same space in memory as it normally does. The benefit is that it can reduce the size of your game files. Crunch only supports DXT compression, but the newer Basis library supports modern compression formats like B

JMK

JMK

Advanced Terrain Building in Leadwerks Game Engine 5

Advanced Terrain Building in Leadwerks Game Engine 5

In Leadwerks Game Engine 4, terrain was a static object that could only be modified in the editor. Developers requested access to the terrain API but it was so complex I felt it was not a good idea to expose it. The new terrain system is better thought out and more flexible, but still fairly complicated because you can do so much with it. This article is a deep dive into the inner workings of the new terrain system. Creating Terrain Terrain can be treated as an editable object, which i

JMK

JMK

Pixmap Class and DDS Saving

Pixmap Class and DDS Saving

Textures in Leadwerks don't actually store any pixel data in system memory. Instead the data is sent straight from the hard drive to the GPU and dumped from memory, because there is no reason to have all that data sitting around in RAM. However, I needed to implement texture saving for our terrain system so I implemented a simple "Pixmap" class for handling image data: class Pixmap : public SharedObject { VkFormat m_format; iVec2 m_size; shared_ptr<Buffer> m_pixels; int

JMK

JMK

Terrain Compression

I wanted to see if any of the terrain data can be compressed down, mostly to reduce GPU memory usage. I implemented some fast texture compression algorithms for BC1, BC3, BC4, BC5, and BC7 compression. BC6 and BC7 are not terribly useful in this situation because they involve a complex lookup table, so data from different textures can't be mixed and matched. I found two areas where texture compression could be used, in alpha layers and normal maps. I implemented BC3 compression for terrain alpha

JMK

JMK

fate

My small project will be called , it will be a dark medieval Diablo style single player action RPG. The graphics will be simple, no PBR, 256x256 map, reasonably low-res models. Camera style? Top-down-ish I think? Like in Diablo exactly - and because the camera is not directly in-front of the 3 models, I can get away with low-resolution assets - bonus. Also, with top-down view, I won't have to worry about high resolution sky-boxes.  What's my plan for this project? I plan to make

beepboop

beepboop

VSCode + Custom Build Script

I've got a bit of free time on my hands for a while. I plan to take up Leadwerks again and come up with a simple project to have fun with. I use VSCode at work and I don't have a Windows machine at the moment. Codeblocks is a bit dated now and I'm not sure if it has all the features to fit my workflow so I can't use it.  It's a bit fiddly to build C++ apps on VSCode. There's a prescribed method of setting up your C++ project in the official hubs but I don't think those are necessary in

beepboop

beepboop

Terrain in Leadwerks 5 Beta Updated

Terrain in Leadwerks 5 Beta Updated

A new update is available for beta testers. This adds a new LOD system to the terrain system, fixes the terrain normals, and adds some new features. The terrain example has been updated ans shows how to apply multiple material layers and save the data. Terrain in LE4 uses a system of tiles. The tiles are rendered at a different resolution based on distance. This works great for medium sized terrains, but problems arise when we have very large view distances. This is why it is okay to

JMK

JMK

Documentation and Code Details

Documentation in Leadwerks 5 will start in the header files, where functions descriptions are being added directly like this: /// <summary> /// Sets the height of one terrain point. /// </summary> /// <param name="x">Horizontal position of the point to modify.</param> /// <param name="y">Vertical position of the point to modify.</param> /// <param name="height">Height to set, in the range -1.0 to +1.0.</param> virtual void SetHeight(const int x

JMK

JMK

Leadwerks 5 Beta Update

A new update is available for beta testers. Terrain The terrain building API is now available and you can begin working with it, This allows you to construct and modify terrains in pure code. Terrain supports up to 256 materials, each with its own albedo, normal, and displacement maps. Collision and raycasting are currently not supported. Fast C++ Builds Precompiled headers have been integrated into the example project. The Debug build will compile in about 20 seconds the first run

JMK

JMK

Terrain Building API in Leadwerks 5 Beta

Terrain Building API in Leadwerks 5 Beta

An often-requested feature for terrain building commands in Leadwerks 5 is being implemented. Here is my script to create a terrain. This creates a 256 x 256 terrain with one terrain point every meter, and a maximum height of +/- 50 meters: --Create terrain local terrain = CreateTerrain(world,256,256) terrain:SetScale(256,100,256) Here is what it looks like: A single material layer is then added to the terrain. --Add a material layer local mtl = LoadMaterial("Materials/Dirt

JMK

JMK

How to Fix Slow Windows 10 (this week)

How to Fix Slow Windows 10 (this week)

Here are some things I did in the last couple days to fix a computer that was basically unusable. It seems that Superfetch was rebranded to "SysMain" in an update and automatically re-enabled. If your computer is grinding away either the CPU or disk usage while doing nothing, this is the culprit. Disable it in Windows services. The XBox games bar is suspect. I recommend disabling it now that FRAPS supports Vulkan. Some features in Visual Studio are making it unusably slow. In

JMK

JMK

Leadwerks 5 Beta Update

A new beta is uploaded with lots of new features and improvements. Things are really taking shape! Animation is now supported and it's really fast. Two examples are included. Package loader plugins now supported, VPK package loader for Source Engine games included with example. Added localization example. Shaders folder very neatly organized, now contains shader family files. Config folder eliminated. Engine headers cleaned up and organized. Lots

JMK

JMK

Animation speed in Vulkan vs. OpenGL

Animation speed in Vulkan vs. OpenGL

I created a test of 1000 animated crawler models to see how the performance of Vulkan stacks up against our older OpenGL renderer. Here it is in OpenGL running at 37 FPS, which is pretty respectable considering how many animations are playing (and about 4 million polygons). With Vulkan the same test yields a framerate of 66 FPS, 78% faster than the OpenGL version. Here is a video of the characters animating. Each skeleton is its own unique animation system, there are no sha

JMK

JMK

×
×
  • Create New...