New TressFX Version

Heyah,

I just start pusing my current tressfx code to github :>

The new version of tressfx is now publicly available for anyone. It is a complete rewrite of the old version which got better editor integration, more stability and better performance.
Here is some general info on how to use the new version:

  • Make sure, the TressFX folder is in your Assets root. The current asset importer relies on the assetconverter being located in Assets/TressFX/assetconverter.exe. This will change in future version (My own importing system is in development).
  • When importing hair files from ASE make sure your hair strands __ALWAYS__ contain 16 vertices if you want to use simulation. You can let tressfx normalize them on import, under Window > TressFX you can configure the importer (Normalize vertex count to 16 if you want simulation).
  • You can also configure follow hair generation on import. Follow hairs are additional hairs generated to your imported geometry. Simulating them is cheap, because they follow their master (the hair in your input geometry).
  • Do not use scaling. It is unusable at the moment and creates very strange behaviour.
  • After importing the hair, make sure you configure the physics properties on the hair asset (Check the examples).
  • Check the example scene for an example on how to configure the hair rendering game object

Feel free to report bugs in github and / or fork the code. I will accept pull requests aswell :->

This is the base version of tressfx, the renderer i wrote about in the last post will be release at a later point, because it’s far away finished 😛
The rendering is abstracted, you can easily implement own renderers with some coding-fu and there is an example renderer with an example surface shader included.
It supports shadow receiving / casting aswell (but only directional lights at the moment).

Currently it only supports DirectX >11 / Windows, Portation to linux (and mac os) is planned 😉

That’s it for today, anyone have fun testing TressFX for unity and happy new year! 😀

TressFX Rewrite – The current state

Hey,

Since I’m getting more requests about when the new TressFX rewrite will be released, I decided to write a post about the current state of it.
Most of the core-features are already implemented and I’m mainly working on fine-tuning different things, implementing a new rendering system and so on.

The most noticable changes of the new version are:

  • 1-Click hair import
  • Improved performance (Now suitable for realtime rendering, ~4x faster than the current version)
  • Modularity

Also, the licensing for tressfx will change. The core of it will stay opensource but there will be closed-source modules like a realistic rendering and LoD system (which i’m currently working on).

