Warning: Creating default object from empty value in /home/thetoucher/blog/wp-content/themes/simplicity/functions/admin-hooks.php on line 160
Archive | Videos RSS feed for this section

Particle System Upgrades

I slightly tweaked the JME core particle system to support extension, then created 2 simple extensions for :

  • physics based particles : particles that interact with the BulletAppState physicsSpace; and
  • particle scaling based on velocity vector : the faster a particle is moving the more longer it gets – I used this to cheaply simulate motion blur;

Matrix Inspired Dojo Scene

For me this was an exercise in basic modelling and texturing, efficient blender to JME pipeline, using cinematic and fine tuning various effects filters.

The scene is unlit (no lights), no shadows, no texture baking, no specular highlights, so it does look pretty flat, those will come next.

Screen Space Distortion Filter

I made a Screen Space Distortion Filter, and released it to the JMonkey community, this is an abridged version of my original post on the JME forums.


This is a test scene rendering showing the effect in action in several forms : simple static box, animated Sinbad and a very basic particle fire. The scene along with the full source is available for download (~686kb). Keep in mind this is still a work in progress, so the filter has not been completely finalised. However the source is a good learning tool to accompany the explanation bellow, so i will offer it up in its current form. Oh, and the video was recorded using an older version of the source, so the download doesn’t exactly match the video (mostly just the debug view).

(fire close up)

Some other possible applications would be explosion shock waves, Matrix style bullet trails, water splashes on the screen, glass effects, water effects, Predator camouflage, heat haze… I’m sure you can think of more.

The filter itself is pretty trivial, It uses a system similar to normal mapping, the red channel is used for x (or u) offset, from 0 – 255, with 128 (half red) being 0% offset, 0 (or no red) being -100% offset, and 255 (full red) being 100% offset. The green channel is used for y (or v) offset, and the blue channel is a multiplier. These details are still being toyed with and finalized.

For the test, I used a simple variation on the ColoredTextured material. How the colour for the offset is decided (ie what material is used), really doesn’t matter all that much. A solid colour would work and would give a uniform offset across an entire object. A simple Fresnel based shader would work great as it could be used to make the edges distort more than the middle. Animated textures, like in the particle material, could also be used, and would be effective on objects that aren’t moving, to give the displacement some movement (ripples on the surface of a pond for example).

*****************************************************

Applying Post-Process Filter effects to only selected objects

The key to getting the filter to work, was finding a way to isolated certain objects in the scene, and applying a filter only to them. The technique I present should be handy for many shader developers, and something I have wanted the ability to do for a while now. I will try and explain how I achieved this….

Step 1: Find a way to flag or tag the items we are trying to isolate. 
For this I used a custom Material Technique. The idea being that I can create a new material, or modify an existing one, to include this new technique, then when it comes to post, I can single out only objects using a material with this technique using a ForcedTechnique render pass. For the SSDF, I created a technique “ScreenSpaceDistortion”.

Step 2: Make sure the objects using the new material, don’t get rendered with the rest of the scene.
This isn’t always strictly required for all effects, but for simplicity, I do this with my new material. To achieve this, I simply changed the default Technique fragment shader, to use a new shader “Blank.frag”, which is empty :

void main() {
}


(I tried to simply remove the default Technique all together but this causes all sorts of problems, a change to the core would be required to get this to work)

At this point, our scene can be rendered without the objects we are trying to isolate in post, so we move onto the Filter itself.

Step 3 : Setup a render pass to render only objects we wish to apply the filter to (those objects using a material with the new technique).
This is done with a simple render pass, setup in the initFilter method.

distortPass = new Pass();
distortPass.init(renderManager.getRenderer(), w, h, Format.RGB8, Format.Depth, 1, true);

Step 4 :Setup our final composition shader, and pass the colour and depth information from the render pass, to the shader.
material = new Material(manager, “MatDefs/SSDFinal.j3md”);

material.setTexture("DistortionTex", distortPass.getRenderedTexture());
material.setTexture("DistortionDepth", distortPass.getDepthTexture());

Step 5 : Render only our target objects.
Within postQueue :


renderManager.getRenderer().setFrameBuffer(distortPass.getRenderFrameBuffer()); // we want to render to the distortPass Frame Buffer
renderManager.getRenderer().clearBuffers(true, true, true); // clear the buffer
renderManager.setForcedTechnique("ScreenSpaceDistortion"); // set our forced technique
renderManager.renderViewPortQueues(viewPort, false); // do the render
renderManager.setForcedTechnique(null); // clear our forced technique so we dont screw up the rest of the application

