使用XNA绘制曲线

使用XNA绘制曲线,xna,bezier,curves,Xna,Bezier,Curves,我正在编写一个粉丝复制的游戏,我一直在进步,但我被这个问题困住了。 现在,我正在曲线路径上逐像素绘制纹理,但这会将长度较长的曲线上每秒的帧数从4000减少到50。 无论如何,我需要逐像素存储矢量2+长度数据,这样我就可以沿着它产生静态速度运动,循环通过它来绘制曲线 我需要能够绘制的曲线有贝塞尔曲线、圆形曲线和卡特莫尔曲线 有没有办法提高效率 有没有办法提高效率 假设纹理需要是动态的,使用着色器在GPU侧绘制纹理。在CPU端绘制它不仅速度慢,而且在需要每帧将其发送回GPU时会使CPU和GPU都陷

我正在编写一个粉丝复制的游戏,我一直在进步,但我被这个问题困住了。 现在,我正在曲线路径上逐像素绘制纹理,但这会将长度较长的曲线上每秒的帧数从4000减少到50。 无论如何,我需要逐像素存储矢量2+长度数据,这样我就可以沿着它产生静态速度运动,循环通过它来绘制曲线

我需要能够绘制的曲线有贝塞尔曲线、圆形曲线和卡特莫尔曲线

有没有办法提高效率

有没有办法提高效率

假设纹理需要是动态的,使用着色器在GPU侧绘制纹理。在CPU端绘制它不仅速度慢,而且在需要每帧将其发送回GPU时会使CPU和GPU都陷入停滞。最好把它画在GPU的一边

我需要存储逐像素矢量2+长度数据


着色器可以将其他信息存储到纹理中。e、 g.即使您可以分配RGBA纹理,但这并不意味着它需要存储颜色信息,因为着色器将解释数据。

也许我误解了这个问题,但我曾经这样做过:

创建曲线并在其上采样x点。(红点) 通过计算每个点的交叉向量,从中创建网格。(绿线) 在所有这些之间建立一个四边形。基本上我的照片里有5个

将U坐标设置为在垂直平面上,V坐标遵循曲线长度。因此,开始时为0,结束时为1。 当然,如果希望纹理重复,可以缩放V。