Comparison on ID Tech 5 VS Other Game Engines
#1 Members - Reputation: 328
Posted 09 July 2012 - 11:46 PM
I am currently doing alot of research into Code Optimization techniques and memory allocations and better memory management. By doing some reading in Frank Luna's book Introduction to DirectX 11 and other tutorials, I am wondering what if a mesh is drawn by first clearing out the memory for it then once it's drawn then clearing out that space of memory again for better memory management...?
Well, I'm still doing more intense research at the moment and so far loving this forum!
#2 Members - Reputation: 1050
Posted 10 July 2012 - 05:11 AM
#3 Moderators - Reputation: 14287
Posted 10 July 2012 - 05:18 AM
Are you sure about that? It'd be suprising, seeing how vocal Carmack is in opposing software patents -- "The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.", "Getting a patent is uncorrelated to any positive attributes, and just serves to allow either money or wasted effort to be extorted from generally unsuspecting and innocent people or companies."ID have a patent on
They call their texture streaming idea "MegaTexture", other research literature uses the name "SVT" for the same idea.
I'm not sure what you mean by this idea, are you stalking about streaming geometry data to the GPU?am wondering what if a mesh is drawn by first clearing out the memory for it then once it's drawn then clearing out that space of memory again for better memory management...?
#4 Members - Reputation: 328
Posted 10 July 2012 - 05:40 AM
#5 Moderators - Reputation: 14287
Posted 10 July 2012 - 05:48 AM
Better than what at optimising towards what goal?Hodgman, if streaming geometry data to the GPU would be a better way to optimize then I think that would be it.
Neither and both. It's the concept of only moving data to it's destination as it's required for processing, and only moving the sub-set that's needed at that time, not the whole data-set at once.What's the difference between Streaming and gathering from file? I noticed that DX has for instance, get texture from file function and gettexturefromresource. So, can anyone clear up what streaming is for me? Is it from file or resource?
I was trying to ask what your original idea was though, instead of suggesting that you should stream your geometry...
#6 Crossbones+ - Reputation: 5340
Posted 10 July 2012 - 09:22 AM
Trust me that that technique has no patent as Square Enix was involved in blatently stealing that technology for their new engine and I was involved in that theft (I was actually against it from the start, but not due to feeling like a thief but from the fact that there are just better ways to go about managing your textures).Rage does use quite a few optimisation techniques. ID have a patent on some weird texture drawing technique and another on a method of drawing the terrain using 1 texture both of which are meant to boost framerate, the terrain drawing uses more disk space though with a slight overhead on asset loading.
But as for anything boosting the framerate, nothing exists. Megatextures decrease the FPS and there is nothing else. Nothing to gain FPS somewhere else, nothing to make up for the loss of megatextures.
This is why I was originally opposed to megatextures from the beginning and still am (the results of Rage on Xbox 360 may have helped).
In a previous post I mentioned that their GPGPU particles could have had higher numbers. Megatextures is basically to blame for this.
This is one major advantage Unreal Engine 4 has over the Lunimous Studio engine.
Rage is not as optimized as you think. Only the iOS version is really considerably optimized, but you are not talking about that.
The terrain is not optimized at all, and is in fact twice (or so) as slow as it could have been. id Software has no patents on those techniques, and there is not a lot happening under the hood that you could not replicate yourself.
iOS was made possible by its flash storage, which is basically impervious to random reads and writes as long as the reads and writes are properly aligned.
L. Spiro
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums
#7 Members - Reputation: 3818
Posted 10 July 2012 - 09:23 AM
Are you sure about that? It'd be suprising, seeing how vocal Carmack is in opposing software patents -- "The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.", "Getting a patent is uncorrelated to any positive attributes, and just serves to allow either money or wasted effort to be extorted from generally unsuspecting and innocent people or companies."ID have a patent on
Since the US PTO grants patents on a first to file rather than a first to invent basis it wouldn't surpise me if carmack and alot of other people are filing patents on anything semi decent just to make sure noone else files first and drags them to court over it.
The voices in my head may not be real, but they have some good ideas!
#8 Members - Reputation: 4027
Posted 10 July 2012 - 09:35 AM
With streaming what happens is that you have a texture (for the purposes of this discussion) that has already been created, you have a chunk of data that comes from somewhere, and you replace the contents of that thexture with the new data. How you replace the contents is up to you - you can require that everything must be replaced before execution can continue (which may or may not run slow), you can do partial replacements, update a second copy on another thread (e.g. a PBO in GL or a STAGING texture in D3D) then copy across on the GPU, or whatever.
Regarding idTech5 specifically, one advantage of it that doesn't get often mentioned is that the fact that it uses a single large texture for everything allows it to do some quite agressive draw-call batching. In practice it won't use a single call for the entire scene as that will break frustum culling, but it can handle the entire scene in considerably fewer calls than other approaches.
Regarding patents, Carmack is the person who once said that if id ever brought up the topic again (after the first time) he was out the door.
Edited by mhagain, 10 July 2012 - 09:38 AM.
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.
#9 Members - Reputation: 303
Posted 11 July 2012 - 03:18 PM
Rage is not as optimized as you think.
Really? Cause its probably the best looking Xbox 360 game that runs at 60 FPS. It looks about as good as Halo or BF3 but those are 30 FPS. Yeah, having Id artists helps too, but the engine runs flawless 60 FPS on the 360 and very few games with that visual quality do.
#11 Members - Reputation: 723
Posted 12 July 2012 - 02:54 AM
In terms of the texture stuff they do (as mentioned above), this thesis goes very indepth about the optimizations you can perform (its quite old now though, so it excludes newer stuff like AMD's PRT's, but its a great starting point).






