@Matty, I thought this could be a good improvement to include in my project, but I'm having some problems. I'm using DGDK version:
int impGroupAddObject (int groupID, int objectID)
Does not seem to be working
If I change in the 'Dynamic Imposters' example the following line:
if(impostersOn) impGroupAddObject(1, obj, ast);
By this other one:
if(impostersOn) impGroupAddObject(1, obj);
then imposters cannot be seen. This is causing me headaches, as some of my objects have a fixed base object, and I cannot use
int impGroupAddObject (int groupID, int objectID, int lodObjectID)
instead.
Also I do not understand how can 'ast' (source objects 1 and 2) be the LOD objects for the 'obj' asteroids, as I cannot see them related in the code. Is this some internal LOD that Dark Imposters manage?
Another thing that I've noticed is that it does not work very well for fast-animated objects, for example I can see the jumps if I make those asteroids to spin faster. Is there any approach to optimize this behaviour?
Quote: "At the moment it does not support shaders, it is something I may look into. I think certain fx will not be noticable as imposters are always at a distance, also, rendering the object to texture as fast as possible may be better in some circumstances, as long as the imposter is far away enough for the player not to notice."
Does that means that, for example, those asteroids cannot have a normal map shader applied? What is exactly the reason?
This is bad news really. All objects do have shaders nowadays.
I do use a quite high number of shaders, and believe me when I say that there is a BIG difference between the shadered object and the original one, even at a distance.
I guess one solution would be to apply the shader everytime the object gets closer, but this would cause a 'jump' because of the different appearances between the shadered object and the original one. You know, shaders really can change lighting. Any advice regarding the shader usage would be appreciated.
Also I would like to know if I'm going to encounter problems with full-screen shaders like bloom/HDR, or if the multiple-camera handling is able to manage this kind of shaders.
I have to make further tests, but to continue steady, I would like to have
int impGroupAddObject (int groupID, int objectID)
fixed. Aren't the objects without LOD the most benefited from this? As you stated:
Quote: "You save time/memory from having to create/load lots of lod levels for each model. Every model you have can be optimised without any extra work."

Oh well, I'm sure you'll try to do your best. This must be the worthiest plugin of the year
[Edit: Oh, one last thing. To make perfect the imposters match, I think that a impGroupSetCameraAspect function would be needed. Something like this:
void impGroupSetCameraAspect(int groupID, int cameraID, float aspect);
]