# DrakeSlayer

Member

40

150 Neutral

• Rank
Member
1. ## general speed of light question

I think the limit would be on the rotational speed. For a particle, the closer you are from the speed of light, the stronger is the force you need to apply if you want it to accelerate. It's like if the mass of the particle was increasing, reaching infinity at the speed of light. Since the lenght of the bar is fixed, the limit would be on the rotational speed. Now, more interesting : instead of a solid rod, what if you used a laser. if you project a laser on the moon, the spot could move faster than the speed of light. But in this case, no physical object break the speed limit. The photons in the laser ray still travel at the speed of light.
2. ## Skeletal Animation Engine

If you don't want to use vertex shaders, you can always transform the vertices in software and use a dynamic VBO. A better method is allow each vertex to be affected by several bones. You group your vertices by sets of bones, and each vertex contain weights. So if a vertex is affected by two bones, it will have a weight of 1/2 for each. You put the bone's matrices in the vertex shader constants, and the weights in per-vertex attributes. This method allows for a smoother look.
3. ## Comparing waves (beginners question)

Ok, with your signals, a simple DFT won't work. You should look at time frequency analysis (do a google search). It should give you a solution to your problem.
4. ## Creating a basic graphics engine

If you want decent performance, you will have to do some frustum culling (only render the objects in the field of view of the player). The use of a space subdivision algorithm (bsp, quadtrees ..) is a must here.
5. ## Comparing waves (beginners question)

What kind of waves will compare. If you have nice, regular waves, that are well described by their frequency spectrum, Fourier is the way to go. For other cases, you could use a wavelet transform. It expresses your function as a some of wavelets, each wavelet being localized in both time and frequency. This method may be more efficient if your waves are irregular.
6. ## [help] I am having renderer design issues

Today's graphic cards are designed to render bunch of triangles, so you don't have to worry about multiple kinds of geometry chunks. In my engine I plan to use a simple structure for geometry chunks : I treat a geometry chunk as a bunch of vertex buffers, with a vertex format and an index buffer. It also contains the index to begin with, a primitive count and primitive type field, and of course a material field. Ultimately, you are going to send triangles to the card, so you don't need to bother with multiple kind of geometries.
7. ## matrix deforming 3d object

If you want to ensure your matrix is orthogonal, use the gram-schmidt method : Gram-Schmidt
8. ## Gravity - planetary style

You use newtons formula : the force attracts the 2 planets, and the intensity of the force is given by M1M2/d^{2}. that is, the force is proportional to the product of the planetary masses and the inverse of the square of the distance between them. go here : gravitation
9. ## new operator in vector

I don't see what is the problem here. it says user breakpoint, so maybe you have a breakpoint enabled in the debugger. Anyway, it is a bad idea to have a vector<Foo*>, because when the vector is destroyed, the objects are not deleted. It can cause huge memory leaks. And even if you delete the objects before deleting the vector, what will happen if an exception occurs and the vector get destroyed. Instead, you should use a vector of std::auto_ptr or boost shared_ptr, it is more secure, and you can simply use the stl algorithms with your vector.
10. ## ZLIB vs JPG and PNG

As JohnBolton said, you do not have to create your own bitmap format. But i assume graphics are not the only data you will use. You could consider using zlib to compress the other files (like maps, etc).
11. ## GLSLProgram?

The GLSLShader class is surely not defined in glee.h. glee's job is to load openGL extensions. the openGL API is written in C, so with glee, you have acces to the gl functions, like glCreateShader() etc. You have to include the header file wich describe the GLSLShader class. if you are doing tutorials from a book, the header and the code for GLSLShader must be given with the book.
12. ## how to ignore the objects that masked by others when i do selection with gl?

Commercial packages don't use the openGL selection functions. A better solution is to construct a ray that goes from the camera and correspond to the position of the cursor. Then you use ray vs bounding volume intersection tests to roughly find wich objects can collide the ray, and ray vs triangle to determine wich triangles are under the cursor. Then you select the object with the closest intersection point, ignoring backfacing triangles (you use the normals to test it). I think this is what 3dsMax does. This way, you are not limited by the openGL selection functions.
13. ## Organization for events, processes, etc... in Lua?

You can have multiple process( lua_states) without duplicating script code. They are called coroutines. check the lua documentation. Coroutines can share lua objects, functions, but each coroutine will have it's own global variables space. Also, you can change the global's variables table (called environment in lua).
14. ## Sending a file to a client over winsock

If your updates are big, you should provide a way to resume the download after an interuption. I like the idea of a separate autopatch programm. Your game programm should not have to worry about autopatching, it keeps things simpler and allow you to change the patching system. Some games today use bittorent-like protocols for patching, it helps reducing the load on your download servers, especially if you have many users.
15. ## Server awareness of client knowledge

If you have only 100 ships, the data structure used to store what ships each client can see is only 10 kbytes, assuming no optimisation. And with appropriate space partitioning, you should have no problem knowing wich ships are in the vicinity of a given ship. You should tell us more about the gameplay of you shooter. If your game is a fast paced game, where each player controls one ship, The network code will be very similar to the network code of a FPS.