Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


gwihlidal

Member Since 23 Apr 2003
Offline Last Active Nov 09 2014 04:23 AM

Posts I've Made

In Topic: Anyone here a self-taught graphics programmer?

21 September 2013 - 11:49 PM

I'm super busy working on Battlefield 4, but this is an awesome thread, so I thought I'd link my own story (published recently on BioWare's blog).

 

http://blog.bioware.com/2013/07/25/staff-blog-graham-wihlidal-senior-software-engineer/

 

Cheers!

Graham


In Topic: Asynchronous Asset Loading (data streaming)

17 November 2010 - 09:28 PM

Some great replies here so far. One suggestion I wanted to add is avoid doing look ups into your data manager by string. This pattern never scales (huge performance hit with a large catalog), uses a lot of memory, and often causes fragmentation. Instead, I would generate a hash of your asset names (32bit or 64bit, possibly working in a bucketed hash to handle collisions) and make your requests against hash values instead.

Cheers!
Graham

In Topic: Making a certain color in a texture 'clear' ?

05 January 2009 - 04:56 AM

What you want is color keying. For the most part, color keying is not hardware accelerated, and generally textures are preprocessed to remove keyed transparency pixels before being submitted to the GPU. Doing this on the GPU in hardware with a pixel shader is super easy and fast as well.

Check out the color keying sample on this page:

http://www.codesampler.com/oglsrc/oglsrc_4.htm


Hope that helps!
~Graham

In Topic: one texture for whole font vs one texture per char

05 December 2008 - 04:44 PM

ya, you should really use a texture atlas for your font instead of individual textures because of the draw call overhead.

~Graham

In Topic: Messages outgoing buffer, avoiding frequent heap allocations

29 November 2008 - 04:02 PM

hplus0603 is right on the money. Use object pools for fixed size rapid allocations; custom memory managers - with techniques like a small block allocator - are really only useful for allocations that are not a fixed size, but are small and within a common average allocation size. Ring buffers are cool, but really only if you have a good idea of what the ring buffer size should be. If your network traffic grows significantly each time a new client connects than I would avoid it. Ring buffers can be very useful for reducing thread lock contention however (single directional).

Another nice thing about fixed size allocator + object pools is when you know the main initial pool size up front. Knowing this ahead of time allows you to allocate all memory related to the initial pooled objects in a large contiguous block, which of course greatly helps out with fragmentation (in certain instances).

~Graham

PARTNERS