Jump to content
  • entries
    941
  • comments
    5,894
  • views
    867,682

About this blog

Learn about game development technology

Entries in this blog

Clustered Forward Rendering Victory

I got the remaining glitches worked out, and the deal is that clustered forward rendering works great. It has more flexibility than deferred rendering and it performs a lot faster. This means we can use a better materials and lighting system, and at the same time have faster performance, which is great for VR especially. The video below shows a scene with 50 lights working with fast forward rendering One of the last things I added was switching from a fixed grid size of 16x16x16 t

Josh

Josh

Next Steps

I've got the basic GI algorithm working but it needs a lot of work to be correct. I tend to do very well when the exact outcome is well-defined, but I am not as good at dealing with open-ended "artistic" programming. I may end up outsourcing the details of the GI shader to someone else, but the underlying data management is solid enough that I am not scared of it anymore. There's a lot of aspects of the design I'm not scared of anymore. We worked out smart pointers (including Lua integratio

Josh

Josh

Voxel Cone Step Tracing Refinement

Before proceeding with multiple GI volumes, I decided to focus on just getting the lighting to look as close to perfect as possible, with a single stage. Injecting the ambient light into the voxel data made flat-lit areas appear much more "3D", with color bleeding and subtle contours everywhere. Lighting only: Lighting + albedo Some adjustments to the way the sky color is sampled gave a more lifelike appearance to outdoor lighting. Before: After. N

Josh

Josh in Articles

Why Apple Fails

Their prices are more than 250% the price of a comparable PC. Even their "most expensive" laptop is using a budget GPU! So for less than half the price, you can actually get a laptop with a much better GPU!   $999: http://www.newegg.co...=laptop%209800m   $2499: http://store.apple.c...mco=MTM3NDcyOTc   Just for fun, I checked all the most expensive options. The grand total was $7305.35. Who spends $7000 on a laptop with a budget GPU???   I can't believe how dense their management is.

Josh

Josh

Framework, Lua, and the programmers who love them

We're finishing up 2009 by resolving some longstanding design issues that haven't been particularly critical, but have weighted on my mind. Framework is not like the main engine. It's far more high-level, and is also the kind of code people want to customize. I don't like locking the user into my way of doing things. However, the interaction between Lua, C++, and Framework commands are a real issue, which we started to see immediately as Lua became available. This was resolved by compiling Frame

Josh

Josh

Finalizing Terrain

I'm wrapping up the terrain features now for the initial release. Here's a summary of terrain in Ultra Engine. Terrains are an entity, just like anything else, and can be positioned, rotated, or scaled. Non-square terrains are supported, so you can create something with a 1024x512 or whatever resolution. (Power-of-two sizes are required.) Editing Terrain Ultra Engine includes an API that lets you modify terrain in real-time. I took something very complicated and distilled it down

Josh

Josh in Articles

Android Progress

I got touch input and text rendering working on Android. Happily, I have not encountered any issues with different behavior on any tested OpenGLES devices, including iOS. The framerate on my HTC Evo jumps around quite a bit, which appears to be an issue with the Java garbage collector. Framerate on iOS is a solid 60 FPS, so we should be able to get this sorted out.   Here's a video: http://www.leadwerks.com/werkspace/page/videos/_/leadwerks-engine-3/android-progress-r100   I also discover

Josh

Josh

On the Naming of Things

The design of the Leadwerks website involves organizing a lot of different kinds of data that are continually growing, including forum posts, blog entries, gallery images, videos, and downloadable files.   All this information was organized in categories, and sub-categories, and in some cases, sub-sub-categories. The depth of categorization made it impossible to follow all the information that was flowing through the site, and users frequently posted in the wrong place. We recently underwent

Josh

Josh

Left 2 Do

Here's my list, as it stands today: Lua Interpreter project for iOS and Android (iOS is done, Aria is working on Android) Improve flowgraph visual style (will finish today, probably) Documentation (Chris is filling out the syntax, then I will go in and write descriptions) Brush rendering batches (to make editor rendering faster) Brush collapse on load (in engine only) Undo system

Josh

Josh

Progress

Here's my list of things left to do: Documentation Undo system Get character models for Darkness Awaits Prepare the super secret special surprise for deployment   Undo functionality is my absolute least favorite thing to program, and I also want to get some more real-world testing done before implementing it, so it comes last. This evening I will start on the docs, in earnest.   I hope everyone is having a good near-Christmas week.

Josh

Josh

Editor Documentation

I got the editor documentation written pretty quickly. It was hard to start, but once I figured out how I wanted to lay out the information, it all started flowing pretty easily.   Documentation in Leadwerks Engine 2 was a weakness, especially in stuff other than the programming reference. This is unfortunate, because I have come to see documentation as the final product. Everything in the development cycle leads up to the ability to write good documentation.   Good documentation starts w

Josh

Josh

FPS Weapons Pack on the way

Based on the excellent sales of the SciFi Interior Model Pack, I was able to get a deal to sell a new pack of high-quality first-person weapons. The following items are included: Pistol Combat shotgun MP5 Machne Gun M4 Rifle Grenade Machete   Weapons are included as animated visual weapons, and as models that can be placed throughout the map to pick up.     Instead of just distributing raw models, I want to offer game-ready items that can just be dropped into your g

Josh

Josh

Leadwerks 3.4 Launch Prep

