Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

133 Neutral

About Fase

  • Rank
  1. Fase

    Books about Shaders ?

    Although the book "Shaders for Game Programmers and Artists" does give a nice overview about shaders, I must warn you that all of the shaders are only/mostly valid when working within Ati RenderMonkey. One of the more annoying parts about it, is that it does not explain how normals should be considered when going from camera to local/world space etc. Ati RenderMonkey does everything in one space, so these transforms are absent from shader examples. I don't know a better book at this point, so consider me interested as well.
  2. Fase

    Vertex/Pixel Shader Question

    If they are culled, and your culling order is correct, than they won't be processed by either vertex or pixel shader I think. When they are out of frustum (But you decide to draw them anyway) I believe the vertex shader gets to do it's work, but the pixel shader doesn't, since it's clipped. I'm no expert, but that's what I think will happen.
  3. Fase

    horror game graphics engine?

    A while ago I ran across the c4 engine. Link I haven't used it, but the feature set seems rich, and pricing looks ok.
  4. Fase

    3D Software Recommendations Needed

    I can recommend Cinema4d. Low cost initialy, but you can buy extra modules if you want them. I think Cinema4d has, by far, the most intuitive UI from all 3d modellers I've seen. I also believe it ships with a free uv mesh painter, bodypaint. Link
  5. Fase

    Terrain + Multitexturing and VBOs

    I haven't tried this, so I'm not sure how fast it is, but you can try mapping the vbo with glMapBuffer, alter the vertices that you want to alter, and then glUnmapBuffer.
  6. I don't think you should continuously send position, rotation etc. Only send actions. Let the clients calculate the positions. If you send all positions, your bandwidth usage will take a HUGE hit. Also, sending data as strings, is not the best way to go. Once in a while let all players send their calculated positions, and check for inconsistencies. The url jdindia gave, is also very good.
  7. I think the most efficient way of doing things, is to only send player actions across the network. Maybe a full scene sync every once in a while. For example: Player x moves player x rotates player x shoots player x changes weapons Player x is hit by y etc The receiving clients are responsible for receiving the action data, and updating their scene info. Usually clients also perform some sort of dead reckoning to guesstimate where the other players are moving to.
  8. I have not looked at your code, but I might give you some advice anyways. I suggest that you use 2 threads when using sockets. 1 listening thread, and 1 sending thread. Add items you want to send in a Send queue, and let the sender thread send items from that queue. Same goes for the listening thread. Remember to properly lock the send/receive queue's when adding/removing items from them.
  9. I haven't reached the audio playing part of my engine yet, but this is what I had in mind: In my main game loop I do the following: while(running) { ProcesUserInput(); DoLogicWithUserInput(); Update3dGraphicsForThisFrame(); UpdateSoundDataForThisFrame(); Render3d() RenderSound(); } I make no distinction between graphics or audio. They are both assets that can be rendered by different render systems.
  10. A while ago I decide to also take a look at scene management, and also ran into the same problem when I wanted to add physics to my engine. After some thinking I decided to get completely rid of the scenegraph concept. My most basic object is called SceneObject, and it has virtual functions to access it's position/orientation. SceneObjects also have RenderData available to them, including bounding parameters. My SceneObjects know absolutely nothing about parent nodes or child nodes. If I want such a relationship I use Contraint controller objects, which define how moving/rotating SceneObjects have influence on other SceneObjects. For example, a RigidContraint simply takes SceneObject A's position/orientation and moves object B's position/orientation relative to it, whereas a SpringConstriant takes physical attributes like mass/velocity/string stiffness etc. to calculate object B's position/orientation. These Constraint objects are grouped/ordered/updated in a Constraints Tree. For other scene management functions (like Octree), I create a new tree, and use SceneObject bounds. Same goes for AI (new game logic tree with scripts, for example npc owns object b). I'm pretty sure I've overlooked plenty things,but so far I like this approach way better.
  11. Fase

    Writing an OpenGL/DirectX render...

    In my render engine I divided the renderer and window creation system. To tie the window and the renderer together I use a RenderContext object. This RenderContext is created by passing it a Window object. The RenderContext is then passed to the Renderer object. Lightbringer: Thanks for posting the link about material/shaders. I was just busting my head about this one... The other design issues are great food for thought as well.
  12. I see that you invert your camera position, but do you also invert its rotation?
  13. I recently made my own opengl obj renderer, and GenPFault is right. If there are more than 3 face elements, construct new triangles by treating the faces as a triangle fan. ex: f 4 3 2 1 5 new f = 4 3 2 4 2 1 4 1 5
  14. Fase

    Projection Matrix Help

    Hi, Maybe the internals of GluPerspective is what you're looking for: link Although I'm not sure how to translate focal length to zNear and zFar.
  15. By using matrixmode, you specify which matrix you are going to manipulate. There are four matrixmodes you can operate on: GL_MODELVIEW: used for positioning objects in the world. GL_PROJECTION: Used to specify screen projection (field of view, aspect ratio etc, perspective correction etc) GL_TEXTURE: Used to manipulate texture coordinates. GL_COLOR: Used to manipulate colors (Allthough I have no idea how or why) In your code sample you first specify that you want to work on the projection matrix. glLoadIdentity resets the matrix. After that you set the perspective (which should operate on the projection matrix) Then you specify that you want to operate on the modelview matrix. Often that matrix is also reset using glLoadIdentity. Now idealy you start by positioning the camera ( or in other words moving all object in the world). Then you render objects ( possibly moving them in advance) Hope that helps.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!