27,542 reputation
35089
bio website reedbeta.com
location Milpitas, CA
age 29
visits member for 3 years, 7 months
seen 2 days ago

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.


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.
Sep
15
comment Ambient occlusion: Correct culling after anisotropy correction
What is "the anisotropy correction"?
Sep
13
awarded  Yearling
Sep
10
awarded  Good Answer
Sep
3
awarded  Enlightened
Sep
3
awarded  Nice Answer
Aug
31
awarded  Nice Answer
Aug
28
comment How does Texture2D.GetData return coloured pixels?
Try i*width + j
Aug
23
comment How can I use the graphics pipeline to render volumetric data based on a density function?
@danijar Yes, it has a slight advantage over using a quad because some pixels along the diagonal will be shaded twice if you use a full-screen quad. On the other hand, discarding off-screen pixels is free since the rasterizer will not generate those pixels to begin with.
Aug
21
comment CSM DX11 issues
@KaiserJohaan I don't think that's quite right. The last row should have +0.5 for both X and Y, and zero for Z.