"Government's view of the economy could be summed up in a few short phrases: If it moves, tax it. If it keeps moving, regulate it. And if it stops moving, subsidize it."
- Ronald Reagan
More pages: 1 2 3 4 5 6 7 8 ... 11 ... 21 ... 31 ... 41 ... 48
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.

[ 1 comments | Last comment by Chuck (2014-11-08 17:19:40) ]

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.

[ 1 comments | Last comment by Denis Gladkiy (2014-01-08 18:32:19) ]

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) ]

Nordic Game slides
Friday, May 31, 2013 | Permalink

The slides from my Nordic Game presentation Practical Clustered Shading is now online in the Articles section.

The slides from Ola Olsson's part can be found on his site.

[ 0 comments ]

Learning Chinese
Thursday, May 30, 2013 | Permalink

I make an appearance in the latest Skritter newsletter discussing my experience learning Chinese. I did not choose the headline though.

For anyone interested in learning Chinese or Japanese, I definitively recommend Skritter. I started using it almost exactly 6 months ago now, and I have picked up a bit over 2400 characters.



Talking with a friend about babies some time ago she mentioned that young kids pick up 10 words every day., which of course is amazing. It's generally acknowledged that learning languages is something that kids do much easier than adults, but thinking about it, I've been picking up 13 characters a day on average, and about 35 words a day at my current rate. As an adult, I find that mind-boggling. So language learning at a similar speed or even faster is certainly possible for an adult. Of course, I need to make a conscious studying effort, rather than just existing within an environment where a language is spoken around me. But even so, using an effective method, which Skritter does, can get you a long way, even as an adult. Of course, YMMV, and maybe the reason I ended up in the newsletter was because I was a power user well above the average, with a consistent learning curve. The average user may have a harder time. Certainly, having a Chinese wife and Chinese spoken around me on a daily basis kind of helps. And I also believe you need a traditional school course as a basis to get going. Words and characters is great, but you do need grammar too.

[ 9 comments | Last comment by Chinese A (2013-10-14 10:29:15) ]

More pages: 1 2 3 4 5 6 7 8 ... 11 ... 21 ... 31 ... 41 ... 48