"The world is a dangerous place to live, not because of the people who are evil, but because of the people who don't do anything about it."
- Albert Einstein
More pages: 1 2 3 4 5 6 ... 11 ... 21 ... 31 ... 41 ... 46
I'm now a father of two
Tuesday, May 20, 2014 | Permalink

On May 9 our second son was born. 3.805kg and 52cm at birth, a bit bigger than average, but not huge like his older brother was. He's getting along very well with his older brother so far.



A most welcome addition to the Persson family.

[ 9 comments | Last comment by Nuninho1980 (2014-10-25 11:40:54) ]

Added WebGL preview to cubemaps
Sunday, April 13, 2014 | Permalink

A couple of months ago I replaced my old Java Applet based cubemap viewer with a new WebGL one for the pictures on this site. The obvious next step was to use it for my cubemap collection, although that required that I generate the content for that also, so it was a bit more work. Now I've finally done that work, so now all cubemaps come with a WebGL preview link (or you can just click the image) so that you can get a more intuitive and interactive view of a cubemap before deciding to download it. Note that the preview is only 512x512, whereas the full cubemaps are typically 2048x2048.

[ 3 comments | Last comment by ROBLOX (2014-04-29 13:12:26) ]

GDC slides available
Saturday, March 29, 2014 | Permalink

The slides from my GDC 2014 talk Low-level Shader Optimization for Next-Gen and DX11 are now available here.

[ 0 comments ]

Conference appearances
Sunday, March 9, 2014 | Permalink

A bit late to announce this here now, but I'll make a couple of conference appearances shortly. First I'll participate in an "Industry Panel" at I3D in San Francisco next week discussing scalability issues. I3D is co-located with GDC, which is where I'll appear next, talking on the title Low-Level Shader Optimization for Next-Gen and DX11. If you were on last year's GDC you may have been on my talk "Low-Level Thinking in High-Level Shading Languages". This talk is on a similar theme, but focusing more on the GCN architecture that's in next-gen consoles. Hope to see you guys there!

[ 0 comments ]

Site update - WebGL cubemap viewer
Sunday, January 26, 2014 | Permalink

In my recently quite underutilized Pictures section of this site I have in the past used a Java applet and JOGL for OpenGL support to implement a basic cubemap viewer. That kind of worked, but the downside was of course that it relied on Java being installed, and then required the user to accept the installation of native JOGL components for his system. Fortunately, it's now 2014 and even Internet Explorer has basic support for WebGL, so I decided to upgrade this part of the site to go plug-in free and just work provided a modern browser.

So far I've tested it in Firefox, Chrome, Opera and IE11, and it works perfectly in the first three. IE11 also works OK-ish, but for some reason zooming on the scroll wheel doesn't work, and WebGL seems to go into software rendering so performance is a big sluggish, but it least it renders correctly.

To see it in action, you could for instance go here, or any other picture with a green frame around the thumbnail (green means cubemap). Please let me know if it doesn't work in your browser.

[ 5 comments | Last comment by Timo Kinnunen (2014-02-10 13:32:39) ]

MakeID - Unique ID generator
Tuesday, December 31, 2013 | Permalink

It's been a while since I posted anything here; between family life and a computer that was broken for a month or two there hasn't been much opportunity to post anything, but now at last I can offer an update. Yay!

So here's a piece of code that I have probably spent a little too much time tweaking considering the relatively narrow scope. It's a simple header-file only library for generating unique IDs at runtime. The reason I conjured up this from the beginning was sort of a problem I encountered at work. Basically our sort-IDs that we use in the rendering system are 64bit. Typically we would throw in a pointer to a "RenderBlock" as they are called in our system, which more or less corresponds to the data for a draw-call. In 32bit this was fine, as we still had 32bits for encoding other stuff, like shader permutation, state flags etc. 32bits for distinguishing things that are basically in the order of tens of thousands is a bit of a waste. And now with 64bit pointers, it's eating the entire sort-ID, except the bottom 4 bits because of 16byte alignment. So I wanted to create unique IDs for these that are much smaller, say 16bits or so. So I made a lib to manage a pool of IDs and always returns the smallest free ID. So if you allocate 5 handles, you'll get 0,1,2,3,4, and then if you free 3 and later ask for a new ID, you'll get the 3 again.

Beyond this particular use case I can also see some other uses. For instance as replacement for hashes, handles or resource pointers at runtime. It can also be used for managing a pool of shared resources, where the ID can be used as an index into an array. The underlying storage can be reallocated without a need to update IDs handed out as handles elsewhere. And all IDs bunched up at the bottom of the array is of course also great for memory and cache behavior.

There may be other uses as well that I haven't thought of. In any case, the code is released in public domain, so feel free to use any way you want. Any feedback is of course also welcome.

Update 2014-01-23:
There's now a 1.01 version available. No dramatic changes, mostly minor code review fixes.

[ 2 comments | Last comment by mohdzikri iman (2014-06-17 15:55:08) ]

Siggraph slides available
Sunday, July 28, 2013 | Permalink

At Siggraph I presented "Practical Clustered Shading" together with Ola Olsson. The slides are available here.

I also presented "Populating A Massive Game World" together with my colleague Joel de Vahl, and the slides for that can be found here.

[ 0 comments ]

Added another 5 cubemaps
Monday, June 10, 2013 | Permalink

I have uploaded another 5 cubemaps. Available on the Textures page.

[ 1 comments | Last comment by Käy Vriend (2013-10-02 23:39:41) ]

More pages: 1 2 3 4 5 6 ... 11 ... 21 ... 31 ... 41 ... 46