Choppy Large Polygons

Started by
1 comment, last by Cambo_frog 18 years, 8 months ago
Hey - I've been having some problems when rendering my skybox. The skybox itself has six high-resolution (2048x2048) textures applied to the faces. It still renders at over 250 FPS, and the foreground objects are still very smooth. The problem lies with the background - when it is "scrolling" across the screen at any speed, the image appears "choppy", or unsmooth. This isn't caused by lack of framerate (as mentioned) - so has anyone else come across this effect, and has anyone found a way to make it move more smoothly? Oh, and its not Vsync either! Thanks in advance :)
Advertisement
Hi Source,
Not sure of the problem, but here are a few questions to play around with.
Did you set Mip levels to one when creating the texture?
Have you tried using a cubemap texture instead of using 6 separate textures to avoid texure changes (would need a graphics card with a decent amount of memory to use a single texture with 6 x 2048 x 2048 faces though)?
Do you disable Z-buffer when rendering?

Maybe 2048 x 2048 is just too large.

For rendering my skybox, I use a single cubemap texture where each face is 1024 x 1024.

The beauty there is you only need to use a single SetTexture() call, and you can render the skybox in a single DrawIndexedPrimative() call.

I use cubic texture coordinates in my skybox vertices.

if you are interested in using a cubemap texture for your skybox then see my last reply in this thread for details on how to set up your vertices and indices for this.

You can also use the same cubemap for implementing reflection mapping on objects in your scene.

HTH,
Cambo_frog
For the love of god, please tell me that you've just omitted your error checking code for brevity, and you don't really assume that all those functions succeed.
Something else which may or may not help:
When I used to use separate textures for each skybox face, I set sampler state like this:

pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP );
pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP );

HTH,
Cambo_frog
For the love of god, please tell me that you've just omitted your error checking code for brevity, and you don't really assume that all those functions succeed.

This topic is closed to new replies.

Advertisement