Animation using Vertex Buffer Objects

graphics

    Next

  • 1. CAD Formats
    Anyone know of any resources for converting CAD file formats? Something which is open source? Thanks, Ike
  • 2. Back buffer problem
    Hi, In our application, we use a double buffered window surface for rendering. Because the render operation is potentially time consuming (several seconds) we only want to render when the window is resized or the settings change. So we render on resize, and grab a copy of the back buffer using glReadPixels. Then, when the window merely needs to be repainted, we copy the pixels back into the back buffer with glDrawPixels, and swap the buffers. The problem is that when rendering, some drivers appear to update only the pixels of the back buffer that correspond to visible pixels in the front buffer. So if our window is half offscreen, that half of the back buffer is simply not rendered to. A possible workaround is to render to a memory surface instead, but that way we lose HW acceleration. Does anybody know a solution to this problem? Or failing that, does anybody know of a way to detect that this problem will occur, so we have the ability to only apply the workaround when it is needed?

Animation using Vertex Buffer Objects

Postby phuknuttvi » Thu, 10 Jul 2003 02:33:44 GMT

If I want to animate a large model stored in a VBO, does that mean I
have to map the buffer to change the value every frame of animation?
It seems like that would drop the framerate considerably.

Re: Animation using Vertex Buffer Objects

Postby a.m.a » Thu, 10 Jul 2003 05:32:50 GMT

There's a big article on related subjects here :

 http://www.**--****.com/ 

I hope that helps a bit.




Similar Threads:

1.Vertex Arrays, Vertex Buffer Objects

Hi list.

I implemented rendering using display lists, vertex arrays, and vertex
buffer objects. And guess what was the faster ? ... display lists !

It should mean that I implemented badly those array stuff.
For the VBO part, I'm quite sure that today drivers are not correctly
implemented - systematically crash on some ATI hardware, even if
extention is detected, poor perfs on nVidia. After all, it runs as
fast as plain vertex arrays.
For the VA part ... I guess all static geometry could be rendered
using glLockArray() ... ? I think this is called compiled vertex array
? Is this an improvement compared to plain vertex arrays ?
Will I have to go to VAR to achieve correct perfs ?

Thx for enlightments

SeskaPeel.

2.Changing vertex color after vertex buffer and index buffer definition

Hi,

Say you have this custom vertex structure:

struct CUSTOMVERTEX
{
	float x, y, z;
	DWORD color;
};

Is it possible once you've defined values for a vertex 
buffer using that structure to subsequently change the 
color for a vertex that you defined? If so, how?

Thanks :)

3.Multiple objects in a single vertex buffer.

The book I'm reading shows as illustration example, multiple objects
in a single v-buffer.  These more primitive though: sphere, box and a
cylinder.  Is it wise to have a v-buffer handle more than one object?

4.how scale a pVB vertex buffer object ?

I have a vertex buff obj, it's a meshed(tessulated) square in D3DX8,
 Vertex *v;

    g_pd3dDevice->CreateVertexBuffer( g_nTriCount*3*sizeof(Vertex),
                                      D3DUSAGE_WRITEONLY,
D3DFVF_CUSTOMVERTEX,
                                      D3DPOOL_MANAGED, &g_pWallVB );

    g_pWallVB->Lock( 0, 0, (BYTE**)&v, 0 );

    float dX = 1.0f/(g_nNumVertsX-1);
    float dZ = 2.0f/(g_nNumVertsZ-1);//dz=1.0f/
    int i = 0;

    for( int z = 0; z < (g_nNumVertsZ-1); ++z )
    {
        for( int x = 0; x < (g_nNumVertsX-1); ++x )
        {
            v[i].p = D3DXVECTOR3(10*x*dX, 0.0f, 10*z*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
            v[i].p = D3DXVECTOR3(10*x*dX, 0.0f, 10*(z+1)*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
            v[i].p = D3DXVECTOR3(10*(x+1)*dX, 0.0f, 10*(z+1)*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
            v[i].p = D3DXVECTOR3(10*x*dX, 0.0f, 10*z*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
            v[i].p = D3DXVECTOR3(10*(x+1)*dX, 0.0f, 10*(z+1)*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
            v[i].p = D3DXVECTOR3(10*(x+1)*dX, 0.0f, 10*z*dZ );
            v[i].n = D3DXVECTOR3(0.0f, 1.0f, 0.0f);
            ++i;
        }
    }

    g_pWallVB->Unlock();


How can I rescale its size.


5.Vertex buffer objects: how to improve speed further ?

6. GL_OUT_OF_MEMORY ( vertex buffer objects )

7. Missing Function Definitions for Vertex Buffer Objects (VBOs) on Linux

8. Vertex Buffer Objects



Return to graphics

 

Who is online

Users browsing this forum: No registered users and 92 guest