Step 6: Apply our effect (or filter) to the selected target objects.
This is done within the final composition shader, SSDFinal.j3md in this case, which has access to 4 key Textures …

uniform sampler2D m_Texture; // original scene colour
uniform sampler2D m_DepthTexture; // original scene depth
uniform sampler2D m_DistortionTex; // target object colours
uniform sampler2D m_DistortionDepth; // target objects depths

It’s now in the hands of the shader developer to work their magic.

Step 7 : Compose the final render by merging the original scene with the new effect render.
In the case of the distortion filter, as with most filters, it is important to retain the depth order, so foreground objects occlude (hide) background objects. A depth test is achieved by using a step function in the final shader (basically a simple less than / greater than comparator).

this is how it looks in the SSDFinal.frag …

gl_FragColor = mix(texture2D(m_Texture, displacementCoord),origColor,step(sceneDepth,distortionDepth));

but a more generic version would be:

gl_FragColor = mix(texture2D(m_Texture, texCoord), texture2D(m_CustomObjectPassTex, texCoord),step(texture2D(m_DepthTexture,textCoord),texture2D(m_CustomObjectPassDepth,textCoord)));

… which is basically saying, at a point on the screen (texCoord), compare the depth of the original scene render and our selected target objects render depth, (step ….), and which ever is closer to the camera, display that (mix….).

Step 8: ???

Step 9 : Profit!

That is about it. This technique may not be the best solution, or the cleanest, but it works well, is pretty flexible so I hope you can find some use for it

I hope this can help some of you better understand how post-proccessing works, and how to leverage it to your advantage =)

 

New Maker’s Tale : Tech Demo Video

A bunch of new progress:
- simplified wireframe UI placeholders
- mulitplayer + chat
- community map sharing
- hero character
- game rule + resource rules enforced
- heaps of stuff to help getting it ‘playable’
- unit upgrades
- new models – archer, enemy

And here is the first Tech Demo video, it never got a post of its own:

It’s Alive! “Maker’s Tale”

The Hex Engine project has finally emerged from getting a fresh splash of paint as:

www.makers-tale.com

Maker’s Tale gameplay takes place on a tabletop board game that has sprung to life in the imagination of young boy named Maker. It is currently Fantasy RTS like combat in an sandbox environment empowering the player to build up, tear down, and change the map/level in real time during play.

This video is from the “Tech Demo” – the most current version of the game engine, that I hope to have finished and ready to play really soon. It shows some of the new updates.

More details coming soon!

 

3 Part Adventure

3 videos taken adventuring around the world.

It’s time to shelve this project for a while, I will come back to it later for sure though.

“Hex Engine” – HDR Tone Mapping Update

watch at 1080p if you can =)

 


screen shot direct from the game

 

“Hex Engine” – The Third Camera Update

(full screen + HD if you can, the lower res versions have scaled poorly)

what’s new ::

  • Image Based Lighting
  • 1080p video
  • “PhysicalCamera”
    - Physically Accurate DoF
    - Focal Length and Aaperture Iris Diameter (f-stop)
    - Bokeh
    - Chromatic Aberration
    - Auto focus
  • WIP Updated SSAO system

 

“Hex Engine” – The Camera Update

I have been doing heaps of work on improving the UI, and on AI systems, so to take a break from all that  I added a more comprehensive camera + screen shot system.

The 5 screen shots taken during that video can be viewed at http://imgur.com/a/GUDSn.

I really cranked the blur amounts in the video because I figured it would get washed out and lost, it works heaps better with more subtle values.

basic description of the ui :

“Hex Engine” – Two quick video updates

Both can be enjoyed in 1080p.

A simple vertex shader water test :

Trialling new tile types and testing updated animation system:

… and a giant floating Oreo =)

“Hex Engine” – The AI Update

Another week down, and another video.

I have been doing a lot of work on the AI and character systems, here is 10 minutes of setting up some basic AI for a level.

And a few select screen grabs from the video…

 Paths  Spawn multiple characters
   
 ’Defence networks’  Attacking
   
Expansion  Caves
   
 Misc  Sneak attack
 
 Overview

 

 

“Hex Engine” – Progress Walkthrough

After just under a fortnights progress, I have finally got around to making a 720p video of my WIP Hex Engine, covering a few of the features that are in there right now (well 2 days ago)…

