• Content count

  • Joined

  • Last visited

Community Reputation

787 Good

About jeffkingdev

  • Rank
  1. Hello,   So, I am working on a 2d car game.  For drivable surfaces, I was planning on using a bit map mask so I could determine if the road surface was drivable or not.  However, anyone have any ideas on how to handle collisions, instead of saying cannot drive, I want to handle a collision, but I would normally need a normal of the face and then use that to bounce off of that surface.  With a bit map, I just know they can't drive, how would I go about creating a normal from a bitmap?   Any thoughts? Thanks
  2. Skin Micro Bump

    Barry,   That's an excellent resource.  Exactly what I was looking for, thanks!
  3. Skin Micro Bump

    Hello,   I heard of a technique called micro bump.  I can't find much about it online, but I assume it's something that simulates very tiny bumps on the skin so as the surface won't appear so flat when viewing close.   Look at this screenshot:   Notice his forehead has lines where the spec light shines.  I'm trying to do similar, but I applied a separate bump and the results are not even close.   Any idea how they get those super nice lines\bump across the skin like that?   Thanks in advance.
  4. OpenGL FPS Camera

    Suen,   I'm just going to throw a few things at you.  I think you may be confusing yourself.  I'd rename some of your variables like 'cameraTarget' should be 'cameraTargetPos' so you clearly identity a position VS a direction vector.  It's important not to get those confused.   For rotation, you can just easily make a rotation matrix and multiply that by your viewMatrix.   I'm not familiar with the glm library, but I saw a glm::rotate function that I believe makes a rotation matrix.  Then you can just do...   viewMatrix = rotationMatrix*viewMatrixAxes*camPosTranslation;   (or put rotationMatrix at the end) -- I can't remember what way OpenGL multiplies it's matrices.   Good luck! Jeff.
  5. gcard28,   When I did this, I validated each step before moving on.  The first thing I did was draw a visualization of a frustum from an object's point of view, then I could move my camera around and look at it.  Then I split it into 4 cascades and again draw each frustum split on screen.   Once you have that, then you know that's working and can move on to the orthographic projection step (which I rendered into textures and drew those as quads on the screen to validate those).   And so on...   Jeff.
  6. Hello, I have everything running in DX9. I am debating about going to DX11 sometime this year. I wanted to know what the learning curve is. I have deep knowledge of DX9, but I'm more interested in API changes that might be totally different than the way they were doing stuff in DX9. Has anyone gone from DX9 to DX11 and how difficult was the transition? Edit: I know this is a broad question based on many factors, but I'm still interested in hearing anyone's general thoughts. Thanks Jeff.
  7. Can someone please look at my flow below and tell me if I'm correct in my thinking: CLIENT - Requests to join a multiplayer game. - Sends game data to HOST. - Accepts game data from HOST. MASTER SERVER - Accepts incoming message for matchmaking. - Stores list of players ready to play. - Pairs players up by random (at first, then by other factors later). HOST - Accepts incoming data from client and sends data out to all clients playing the game. Here's the steps it would work: 1. Client requests to play online game. 2. Server accepts request, stores IP:Port of client. 3. Server waits for another request. 4. Server accepts another request. 5. Server matches 2 requests. 6. Server chooses 1 client to be host. 7. Server sends client connection data to each client and removes both clients from matchmaking list. 8. Both clients send game data to the host, which is 1 of the clients. 9. Game continues till end. 10. If no disconnects, host reports game stats to stat server for online leaderboards/etc. Q1: Is this how a basic matchmaking server and client/host server works? Q2: This example shows how a user is the HOST, if I wanted to have a server the HOST, would I need to run like 500 server applications as a service to host 500 games? lets say for example? Is that how that's done?? Thanks Jeff.
  8. UDP ACK Question

    Hello, I had a question on how to send an ACK. So, I am working on a UDP Server, so from a high level can someone please tell me if my logic is correct: Assuming 1 server, 2 players (possibly more than 2 players) 1) Player 1 sends data packs 1,2,3,4,5 to server (waits for ACK) for broadcast to players who joined 2) Server sends to rest of players, in this case Player 2. 3) Player 2 receives packets 3,4,1 ... -- Does player 2 send an ACK to the server? -----If so, what if those never reach player 1? -- Does player 2 send an ACK directly back to Player1 somehow? -----Does Player1 send the IP along? 4) Player 1 keeps sending packets it does not get ACK for after X time interval. In this case, it would resend packets 2, 5. This would be for a out-of-order guaranteed packet delivery. Thanks Jeff.
  9. high dynamic range rendering

    Hodgman, Do most video cards these days support the floating point textures? Do the onboard cards do this now too? Thanks Jeff.
  10. DDS Texture Compression

    Absolutely! DDS is just a file format. You can have an uncompressed DDS file. Although DXT compression is really good. Did you compare them? Some textures look just as good compressed as uncompressed. Jeff.
  11. Ray-AABB collision detection

    I'm not sure why your code doesn't work, but check this book out: It's the best book I've found with regards to collision detection, great code samples and great explanations. Jeff. (I'm not affiliated with the book at all, except that I have it)
  12. Shadow Mapping using a fullscreen quad

    I worked on CSM recently myself, although not in GLSL. Although the concept should be the same. How many Cascades do you have? I noticed your not figuring out which cascade your in before doing a lookup in your shadow map. I assume your shadow map contains 3 or 4 different views? What helped for me was to do each step individually and have something visible to see each step. 1) Draw a visualization of your view frustum with your 3 or 4 splits 2) Setup a camera you can switch to to see the orthographic view of a particular split 3) Render all splits to a single texture and display that on-screen. 4) Render red/blue/green/purple into that texture representing each split and map it on to your terrain based on your current view. 5) Finally, instead of the colors project your actual shadow map on to the terrain. Doing each step helped me reenforce what I was doing along the way. Then you can work on each step and figure out what's wrong easier. Good luck! Jeff.
  13. Average Luminance & HDR

    Thanks Guys! 1 More question, I didn't feel right making a new post. When I add bloom to my HDR, it ends up making the bloom parts all white. Is that correct? Shouldn't it retain the color of what it's 'blooming'? When you do it like finalColor = colorFromToneMapper + bloom; (bloom just adds on top making finalColor over 1, which will ultimately be clamped at 1. Am I missing something here?? Thanks Jeff.
  14. Hey guys: Is the average luminance values in HDR? Meaning the scene grayscale should be a texture format that can go higher than 1? Thanks Jeff.
  15. Hello, So, I have CSM working. Looks great. In order for it to work properly, I need to figure out the cascade index in the pixel shader and then do the multiply with it's 1 of 4 matrices (one for each map) again in the pixel shader. I'd rather do this in the vertex shader, but then I get shadows with lines across it (shadow, no shadow, shadow, no shadow, etc.). Is this possible to do in the vertex shader? If so, any ideas how? Maybe I can't do this because of the nature of the shadow, it really does need to be a pixel operation. It just sucks I have to pass all 4 matrices into my pixel shader for the operation. Thanks Jeff.