354 reputation
216
bio website stevenlu.net/tm.html
location Pittsburgh, PA
age 25
visits member for 4 years
seen Mar 10 at 16:38

Play a multitouch HTML5 Tetris clone -- don't worry, keyboard will also work great: http://htmltetris.com

A huge fan of tmux, and I use Sublime Text and (more often) the indomitable Vim.

I have some special experience with:

  • too much JavaScript
  • too much CSS
  • OpenGL
  • topics related to animation via simulation, primarily in 2D (rigid/soft-body physics, kinematically-enhanced shader techniques)
  • low-level application security (the stuff that nobody ever has time to dedicate to finding their app's vulns)
  • HTML5 gamedev (It's ready for tech demos, not all that ready yet for important products, but hopefully will be quite soon, and failing that, eventually)
  • C++ template metaprogramming, and clang c++ metaprogramming (hint: one of these will erode your sanity)

Mar
10
revised What is a good way to determine if a vector is between two other vectors in 2D?
edited title
Dec
28
accepted render with const depth value
Dec
28
comment render with const depth value
Yeah I hadn't thought it through and realize i can avoid setting gl_FragDepth (not that I can even do that on a ES 2.0 context as no Apple devices even support EXT_frag_depth). This is interesting that there is a lot of implicit stuff happening based on the glClear. I suppose you're saying that the tile-based architecture will allow me to render my skybox first and I will still gain optimization such that hopefully it can skip some skybox fragments if some geometry to be rendered later covers those fragments! I'll try to render the skybox last to explicitly leverage depth test.
Dec
28
comment render with const depth value
According to sunsetlakesoftware.com/2011/05/08/… doing impostors is NOT simple when only on ES 2.0 on account of no EXT_frag_depth. Luckily I can adjust my full screen quad geometry for the skybox to get appropriate gl_FragCoord.z values.
Dec
28
revised render with const depth value
added 174 characters in body
Dec
28
revised render with const depth value
added 174 characters in body
Dec
28
asked render with const depth value
Dec
26
awarded  Excavator
Dec
26
revised Implementing a skybox with GLSL version 330
spelling error. Then stackexchange made me make even more edits because my spelling fix was too small.
Dec
26
comment Implementing a skybox with GLSL version 330
Just a helpful note to folks, GLSL ES 1.0 (used for GL ES 2.0) does not implement inverse()
Dec
26
suggested approved edit on Implementing a skybox with GLSL version 330
Dec
22
awarded  Autobiographer
Sep
3
comment problem loading Collada DAE model using Assimp in OepnGL 4.4
Well, then Scene 0 contains 5 meshes. Looking at it I think I see the outline of the square box around the wheel. Maybe the 4 wheels are overlapping on each other, so you actually are rendering all 5 meshes, but inside the wrong coordinate space. I reckon there's some transforms specified in the COLLADA file that you're not reading and applying.
Sep
2
awarded  Citizen Patrol
Sep
2
comment Is it reasonable to use a 2D texture as a lookup table in GLSL
Have you tried setting the texture sampling to GL_NEAREST for the texture? You just want to explicitly disable the bilinear filtering
Sep
2
comment problem loading Collada DAE model using Assimp in OepnGL 4.4
I think you're only grabbing the first item out of the hierarchy which is why you only get one wheel instead of all 5 parts. I definitely came across a similar issue when I was working with assimp earlier. Maybe check if you're looking at all of the scenes. there might be 5 total scenes.
Sep
2
comment Who should handle animations when game logic is separated from rendering?
This almost begs the question to me of why there even needs to exist separate rendering and logic threads at all in a game that is tile-based. This is a huge amount of added complexity to keep track of.
Sep
2
comment How do I implement time scaling?
@Phillip, determinism is lost among other things when the simulation is infected with stuff like how long it takes the hardware to process something. This is how you do it properly: gafferongames.com/game-physics/fix-your-timestep
Sep
2
comment What does the “random element” do in Cellular Automata
Maybe what you're missing is the implicit knowledge that random()'s domain is [0,1)
Sep
2
comment How many OpenGL programs should I use to render multiple objects?
Yup, for example you might have a "Scaly" shader that produces fragments that look scaly, and which works in such a way (most shaders do...) that you can render all 3 cubes, 1 cylinder, and 8 spheres using that one shader (with corresponding geometry primitives, of course). A reasonable set of uniforms here might be a vector value defining the color, and maybe a few scalars or something that affect how "scaly" or "shiny" the visual effect will be. Then you have one shader and you change how the shader colors fragments by changing the uniforms between the draws of the individual geometries.