C++ 如何使用OpenGL创建位图的实体拉伸?

C++ 如何使用OpenGL创建位图的实体拉伸?,c++,visual-c++,opengl,vector,bitmap,C++,Visual C++,Opengl,Vector,Bitmap,我有一个位图图像(RGB,无alpha),如下图(字母“R”): 使用OpenGL和VC++创建位图拉伸的最佳方法是什么?参数是一个3f向量。实体拉伸或仅曲面拉伸都可以 有什么想法吗?就像人们经常说的那样:OpenGL“仅仅”是一个绘图API,将三角形栅格化到屏幕上。它不处理场景。它不涉及几何 位图的拉伸需要两个特定的任务,OpenGL都不能为您完成:对轮廓进行矢量化。挤出轮廓。最难的部分是矢量化,平面闭合路径的挤出很简单。就像经常说的那样:OpenGL“仅仅”是一个绘图API,将三角形栅格化

我有一个位图图像(RGB,无alpha),如下图(字母“R”):

使用OpenGL和VC++创建位图拉伸的最佳方法是什么?参数是一个3f向量。实体拉伸或仅曲面拉伸都可以


有什么想法吗?

就像人们经常说的那样:OpenGL“仅仅”是一个绘图API,将三角形栅格化到屏幕上。它不处理场景。它不涉及几何


位图的拉伸需要两个特定的任务,OpenGL都不能为您完成:对轮廓进行矢量化。挤出轮廓。最难的部分是矢量化,平面闭合路径的挤出很简单。

就像经常说的那样:OpenGL“仅仅”是一个绘图API,将三角形栅格化到屏幕上。它不处理场景。它不涉及几何


位图的拉伸需要两个特定的任务,OpenGL都不能为您完成:对轮廓进行矢量化。挤出轮廓。最难的部分是矢量化,平面闭合路径的挤出非常简单。

我有一个解决方案,但它利用纹理3D功能进行实体挤出,因此速度非常慢:

“按矢量长度复制位图数据(像素数据)以创建3D纹理”


但是,这只是垂直拉伸(垂直向量),坦白说,它很慢。

我有一个解决方案,但它利用纹理3D功能进行实体拉伸,因此速度非常慢:

“按矢量长度复制位图数据(像素数据)以创建3D纹理”


然而,这只是垂直拉伸(垂直向量),坦白地说,速度很慢。

OpenGL在这方面帮不了你。你必须在CPU上生成这个。OpenGL在这里帮不了你。你必须在CPU上生成这个。在3D纹理中转换2D纹理没有任何好处。坦率地说,你只是在浪费内存,因为你可以通过将第三个纹理坐标投影到0来获得同样的效果。3D纹理不会提供体积对象,这不是它们的工作方式。3D纹理允许您从体积中获取“切片”以应用于平面基本体。在3D纹理中转换2D纹理不会带来任何好处。坦率地说,你只是在浪费内存,因为你可以通过将第三个纹理坐标投影到0来获得同样的效果。3D纹理不会提供体积对象,这不是它们的工作方式。3D纹理允许您从体积中抓取“切片”以应用于平面基本体。