3 registered members (Ayumi, Akow, AndrewAMD),
1,505
guests, and 9
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: A refresh rate jump?
[Re: Jamie_Lynn]
#60472
12/17/05 00:21
12/17/05 00:21
|
Joined: Apr 2002
Posts: 1,246 ny
jumpman
Serious User
|
Serious User
Joined: Apr 2002
Posts: 1,246
ny
|
Ive also generally seen refresh rate jumps when sprites are close to the camera, just like the foreground bush you mentioned. It dosent even have to be a million particle effect, and could definitly be recreated with a few sprites. If you can "break" the camera and go into free look, I bet you can get better refresh rates when you bring the camera far away from the whole plant scene yet keeping all the plants in the view. Its the same number of visible plants, yet the refresh rate is better the farther away you are from them. I think the overdraw idea is in effect here too.
Dare I suggest this, because its alot of work but
Maybe you can make extremly low poly models of the plants when they are close to the camera. So that pink flower plant in front of the camera in your screenshots would morph into a low-poly "high detail" model. However this model cant have any transparent areas with overlay, and probobly a smaller skin resolution. Maybe this model would bypass the overdraw problem because it has no transparent areas for the engine to reiterate, and imo is generally much better looking than seeing a flat billboard of a plant that stares at the player when he rotates.
Though be assured this problem is tricky to resolve, and you really cant skimp out and cut corners. Getting a scene to look awsome in a screenshot is easy, but getting the scene to flow in realtime without hiccups in FPS is another monster.
|
|
|
Re: A refresh rate jump?
[Re: Excessus]
#60477
12/18/05 15:35
12/18/05 15:35
|
Joined: Nov 2000
Posts: 1,534 hamburg
Samb
Serious User
|
Serious User
Joined: Nov 2000
Posts: 1,534
hamburg
|
I had that bug too look at this: its the alpha channel some graphic cards have problems with alphatextures especially the ones you get with a new PC.
|
|
|
Re: A refresh rate jump?
[Re: Jamie_Lynn]
#60479
12/23/05 00:20
12/23/05 00:20
|
Joined: Oct 2004
Posts: 1,068
Jamie_Lynn
OP
Senior Developer
|
OP
Senior Developer
Joined: Oct 2004
Posts: 1,068
|
I still haven't looked at the ffp solution yet (Loopix' site is not available at the moment) but here are some things I learned so far in trying to manage fps using a lot of models and sprites with overlay on.
1. Sprites aren't an issue as they do not overlap so much as do models like the az_bush available with the A6 downloads.
2. The biggest factor in driving the refresh time for models is skin size. The refresh time for my test bush model reduced by 50% when I reduced the skin size from 512x512 to 256x256.
3. The second biggest factor is scale - the larger the model the higher the refresh rate. But a model with a 256x256 size skin scaled to 2x it's original size still does not put as much demand on refresh times as the same model with a 512x512 skin at the original size.
4. If you skin the 2d branches with a fuller image (ie a branch with lots of leaves and flowers) you can reduce the number of branches required to make the bush or tree look full. This is the 3rd factor - doesn't make a dramatic difference.
Still working on this ... but thought I would share what I have learned (at least for my card and configuration) so far.
Edit: Between cleaning up some bad blocks, reducing the polygons by redesigning a few things, reducing skin sizes on the bushes, and reducing some branches.... I have recovered my 50 fps. (It had dropped down to below 30 fps for some pov).
Last edited by Jamie_Lynn; 12/23/05 00:26.
|
|
|
Re: A refresh rate jump?
[Re: Jamie_Lynn]
#60480
12/24/05 22:59
12/24/05 22:59
|
Joined: Aug 2001
Posts: 2,320 Alberta, Canada
William
Expert
|
Expert
Joined: Aug 2001
Posts: 2,320
Alberta, Canada
|
Code:
function mtl_vegetation_init { vec_set(mtl.emissive_blue,mat_model.emissive_blue); vec_set(mtl.ambient_blue,mat_model.ambient_blue); vec_set(mtl.diffuse_blue,mat_model.diffuse_blue); vec_set(mtl.specular_blue,mat_model.specular_blue); mtl.power=mat_model.power; mtl.albedo=mat_model.albedo; //mtl.skill1=pixel_for_vec(vector(188,0,0),0,8888); // the first value in the vector is the threshold mtl.skill1=pixel_for_vec(vector(40,0,0),0,8888); // the first value in the vector is the threshold }
material mtl_vegetation { event=mtl_vegetation_init; effect= " texture entSkin1; dword mtlSkill1; technique vegetation { pass p0 { Texture[0]=<entSkin1>; ZWriteEnable=true; Zenable = true; AlphaBlendEnable=false; AlphaTestEnable=True; AlphaRef=<mtlSkill1>; AlphaFunc=Greater;
CullMode=CCW; // CCW or None ColorArg1[0]=Texture; ColorOp[0]=Modulate2x; ColorArg2[0]=Diffuse; } } technique fallback{pass p0{}} "; } my.material = mtl_vegetation; This will solve your sorting problems. If you want alpha blending change - AlphaBlendEnable = True;
|
|
|
|