a few select screens from  the footage:

 Simple Building  Advanced Multi Threaded Pathfinding
   
 Patherfinder Debugging  ”Nifty” Debugging Panels
   
 ’Edges’ and Ladders  Building a Simple Castle
   
 Test Level  Lighting the Hex Mesh
 
 AI

 

The music comes from a competition mix I did, you can grab a copy here : DJ Rojek – Silence Is Golden DJ Comp Mix

(29:57 320kbps 70.2mb)

the Cove : Finished and Entered

I finally finished my contest entry the Cove, links to download and give it a try at the bottom of this post. I would have loved more time to work on it but the contest deadline was a nice way to ensure the project got completed.

Overall I’m happy with the outcome, I had a few memory usage hiccups in the final weeks of the project that ate up a lot of time.

 

I recorded  27min walk through video of a play through I did a few days before submission, start to finish. This video is a massive spoiler, there are many parts of the game I don’t shown off as it ruins the magic of discovery, they are all in here, so if you plan on playing the game through, please dont spoil the experience by looking at the video, but for rest of you and those just curious, here ’tis:

Download and try the Cove :

Windows Mac Linux

(all at ~42MB)

NB: You will need a fairly recent graphics card to run this, if it crashes during loading, you could try the ‘netbook’ pre-set, or most people have luck by starting with ‘normal settings then setting ‘Variations: off’ and ‘Fish Count: low’ (this should bring the RAM requirement under 1gb which is where most crashes occur). I’m sorry if it doesn’t run for you, I did as much optimising and compatibility testing as the time allowed.

 

 

the Cove : gameplay video update

I’ve been making bags of progress on ‘the Cove’, the video shows where I’m up to as of this morning, notable changes include full physics integration and the levelling system with place holder screen.

 

and here are some screenshots from other aspects of the developement proccess:

the Cove : first video and progress update

Over the last couple of days I have been doing a bunch of work on the Cove: adding a fair wack of core game play elements as well as integrating video recording, which I used to capture the first gameplay footage to come out of the Cove. Here is some of the media I produced the last couple of days:

tweaked Depth Of Field results various progress update screen shots

 

(best viewed in at 720p)


This afternoon I completely overhauled the lighting, textures and water effects, giving a much brighter and more vibrant look, I hope to push this feel firther over the next couple of days:

 

For a full list of changes see my WIP thread on the jMonkeyEngine forums.

Per Material Post Isolation & GLSL Glass Shader (Post)

I’ve been working on a material pattern for post isolation, its not finished yet, but so far… with a simple tweak, any material can have post filters applied to it alone rather than the entire scene. It can be used to blur only some items in a scene, use volumes to define where fog is to be draw, it’s a cornerstone of soft particles, and can be used for a post glass shader.

The scene setup above is 10 randomly placed blue cubes, and a semi transparent yellow cube that is using a very simple post filter, it offsets the scene x by 0.05%. Even with such a simple test setup it has the beginnings of a decent glass type effect.

Also I’ve been playing bags of Gears3, but since the multiplayer is horribly broken I’m finding more time to dev again ;)

Dissolve Shader Effect Preview

I have been playing way too much Dead Island and not doing nearly enough work, but here is a preview of the small amount I have done.

The orange is supposed to be like burning up from the inside, black being the ash; and the blue being some kind of digital/holographic style dissolve.

“Counter Fu” sneak preview

still very much a WIP, but you get the idea

Enhanced Particle Shader WIP Video

I’ve been doing some work on beefing up particles, I would like to use them for a bunch more stuff so some enhancements are on the cards.

All the info is really in the video, make sure you watch at 720p.

Performance is virtually the same as the standard particle. At high FPS (800+) the new particles tend to be 3%-5% slower, but are far less susceptible to frame rate drops, and over time end up running faster. BUT …. this level of performance probably won’t stand up by the time I have finished all the enhacements.

I was going to wait until I had finished completely to share this but its ended up taking a lot of time, so an WIP update video it is, so I can feel like I have actually accomplished something.

Pre Alpha Preview Video

Title says it all. This is mostly what the first Pre Alpha will be.

Visible updates:

tweaked wet ground
new rain effects
- splash
-  raindrops
softer character shader
decals
tweaked ragdolls
Cyan rimlight for team mate
“TestLab” level
ganster universe:
- characters;
- weapon – Tommy Gun;
“air fu” melee combat
powerful ‘baggin
epic bot battles