13 April 2014

Flexible particle system - The Container

particle data
One of the most crucial part of a particle system is the container for all particles. It has to hold all the data that describe particles, it should be easy to extend and fast enough. In this post I will write about choices, problems and possible solutions for such container.

08 April 2014

Presentation - Native code performance on modern CPUs

Just a quick summary of a great presentation from Build 2014 called Native Code Performance on Modern CPUs: A Changing Landscape.
The presenter Eric Brumer (from Visual C++ Compiler Team) talked, in quite unique way, about deep down details of code optimizations. Why it is better to use compiler to do the hard work. Why new and powerful FMAD instructions can sometimes slow down your code. And how to generally think about code performance.

06 April 2014

Flexible Particle System - Start

Particle System
Particle systems are awesome! Not only can you create amazing effects, but you can also optimize code and push even more and more pixels to the screen. This post series will cover how to design a flexible particle system and apply a bunch of optimizations to run it faster. Flexible means that it can be used in real applications and for a variety of graphics effects.

14 March 2014

Three Particle Effects

For some time I have been playing around with my particle system. It seems to be a very interesting experiment to do! Today I just want to present some of current results and thoughts on future development.
So far I managed to create three different effects:
  • star tunnel: just round position generator + position update
  • attractors: four attractors that affect acceleration of each particle
  • fountain: simple collision detection with a floor
Let us see some of the results...

06 March 2014

Learning Modern OpenGL

Another article posted in some other place in the NET. This time I tried to describe what resources are available when learning modern OpenGL. In the first place I've written about OpenGL new features, and why it is called "modern". Then I introduced some of resources: books and online sites that can help beginners.
The topic is very broad, so I, probably, touched only the tip of an iceberg. It is also a debate should you start with modern (programmable) graphics pipeline or maybe use the good old fixed one? I learned OpenGL at the time it was in version 1.1 and I must say that it was easier than DirectX. Now the base level for Modern OpenGL is likely to be set a bit higher than several years ago.

05 March 2014

What You Should Know About C++11

Although I have not written for a while on my blog I actually created a lot of articles in some other place recently.
Please take a look at my introduction to C++11.
In this article I went through most important C++11 features (both language and library): auto keyword, range based for loops, lambda, uniform initialization, class member initialization, default/delete/final/override, better enums, nullptr, threads, smart pointers...
I skipped move semantics (and related topics) because I tried to keep the article simple. Maybe in part IV I will cover it :)

19 February 2014

Book: Direct3D Rendering Cookbook

Direct3D is still dominating technology on Windows Platform so it is good to know its current state. Luckily for me, I got a chance to look at the newest book from Pack Publishing about this API. Today I am going to share my thoughts about the book and I hope it will refresh my knowledge about DX.

31 January 2014

Simple Water Simulation

Simple water simulation
Finally I have managed to publish my awesome water simulation! I know that I wrote about my intentions to publish the project some time ago but as usually there was no enough time :)
The code is quite old and was ready something like 2 years ago. As usually I wanted to polish it and thanks to that it was blocked for too long period of time. This post only introduces the project features and gives general description.

30 January 2014

C++ down, up or stable?

Up or down
Just a short post about popularity of C++.
When preparing for my recent presentation about C++11 (and 14) I tried to understand what is going on with the language trengs. Is it going up or down... or in some other direction?
Let us look on some charts and current data. Is it that bad?

17 January 2014

Tasks with std::future and std::async

tasks and arrows
Let us consider a simple thing: use some worker thread to compute a value. In the source code it can look like that:
std::thread t([]() { auto res = perform_long_computation(); };
We would like to obtain the result when it is completed of course. But how to do it efficiently?

31 December 2013

C++ status at the end of 2013

C++ status at the end of 2013
C++11 conformance
  • GCC 4.81 - 100%
  • Clang 3.3 - 100%
  • Intel 14.0 - 84%
  • Visual C++ 2013 - 66%
Another year is almost over so it is a good time to check what is going on with C++. This time more stats and real data compared to my post from the previous year.

29 December 2013

The Passionate Programmer

books, passionate, programmer
  • How to be a better programmer?
  • What technologies should be learned?
  • How to have fun when coding?
Read more to see where are the answers for those questions.

03 November 2013

AntTweakBar cursor lag workaround

AntTweakBar 1.16, Windows build, OpenGL(Core) renderer.
Recently I have noticed that when there is a cursor change when moving between controls some "lag" occurs. It is not seen when you have static scene (or when you change it only via tweak bar), but when there is a smooth animation underneath it can be painful.

30 October 2013

Soil performance texture tests

soil library performance
While implementing OpenGL's mipmap generation method into SOIL library I have started to create a test that would verify my initial assumptions. I wanted to test if the new method is faster than the original way. New method seems to be very fast: even 8X faster than the original (for NPOT textures)! And 2X faster for POT textures.
Content By Bartlomiej Filipek, Blogger platform
Any opinions expressed herein are in no way representative of those of my employers.
Disclaimer: This site contains ads or referral links, which provide me with a small commission for each sale/click. Thank you for your understanding.