admin

Ok, In the excitement over a drop-in anti-aliasing solution I used a part of the effect framework that had NEAREST filtering on for the textures… So with that fixed, it looks a lot better:

I tested to use FXAA approximate anti-aliasing by using the code from Timothy Lottes. It seems to work but I don’t get anything close to what I have seen in screenshots from others who have implemented the same code. The shots below shows FXAA with “preset 3″ as found in the original code. Looks like almost all “outer” edges don’t get any smoothing.

Implemented basic DOF and film grain/noise. Also using TUI more to make sure it works as intended. Started a separate project using GLFW and TUI and no other dependencies in preparation for open sourcing it.

DOF and Noise

Time flies by and I’m still working on the gui. I have finally given it a name: “tweaking user interface” neatly shortened to “tui”. This name clearly states the purpose. It is not a general purpose widget library replacement but rather a programmer convenience gui when building prototypes. My focus have been on making the usage easy and immediate while keeping the backend flexible. The reason for this is that I want to keep some doors open (for GLES and DX apps).

The usage pattern looks like this:

// Init with internal allocation. alternatively give the lib all mem you want to provide using tuiInit(....)
tuiEasyInit()

// init the renderer for gl
// TextAtlas is basically a mapping from char to rect in a texture
// I will not explain the textAtlas more at this time. I just want to convey the usage patterns
tuiRenderGLInit(w, h, shaderId, textAtlas, fontTextureId);

// Render / use
tuiBegin();
tuiBeginPanel(x,y, PANEL_W, PANEL_H);
tuiLabel("Tweaking parameters");
tuiSlider("EXPOSURE", &exposure, SLIDER_W, maxValue);
tuiEndPanel();
tuiEnd();

tuiRenderGL(maxNumCommands);

And that’s it. I have omitted some details since I don’t feel that this gui is fit for public consumption just yet.

An update on the progress on the gui. It has grown a little but since it was so much fun. Initially I just wanted a simple tweaking gui for parameters and such. And I knew early on that I wanted to make it a separate library that I could use in other projects. I also knew that I didn’t want it to be complex an everything to everyone…But, as I said it was so fun that I’ve strayed a little bit from that.

What I have now is a lib in pure C that has a front end and a backend where the front end is completely independent of the drawing. For my own purposes I have implemented a OpenGL renderer. The communication between the system is done by a simple command buffer. Actually very similar to how one might implement a renderer for e.g. shared OpenGL on old SGI machines :)

Further, the system doesn’t to any memory allocations but uses a memory area of your liking.

For the OpenGL renderer I have made some CLI tools for creating font textures and embedding these in a header file.

This micro project will soon be finished and I intend to release it for anyone to use in some form or the other.  More info soon.

As for now, A newer image:

So here it is in its basic form. It doesn’t look much but I’m in love with it. So simple and exactly what I want at this time. Never fear the NIH syndrome! Embrace!

I have just returned to my day job after half a year of paternal leave. Started to write a “post-mortem” on what I did during that time when the little one was sleeping but it drifted from the topic and I have yet to finish it…
Anyway, I made a lot of progress in the beginning of my rendering experiments project but sadly everything moved slower and slower the more features I added. That’s just the way things are but the most irritating thing was that the gui development has been the thing that has prevented me most from moving forward in a pace I’m comfortable with. First I used an old imgui-thing that I made last year but as I have outlined in earlier posts I felt that it was the wrong focus to develop that further. I reasoned that there just “had to be” free and good guis for what I wanted. To make a long and boring story short, I found librocket that seemed to be a good alternative. After much fighting with it I have finally returned to the imgui I made before. It fits my needs much better and I don’t have to look around in any forum to understand how to get the status of a checkbox or a slider.
Looking forward to showing some examples of it soon. If it turns out ok I will probably release it as open source.

First test of exporting a video from the render. Or rather, exporting continuous frames (every other at 60Hz), and encoding them using ffmpeg. Sadly vimeo have encoded the movie on top of that so it’s very blurry and looks like crap even though its originally very clean. Have to learn how to use Vimeo better I guess.
Every other frame is saved using PBOs in a ring buffer and copied to mem so I’m a little confused to why it lags so much. Writing to file are done after recording. Anway, so what are we seeing in the video?
- Classic fat g-buffer deferred rendering in 16bit/component HDR using exponential tone mapping operator
- Motion blur on/off (which looks really good in 60Hz, but freaking weird in this video)
- PCF filtered directional shadow test.
- Unskinned but working (just ugly!) GUI based on libRocket
- Sponza Atrium model by Crytek. Modified slightly for missing pieces.

Deferred rendering test movie from Filip Wänström on Vimeo.

Just changed theme to something that looked clean and ok and that I don’t have to update myself. Web design is not one of my interests anymore so I prefer to just use something prefabbed.

This is slightly off topic and meta since it doesn’t involved actual development. Rather, I want to vent some thoughts on how to manage ideas and results of research and development.
Basically, I have tested a lot of different ways to save code-snippets, thoughts, papers, references etc but haven’t found a distinct way that I feel comfortable with yet.
At the moment I write thoughts in regular text files (formatted with markdown or C++) saved to dropbox. It makes it somewhat safe for the future as well as searchable from the Mac OS finder in addition to always being available. So far, so good. What I feel that it lacks is the richness of a more modern document format. I want to embed images and sometimes even movies in notes for research. That could easily be done with something like Pages or MS Word but that just doesn’t feel right. Especially not if I regret it later and have a lot of documents bound to a format that I can no longer read.
Another option would be to use a blogging system or a wiki. Either private and local or public and on the net. I’m leaning towards the blog since I already have this site. What I fear is that I will restrain myself from writing down everything since I might have someone else reading it. (That is kind of the purpose of a blog now isn’t it…)
Hmmm, We’ll have to see how it evolves. But at the moment the tools are the following:

- Dropbox for saving all files (that are reasonable small)
- Simplenote for quick notes (accesses using Notational Velocity or JustNotes on the Mac, and the simplenote client on iPhone and iPad)
- GoodReader on iPad for couch reading of papers
- iPad twitter client + instapaper for digesting the twitterverse
- Reeder for news on iPhone and iPad
- Netnewswire for news on the Mac
- Xcode for coding
- Textmate for notes and general text editing

In a way this post is almost a first “try the blog as a dev documentation tool” so it’s mostly interesting to myself as a note of my current way of gathering info…

© 2011 CFW Design Suffusion theme by Sayontan Sinha