java 怎么用opengl,使用OpenGL数据在运行时创建纹理

我目前在数据库中有一些热图数据 . 我成功地使用相同的数据[使用一些顶点着色]在平面上创建绘制热图 . 例:

OpenGL的热图图像示例

1fd7e117-90e0-4804-8fbb-0fe595774b61.png

名称:Capture.jpg浏览次数:0大小:8.5 KB ID:2667

现在,问题是我目前正在使用以下内容:

glBegin(GL_QUADS);

glColor4ub(point1.color.red(), point1.color.green(), point1.color.blue(), transparency);

glVertex3d(point1.xCood - 750, point1.yCood - 750, 0);

glColor4ub(point2.color.red(), point2.color.green(), point2.color.blue(), transparency);

glVertex3d(point2.xCood - 750, point2.yCood - 750, 0);

glColor4ub(point3.color.red(), point3.color.green(), point3.color.blue(), transparency);

glVertex3d(point3.xCood - 750, point3.yCood - 750, 0);

glColor4ub(point4.color.red(), point4.color.green(), point4.color.blue(), transparency);

glVertex3d(point4.xCood - 750, point4.yCood - 750, 0);

glEnd();

而这[至少在我的理论中]的作用是它在现有平面上创造了另一层 . 这会导致单击下面的平面上的代码变得无用 . 现在无法更改现有代码,因为我无权编辑它 . 我发现如果我在旧平面上绘制纹理(而不是为平面着色),代码仍然有效 . 示例(纹理图块只定义了所需的重复次数,在这种情况下值为1):

glBegin(GL_QUADS);

glTexCoord2d(0.0, textureTile);

glVertex3d(gridRect.left(), gridRect.top(), 0.0);

glTexCoord2d(0.0, 0.0);

glVertex3d(gridRect.left(), gridRect.bottom(), 0.0);

glTexCoord2d(textureTile, 0.0);

glVertex3d(gridRect.right(), gridRect.bottom(), 0.0);

glTexCoord2d(textureTile, textureTile);

glVertex3d(gridRect.right(), gridRect.top(), 0.0);

glEnd();

也就是说,我只是成功地从我制作的图像加载纹理 . 由于图像是在运行时计算和绘制的,我尝试从数据中创建图像以作为纹理加载 . 我使用Qt API功能来实现相同的功能 . 我无法重新创建相同的图像 . 我可能会建议一种从拥有的数据创建纹理图像的方法 .

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值