Archive for the ‘video’ tag
Here’s a quick (36 seconds) video of LxEngine displaying the “Ebonheart, Skyrim Mission” cell from Bethesda Softworks’ The Elder Scrolls III: Morrowind:
The engine is only rendering the data and playing the music (no physics, no gameplay, etc.) but still it’s progress.
(And, yup, the video title most definitely accidentally says “Morrowind data game” instead of “Morrowind game data”. Oh well. It is v0.0.2 after all. Later releases will feature proper grammar.)
Significant progress in the LxEngine ShaderBuilder. The builder now supports Phong shading and procedural patterns such as tile, spot, diamond, and wave.
Below is a quick, low-quality demo video of the work-in-progress LxEngine Tutorial 3, which loads of a Blender model and allows the user to cycle through a set of shaders to apply (each material defined via a concise JSON description in the XML file):
Note how the specular highlights on the different, individual tiles of the checker patterns are not the same for the red checker materials. This really is a nested procedural! Each tile in the checker not only gets a color, but has its own Phong specification. Also check out the bright highlights on the last Phong checker: that’s actually another level of nesting where a border pattern adds much brighter specularity to the edges of the tile.
Here is the Stanford bunny shaded with a checker pattern with a nested wave pattern:
Here’s the Suzanne model from Blender, shaded with the normal-based shader:
Finally, here’s the classic Utah Teapot with a spot pattern:
I have a host of todo’s lined up, but…any reader suggestions on what next to add to LxEngine? I’m looking for something that – while still somewhat feasible for a single person to implement – would help the engine stand out as having potential to be a top-of-the-line engine someday.
- Continue the shader work and add a Tutorial 4 with even more advanced multi-pass, multi-layer rendering and animation?
- Further Bullet Physics integration to demo how that library can easily and effectively be used within LxEngine?
- A miniature MineCraft procedural world sample with an infinite world with a sky, rain, and snow since MineCraft is all the rage?
- A simple FPS to demo a complete game with LxEngine?
- Something completely different?
Exocortex’s new physics simulator for Autodesk Softimage uses Bullet. This video suggests that future work to take further advantage of Bullet could produce some impressive results. The current LxEngine integration of Bullet is limited my expertise of Bullet, not what Bullet is capable of:
Another update. Nothing groundbreaking, but some solid progress:
- Automatically generated “infinite” terrain using multiple frequency Perlin noise
- A checker map with Perlin noise on one tile, alpha blended texture on the other
Added trivial texture mapping and splatting:
Unfortunately, without mipmapping support the textures do not look very good at a distance. Adding texture LOD support to the GLSL shader would be a good next step.
The textures used are from OpenGameArt.org:
Nothing technically astounding to report: only some regular progress.
I’ve been moving away from OGRE and towards coding my own OpenGL-based renderer. Why? Because I realized that, as much as I want LxEngine to utilize the work of others and avoid reinventing the wheel, this is also currently a hobby project and, bottom-line, I enjoy writing custom graphics code.
That out of the way, I’ve been very interested in terrain lately. Between the Lithosphere demo (see earlier blog entry) and unfortunately downloading and instantly getting a minor addiction to Minecraft, I’m fascinated by what a procedural terrain engine theoretically could do.
Step 1: Height maps. These seem to have a nice balance between simplicity (e.g. path-finding and collision detection) and capacity to display something interesting. Here’s a heightmap generated from a sin + cos wave with a checker pattern and fake diffuse lighting:
Video was probably overkill for such a simple example, but I thought I’d use this as an excuse to try out CamStudio (a free, open source screen recording app). Pretty simple to use. I recommend it.
A bit more work and some head-scratching to really understand Perlin noise, and the result is this heightmap:
Thanks to these pages for the information on Perlin noise:
- Malcolm Kesson’s page on Improved Perlin noise
- NVidia’s GPU Gems Chapter 5 (authored by Ken Perlin)
- Ken Perlin’s slides on Noise Machine
Perlin Noise And Turbulence by Paul Bourke
Added automatic generation of additional tiles and a cheap GLSL fog effect:
A video with, as the title suggests, clips from 111 games in 11 minutes of YouTube footage. Worth watching for game design inspiration, if nothing else.
(Thanks to the Glest Blog for the initial link.)