27,747 reputation
35290
bio website reedbeta.com
location Milpitas, CA
age 29
visits member for 3 years, 9 months
seen Jun 28 at 0:37

I'm a graphics programmer, an amateur physicist, and a sci-fi nerd. I teach computers how to make pretty pictures. I'm excited by beautiful, immersive, story-driven games and interactive fiction. I enjoy messing around with esoteric ideas. I like explaining things.

I currently work for NVIDIA DevTech. Previously, I worked for Sucker Punch Productions on the Infamous series of games for PS3 and PS4.

reedbeta.com - developer blog, OpenGL demos, and other projects. @reedbeta on Twitter.


Jun
27
comment What does multisampling skip or improve? (so it can be faster than supersampling)
@BrainSlugs83 Yes, GPUs these days often use simple lossless compression formats for render targets, especially MSAA ones. It's done in hardware and is transparent to applications. Saves a ton of memory bandwidth. (Note this is a totally different thing from DXT/BC texture compression, which is lossy and precompressed offline. But that also does store the data compressed in video memory; it's decompressed in hardware when the texture is sampled. Again, saves a ton of bandwidth.) Source: I work at NVIDIA.
Jun
17
comment Simulating water droplets on a window
@MaximKamalov Done. (Until the next time AMD decides to reorganize their website...)
Jun
17
revised Simulating water droplets on a window
fixed link
May
31
awarded  Good Answer
May
30
comment Deferred shading - how to combine multiple lights?
@PsychoDad That's the domain of shadows, which is...a more complicated topic. :)
May
29
comment Deferred shading - how to combine multiple lights?
@woojoo666 Aha, sounds like you solved it on your own. Yes, you have to lay down depth in an opaque pass before you can use any sort of blending. It can be a z-prepass with color writes disabled, or another common way is to do ambient/directional light in a first pass with no blending, then add point/spot lights in later passes with blending.
May
27
comment Deferred shading - how to combine multiple lights?
@woojoo666 No. In fact it should be enabled with the depth test set to less-equal, so that surfaces that precisely match the previous pass will go through. If the depth test is off, then surfaces will incorrectly accumulate light from whatever's behind them. :)
May
19
awarded  Enlightened
May
19
awarded  Nice Answer
Apr
12
comment Optimize state changes within a render queue
@cubrman Yeah, changing techniques or passes within an effect file does change the shaders. Anytime you switch to a different individual vertex or pixel shader program, that's changing shaders.
Apr
11
comment Optimize state changes within a render queue
@cubrman I wouldn't say that. Updating shader parameters is one of the most lightweight state changes, so I wouldn't worry about it too much. You can still minimize the expensive state changes (switching shaders, switching render targets) by grouping your objects by shader. And you can avoid switching textures, vertex buffers etc. (medium expensive) by grouping your objects further by material and mesh, within the grouping by shader.
Apr
11
comment Optimize state changes within a render queue
@cubrman If using the effect framework, IIRC you need to call Apply each time you change parameter values.
Mar
4
awarded  Enlightened
Mar
4
awarded  Nice Answer
Oct
7
comment Deferred rendering and gaussian blur - artifacts
I'm confused by your description of your render passes. Is fbo2 the temporary texture that you render to during the blur? Do you have multiple temporary textures, each with its own fbo? Or are you attempting to re-use the same temporary texture / fbo for multiple passes (which won't generally work, and could explain the artifacts)?
Sep
30
awarded  Explainer
Sep
21
awarded  Enlightened
Sep
21
awarded  Nice Answer
Sep
16
answered Ambient occlusion: Correct culling after anisotropy correction
Sep
15
comment Ambient occlusion: Correct culling after anisotropy correction
Also, I saw you cross-posted this to Stack Overflow. That's frowned upon - you should pick the site best suited to the question (which is this one) and post it only there.