Simplistically speaking, you could think of the vertex stage of a shader as the "position" of the object, and the fragment stage as the "color." All you really need is position and color. Vertex displacement manipulates the position to warp or move the object. There are many ways to do it but the whole trick revolves around the ex_vertexposition. You may notice in every model shader you have these two lines in the vertex stage:
ex_vertexposition = entitymatrix_ * vec4(vertex_position,1.0
I have procrastinated testing of our new 3D engine on AMD hardware for a while. I knew it was not working as-is, but I was not too concerned. One of the promises of Vulkan is better support across-the-board and fewer driver bugs, due to the more explicit nature of the API. So when I finally tried out the engine on an R9 200 series card, what would actually happen? Would the promise of Vulkan be realized, or would developers continue to be plagued by problems on different graphics cards? Read on
In addition to the usual metallic looking textures, a few of these have different elements to break up the collection, namely concrete.
In the final pack there will be "metallic" variants of these textures as well. I have the materials set up so that I can import different scanned substances, like cinder blocks or bunker walls. Makes for a cool military look and can be used to ground your setting more into reality, if you wish. Just choose your preferred look.
I will be mixing all the
Wall textures being continually updated. Here is wall #36A (of 3 unshown variants).
99% of housekeeping tasks are now done as well. I say 99% because I am sure there are a few folders that still need to be organized.
I don't deal with noise shaders that much but there are a lot of examples on Shadertoy. It has a lot of uses depending on what you want, but very often I see noise being used with raymarching to create 3D scenes. I prefer using textures because I can get what I want out of them and noise is a lot of math (noise shaders can get very large very quickly), but I figured a good shader series ought to have a noise function somewhere.
I got this noise from iq of Shadertoy fame. Just a nice
Parallax is a cheap way to add a lot of 3D details to any scene. The less vertices on a mesh the better, because parallax doesn't actually add any geometric information. And it requires only the bare minimum number of vertices to work. That makes it fast. And the effect is believable. All you really need is a heightmap and a dream... It's a lot of fun trying different textures with it, and if I could I'd use it for everything.
However, there are a few limitations to parallax. The first prob
In this first entry I will introduce some basics about the internal structure of the Widget class and what the purpose of some of its members is.
For the real basics on how to write a custom Widget I suggest reading this https://www.ultraengine.com/learn/CPP/CustomWidgets first.
Most of the members are self explained, so I will focus in this entry on 4 important methods:
virtual bool Initialize(const WString& text, const int x, const int y, const int width, const int height, sh
Masking is pretty easy and useful for adding some variety to your shaders. Masks are usually just some greyscale image that is turned into a float. In shaders floats have a very broad utility because you can add them just about anywhere. Super useful. And they can be used to blend textures or define areas in your material.
Adding a mask in code is the same as with any texture. The greyscale quality allows you to use a single channel of that greyscale as a representative of all the channels.
Still researching a good car simulation script with LE 4.6, so what's new:
I changed some important parameters of my car script to make the car more nervous, better responsive to the world, rapid and giving more feelings and more controls by driving it.
Maybe it is not 100% what man can expect but it is now more fun to drive and that's important.
The car now calculates and integrates both the forces coming from the world and from the player commands,
That means it checks th
One of those things I wanted to make - and a big reason I think many people get involved in shaders - is water. If you've been following along and grabbing these shaders you have now almost all the parts you need to make a basic water plane. If you understand these parts then you can manipulate them to customize your water as you see fit. I'm going to spend a little time in explanation here.
In making this shader I start with the base shader and add a texture scroll effect on the normals (
One month ago I began work to investigate what it would take to bring Ultra App Kit, the foundation for our new generation of game development tools, to Linux. Today I am happy to share my progress with you and discuss some of the things I have learned.
Developed by MIT in the year 1984, X11 is an interesting beast that is easy to start with, but can become quite difficult once you get into the details. (Wayland support is of course an obvious step in the not-too-distant future but I have t
Another simple shader technique is the skybox (or cubemap) reflection. Cubemaps are useful for creating quick and easy reflective surfaces for objects and work particularly well on curved surfaces or objects with bumpy normals. You can create an impression of a metallic, wet, or polished look quite easily (provided you have a way to generate cubemaps). In code, they are about as easy as fresnel, which gives them something of a broad utiity. Once you have the technique, you can treat it as a "par
If you took a bowl full of water and looked straight down into the bowl, the water would be clear. But if you were to then move the bowl up to your eye and look from the side along the surface of the water, you'd see it becomes highly reflective. That's fresnel.
It's a cool effect. And it's easy to code. You add a uniform vec3 cameraposition towards the top and a fresnel color, and then a fresnel effect is little more than this:
vec3 eyevec = normalize(cameraposition - ex_vertexp
Last couple of days I have been working on making the master material for all of these scifi textures to be nonsquare-capable. This is mostly complete, just need to make presets for all of the different sized textures in the pack (512x2048, 256x2048, etc). A couple of bugs I will need to iron out as well but those should also not take too much time Some of the edge wears and grunges still need a little taking care of so that they are consistent with the regular square textures.
Below is a t
Leadwerks 4 is one of the best purchases I've ever made. I've spent thousands of hours on it and most of that time has been spent dinking around with shaders. I'm not great at modeling and animation. I'm ok with scripts. What seems to draw me the most is shaders. I love shaders. I guess in some way here I just want a place to show off my accomplishments, but I also want to feel like I benefit other people, so my philosophy here is that it's cool to be one guy who can write shaders, but it's cool
I don't know which wizard you are talking about. Anyway for the sake of a better title and proper introduction let's get into it.
Role play games range from your average nintendo ds game to your hardcore retro experience.
But what if you have tried so many rpg's and have found only very few specific ones that fit your style ? You make your own.
(you can reverse search if you want the source, but the screenshot is not by me)
*Lighting test with wall/floor textures, master material finished, work beginning on processing all 200+ texture maps and color variants.
*Added ability to stamp secondary height details into already baked mesh maps (using substance alphas). Adds details like handles and extra vents, lights etc.
I recently fired up an install of Ubuntu 20.04 to see what the state of development on Linux is now, and it looks like things have improved dramatically since I first started working with Linux in 2013. Visual Studio Code looks and works great on Linux, and I was able to load the Ultra Engine source code and start compiling, although there is still much work to do. The debugger is fantastic, especially after using the Code::Blocks debugger on Linux, which was absolutely sadistic. (They're both u
Built to power a new generation of game development tools, Ultra App Kit provides an easy-to-use C++ programming SDK for creating desktop GUI applications.
Unlike other alternatives like Dear ImGui, the Ultra App Kit GUI renders in retained mode rather than immediate mode, and is specifically designed for desktop GUI applications. This makes applications snappy and responsive when resizing or refreshing a window.
DPI scaling is baked into the design for resolution-independent
I went back and edited my main smart material in substance, new look looks much better and well-defined. Scales accross different textures very well also. Far less layers to deal with also makes editing much simpler and easier. Luckily I did not get too far with my original material I was working with previously, so re-doing previous textures should not take too long.
Also did a quick lighting test in 3ds max with a few colored lights (to roughly guage PBR reflections/metalness prope
I want to streamline some of this website. We went through a lot of changes since the release on Steam in 2014 and learned what works and what does not.
The "Marketplace" is just called the default "Downloads" name now, and that literally is what it is for. It's a place to keep a permanent copy of your files. Paid files are still supported, and any purchased items are still available to download, but I do not have any aspirations of building this up unless it just happens spontaneously. Ins
You probably have noticed that our entire community has been migrated from the leadwerks.com domain to our new ultraengine.com domain. In this article I am going to describe recent changes to our website, the process by which these decisions were made, and the expected outcomes. These are not just superficial changes, but rather it is a fundamental restructuring of the way our business works. This is the execution of a plan I have had for several years.
When we first starting selling on Ste
Breaking the new engine up into sub-components and releasing them in several stages is something new. The reason for trying this was twofold:
Steam now incentives competition for digital shelf space, unlike when Leadwerks was first released on Steam in 2014, when I was trying to build up my quality of presence and promote one app ID on Steam.
I would like to get some new software out early before the full engine is finished.
The beautiful thing is that Ultra App Kit all con