While i was working on this, AMD presented TressFX 3.0 (GDC-Slides here: http://de.scribd.com/doc/258961012/Augmented-Hair-in-Deus-Ex-Universe-Projects-TressFX-3-0#download).
They didnt release the sourcecode to the public (yet). If they do, my implementation will get updates aswell.

The new rendering system features per-pixel coverage computing and order-independent transparency blending using A- and K-Buffers like AMD’s sample does.
It is also (almost) fully integrated into the unity rendering system and supports an unlimited ammount of lights (+ shadow maps, Deferred rendering system).

Here’s an example that shows how much quality the new OIT and per pixel coverage adds:

tressfx_aa_ppcoverage_cmp

That’s almost anything about the current state, i cannot set a fixed date unfortunately. I can only tell anyone who’s waiting stay tuned 😛
But i will try to update my blog more frequently about TressFX in the future to show new updates to it.

Greetings,
KennuX

 

Just a post

Heyah,

I haven’t been writing a blogpost since some time now.

Currently I’m working on TressFX, which will get a new update in some weeks / months (It’s currently more a side-project).
This new update will bring a completely rewritten editor integration, easier import of ASE hair splines, lots of bugfixes, ways better performance and other epic things as well 🙂

For anyone interested in hair simulation unity3d japan released a nvidia hairworks integration for unity (not finished yet) on github: https://github.com/unity3d-jp/NVIDIAHairWorksIntegration

Besides TressFX there are some other Projects I’m working on, i’ve written an ice shader for unity 5 that will be on the assetstore in some time (pending review).
It has support for refraction, reflection, fake translucency and some other nice things.

I’ll put the link of the asset in the store in here, once its released.

Also, there has been a small update for my unity voxel engine.
I’m at the moment not actively working on it, but i ported it to Unity 5.2 and submitted it to the assetstore (pending review) as free asset.
I’ll also put it’s link in here once its released.

In unity 5 the physics bug that i was facing in unity 4 appears to be gone. If you were editing terrain manually too fast, the player just froze (My guess is that this was related to a deadlock when you update a mesh collider’s data while it’s baking its collision data).
I also recorded a video of my physics test. In unity5 physx seems to be much fast (most likely related to the unity 5 physx update).

Thats basically all news for today except one non-coding related thing:

Most people most likely dont know the indie company “Chucklefish”.
They are working on a game called “Stardewvalley”.
Stardewvalley is kind of a new “Harvest Moon” (One of my favorite games in childhood and even today).

It mixes up different games that are like harvest moon. Anyway, to anyone who knows harvest moon this game is a MUST watch 🙂
Checkout their livestream on youtube:

And their blog: http://stardewvalley.net/
I cannot wait to play this game in coop with some friends 🙂
Have a nice day!

TressFX Reloaded!

Hey there,

I’ve recently seen the TressFX 3.0 Slides from the new Deus Ex game, and they really impressed me.
I thought about my tressfx – unity integration project a bit and decided to go over the code again to try fix atleast some of the problems i’ve had.

So, i cloned the git-repo, opened unity and the fun began 🙂
The only real big problem with it was that the fragment sorting was not working correctly.

In the fragment shader where i collect all fragments of the final rendered hair i used the linear eye depth instead of the real world depth as sorting and world position depth.
This mistake caused the final fragment sorter pass to sort the fragments in a wrong order and also the re-calculation of the world position won’t work correctly.

For now, i’m saving a fragments viewprojection multiplicated world depth AND x and y position (which is not really good as it uses much ram), but i’ll change that later. For now it’s ok.

So, right now i think i got a fully featured tressfx implementation in Unity3D.
Mgear on the unity forums also fixed the compute shader compilation on unity 5 and my new target version now is also unity 5, the unity 4 version wont get any updates anymore from me.

So, for the future i want to improve the integration into unity’s editor and the hair mesh creation.
I’ll work together with Lee Perry-Smith from http://www.ir-ltd.net.
He provides me some demo models and data files to work with for improving the whole project, so thanks to him :>

Finally, here are some screenshots from the current TressFX project:

I also had the same code working on Unity 4 and there are big rendering differences from unity 4 to 5, overall it looks MUCH nicer than with 4.
I don’t exactly know why, but i like it 🙂

jCubicWorld released!

Hey there,

Today i’ve uploaded the sourcecode of my new voxel game project jCubicWorld to github!
I also got some news about the current status of the project.

Since the last post a lot have been changed.
There is now a fully functional inventory system:

jcubicworld_inventory

 

I also implemented a new system for sending tick updates to voxels, so if a voxel type has a voxel update handler attached it will get called with the voxeldata every frame.
I used this in a very simple example to implement a test furnace.

If you put coal into it’s first item slot, the furnace will start working and the fire will start:

jcubicworld_furnaces

 

There have been much code improvements, there is now a world save system which saves player, entity and world data.

There is also a launcher in development (Will get released to github in a few weeks i think) for easy downloading the sourcecode from github, patch in modifications, add plugins and copile & run it.

The current code on github is not intended to get used for playing, the current state of the game is very, very experimental and there is almost no documentation ready yet.
There may be a huge amount of bugs.

So, that’s it for now. I’ll accept pull-requests of git if anyone wants to help with the development 🙂

It’s been a while…

Hey there,

It’s been a while since i wrote the last post here.
Not much happend here, i stopped working at TressFX, because i don’t think Unity’s rendering is suitable for this kind of rendering effect.
I also don’t want to spend more time on it, as i just started it because i really liked how TressFX works and how epicly it looked.

It also was a goal to gain some experience in shader programming and rendering techniques, which i absolutely reached.

So, if anybody wants to continue my work fork my git repo and start working on it 🙂

That’s all about TressFX.

I got a new project which i have been working on for like a month or so now.

I am working an a minecraft-like voxel game based on libgdx and written in java.
It will feature extreme customization (The launcher will compile the game itself from source and adds plugin code before compiling!),  Multiplayer, and much other epic things.

Here are some Screenshots from the very beginning:

Early testing of the java voxel rendering (Ported from Unity C#).
Early testing of the java voxel rendering (Ported from Unity C#).
Early testing of the java voxel rendering (Ported from Unity C#).
Early testing of the java voxel rendering (Ported from Unity C#).
Early testing of a very simple and inperformant lighting algorithm.
Early testing of a very simple and inperformant lighting algorithm.
Showcasing the entity system test. Every user spawns a test entity which you can see in this screen. The entity uses a slightly modified A*-Algorithm to find it's path to the player.
Showcasing the entity system test. Every user spawns a test entity which you can see in this screen.
The entity uses a slightly modified A*-Algorithm to find it’s path to the player.
New Voxel rendering with a skybox and very simple lighting calculation (the deeper the chunk the lower the lighting is).
New Voxel rendering with a skybox and very simple lighting calculation (the deeper the chunk the lower the lighting is).
Showcasing Profiling and Debugging utils
Showcasing Profiling and Debugging utils

I’ll see what future brings, but for now there are no more details about this project 😛

Current progress

Hey there,

I just wanted to keep everyone who follows my work on this blog up2date.
So, for TressFX it’s looking good right now. I implemented the post-processed fragment sorting and the image rendered already looks quite nice.

There are still some things missing like the per-pixel-coverage anti-aliasing or transparency, but the main rendering is fully working.
My implementation works almost completely similar to AMD’s sample.

At the moment i just do the fragment sorting in a computeshader instead of a pixel shader.
I will probably change that later but for the moment it is the easiest way for me to do the sorting.

Well, here are some screenshots:

tfx_sorting_2 tfx_sorting_1

 

Isn’t that epic? 😀

So, for the voxel engine I’ve had bad performance issues with realtime world editing, so i divided a chunk into multiple chunks on the Y-Axis.

This gives a significant performance increase on world editing, because if you remove any block from the mesh the whole mesh will get regenerated which costs lots of time if you got much vertices.

Now there are more but smaller meshes. Which causes the chunk updates to happen ways faster.

Also, the physics system is now enqued with lesser priority, next step i want to implement is the unity networking integration (terrain data streaming). After that i’ll start with the fluid simulation 😉

Well, that’s everything for now.