如题,求教达人,DirectX 3D里画任何东西都一定要用到vertexbuffer吗?看教程里说只要用了vertexbuffer,改变顶点状态就需要unlock,然后再lock,并且不推荐频繁改动vertexbuffer。但是这样如何每一帧都对各个顶点的位置作单独变动?

解决方案 »

  1.   

    要写入或读取顶点数据都是要用到vertexbuffer的
      

  2.   

    没有vertex,纹理往哪贴?帧和顶点是不同类型的东东,帧通常代表视角的改变,顶点还是那个顶点,顶点有变化也不依赖视角,为什么要在不同帧里改变顶点?
      

  3.   

    但是如果这样的话如何快速获得某个点在World Space中的坐标?
      

  4.   

    额,应该是经过矩阵变化后的坐标。因为看教程里变化都是直接对要画的整个object做World Space的反变换,这样我不知道该如何得到object中某个点经过变化后在World Space中的坐标了
      

  5.   

    找到答案了,有不使用vertexbuffer的draw的方法,就是有面加UP的就是,但是还是不知道怎么比较有效地做点级别的变换,比如点到原点的距离为d,则点随时间t做方向为原点到点的向量,大小为sin(t+d)的平移