Leadwerks 3.4 will be launched as soon as AMD releases their new driver, preferably by Monday. The three big features this introduces are: Vehicles Water Built-in Workshop browser   As well as over 100 small fixes and improvements.   The launch will coincide with a week-long sale. The results of the sale will give me an estimate of cash flows for 2015 and let me make decisions about what to invest in the company and continued development.   Following the launch, we'll have a

Josh

Josh

Vegetation Research - Pt 2

The Leadwerks 2 vegetation system used a grid of "cells" that each contained a quantity of vegetation instances. If the cell was close enough, each instance was checked against the camera frustum like a regular entity and then all visible instances were rendered in a batch. Cells that were further away were collapsed into a single surface consisting of a quad for each instance. This is how we were able to draw massive amounts of foliage in the distance at a fast framerate:     This w

Josh

Josh

Beta update available with deferred decals

An update is now available on the beta branch.   A new decal entity type is available. Decals are used to project an image into surrounding geometry. A decal requires a material using a decal shader, located in the "Shaders\Decals" folder. The FPSGun.lua script has been updated to add bullet marks and gunshot wounds to objects a bullet hits. You can also place a decal in a map for adding large details to walls, terrain, or anything else.     Decals are rendered similarly to the way a

Josh

Josh

Vegetation Part 3

Billboards, transitions, and rendering are now done, and as you can see in the screenshot below, the idea works great. In Leadwerks 2, this application would have used hundreds of megabytes of data to store all the individual 4x4 matrices of each object. In Leadwerks 3, the instances are generated on the fly, so the application uses no more memory than a map with a blank terrain:     Still to do: Fade out billboards as they approach max view distance. Add rows to break up generated

Josh

Josh

Try the new environment probes

Environment probes are now available on the beta branch. To access them, you must set the "UnlockBetaFeatures" setting in the config file to 1, then start the editor. Environment probes are available in the "Effects" object creation category.   Environment probes should be placed with one in each room. Use the object scale to make the probe's volume fill the room. (Like decals, probes will display a bounding box when selected.) You do not have to worry about covering every single space as

Josh

Josh

Leadwerks 4.1 Beta

Leadwerks Game Engine 4.1 beta is now available on the beta branch on Steam. This is the final version 4.1, barring any bug fixes that are made before the release later this month. I am going to focus on just resolving bug reports and adding new documentation for the next two weeks.     4.1 adds environment probes, which have been covered previously, and volumetric lighting. Point and spot lights can display a volumetric effect by adjusting the "Volume strength" setting, found under Ligh

Josh

Josh

Beta update available

A new build is available on the beta branch. The editor and Lua executables are updated, only on Windows at this time. Everything is updated, including the beta branch of Game Launcher, for Windows and Linux.   I believe I have fixed the crashing in the new light management code. I also added a small optimization that checks if a moved light has the same 4x4 matrix it did at the time of the last shadow render. This makes it so if you are standing still and nothing is moving, the flashlight

Josh

Josh

Beta update available

An update is available on the beta branch for Windows, editor and Lua executables only. This fixes a problem in the new light update system: http://www.leadwerks.com/werkspace/topic/15713-shadow-update-editor-issues/ http://www.leadwerks.com/werkspace/topic/15716-43-child-entities-do-not-cast-shadows/   The animation shaders are also modified and they will appear better: http://www.leadwerks.com/werkspace/topic/15710-all-animated-shaders-have-wrongstatic-normals/

Josh

Josh

Leadwerks 4.4 RC2

A new build is available on the beta branch.  I am putting it out tonight because I want to give you guys as much lead time as possible. I have not tested all hardware yet, and there were a lot of shader updates, so there could easily be a compile error on AMD or Intel cards.  Will test those out in the morning. New camera commands for fog: virtual void SetFogColor(const float r, const float g, const float b, const float a); virtual void SetFogAngle(const float start, const float s

Josh

Josh

Plugins Expanded

This month I was working on a lot of NASA projects using Leadwerks. My goal with this is to build up enough business that I can start hiring more people to help. It's nice to make money using my own tools, and it gives me a lot of ideas for the new engine. This morning I felt like experimenting with the design of plugins in the new editor a bit. I came up with two types of plugins. One will add an new menu item to the model editor that flips the normals of the current model. The ProcessEven

Josh

Josh

GMF2, Plugins, and Modding

I wanted to get a working example of the plugin system together. One thing led to another, and...well, this is going to be a very different blog. GMF2 The first thing I had to do is figure out a way for plugins to communicate with the main program. I considered using a structure they both share in memory, but those always inevitably get out of sync when either the structure changes or there is a small difference between the compilers used for the program and DLL. This scared me so I we

Josh

Josh

Current Work

All this month I have been working on a sort of academic paper for a conference I will be speaking at towards the end of the year. This paper covers details of my work for the last three years, and includes benchmarks that demonstrate the performance gains I was able to get as a result of the new design, based on an analysis of modern graphics hardware. I feel like my time spent has not been very efficient. I have not written any code in a while, but it's not like I was working that whole t

Josh

Josh

Fast Voxel Raytracing with Vulkan

PBR materials look nice, but their reflections are only as good as the reflection data you have. Typically this is done with hand-placed environment probes that take a long time to lay out, and display a lot of visual artifacts. Nvidia's RTX raytracing technology is interesting, but it struggles to run old games on a super-expensive GPU, My goal in Leadwerks 5 is to have automatic reflections and global illumination that doesn't require any manual setup, with fast performance. I'm on the fi

Josh

Josh

×
×
  • Create New...