首页 > 其他分享 >关于使用OpenGL开启Blend绘制汇报错的一个问题

关于使用OpenGL开启Blend绘制汇报错的一个问题

时间:2024-12-13 19:44:22浏览次数:3  
标签:glVertex2f glTexCoord2f 1.0 OpenGL Blend ch 0.0 GL 绘制

源描述:https://blog.csdn.net/Strengthennn/article/details/143742022

我这里遇到的一个问题,OpenGL开启Blend后,出现了问题然后对其进行修改。绘制字体所遇到的情况,

 代码如下:

 1 glEnable(GL_BLEND);                                                        
 2 glEnable(GL_ALPHA_TEST);
 3 glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);                        //特殊的像素算法
 4 //glDisable(GL_TEXTURE_2D);
 5 
 6 //glEnable(GL_ALPHA);
 7 int w = pCharTex->m_Width;
 8 int h = pCharTex->m_Height;
 9 
10 int ch_x = sx + pCharTex->m_delta_x;
11 int ch_y = sy - h - pCharTex->m_delta_y;
12 
13 if (maxH < h) maxH = h;
14 glBegin(GL_QUADS);                                                     // 定义一个或一组原始的顶点
15 {
16     glTexCoord2f(0.0f, 1.0f); glVertex3f(ch_x, ch_y, z);
17     glTexCoord2f(1.0f, 1.0f); glVertex3f(ch_x + w, ch_y, z);
18     glTexCoord2f(1.0f, 0.0f); glVertex3f(ch_x + w, ch_y + h, z);
19     glTexCoord2f(0.0f, 0.0f); glVertex3f(ch_x, ch_y + h, z);
20     /*glColor3f(1, 1, 1);
21     glTexCoord2f(0.0f, 1.0f); glVertex2f(ch_x, ch_y);
22     glTexCoord2f(1.0f, 1.0f); glVertex2f(ch_x + w, ch_y);
23     glTexCoord2f(1.0f, 0.0f); glVertex2f(ch_x + w, ch_y + h);
24     glTexCoord2f(0.0f, 0.0f); glVertex2f(ch_x, ch_y + h);*/
25 }
26 glEnd();
27 glDisable(GL_BLEND);
28 glEnable(GL_DEPTH_TEST);

 

解决方法:当开启Blend之前,先禁用Depth_test,然后绘制完成后,在禁用blend,开启DepthTest

也就是上面第四行代码。要加上,即可。

修改之后正确如下:

 

标签:glVertex2f,glTexCoord2f,1.0,OpenGL,Blend,ch,0.0,GL,绘制
From: https://www.cnblogs.com/yang131/p/18605703

相关文章

  • 如何使用SOLIDWORKS绘制圣诞树讲座预约
     最新一期的线上讲座预约开始啦,本期内容将为大家演示使用SOLIDWORKS绘制圣诞树的操作流程,扫描页尾二维码即可预约,免费观看,欢迎参与。讲座方式:视频号直播报名方式:扫描页尾二维码预约讲座时间:12月20日14:00有奖活动圣诞节将至,为此SoldKits推出一期有奖互动小活动,12月13日......
  • 演示:基于WPF开发的仿PPT程序,演示基于DrawingVisual开发的2D图形绘制工具
    一、目的:基于WPF开发的仿PPT程序,演示基于DrawingVisual开发的2D图形绘制工具二、效果图三、环境VS2022,.net7.0,WPF四、功能图形绘制基础绘图矩形多线段多边形点和文本曲线标记箭头导入图片标尺椭圆平滑曲线圆形贝塞尔曲线进攻方向箭头圆弧Visu......
  • uni-app在image上绘制点位并回显
    在Uni-app中绘制多边形可以通过使用CanvasAPI来实现。Uni-app是一个使用Vue.js开发所有前端应用的框架,同时支持编译为H5、小程序等多个平台。由于Canvas是H5和小程序中都支持的API,所以通过Canvas绘制多边形是一个比较通用的方法。1.创建一个新的Uni-app项......
  • Blender干货:面朝向的应用场景
    应用场景:在建模完成之后,需要检查模型的每个面的面朝向是否是正确的。一、什么情况下会使用面朝向这个功能?边倒角出现异常,原因是边相邻的几个面的面朝向不在同一个方向上二、检查面朝向是否正确(正常情况下,模型面都是朝外的)三、Shift+N键反转面朝向......
  • Blender插件:Node Wrangler节点编辑插件
    hello,我是爱玩的小松鼠!本篇介绍一下Blender的节点编辑插件NodeWrangler,如下:Ctrl+T:添加纹理设置Ctrl+Shift+点击:节点效果查看Alt+右键滑动:快速连接两个节点Alt+Shift+右键滑动:快速指定连接Ctrl+Shift+右键滑动:添加混合着色器Alt+S:交换混合着色器的连接Ctrl+0:快......
  • pyechart库绘制地图
            绘制哪个省的地图,就将上述代码中,“河北地图”改成“**省地图”,后面的“河北”改成“**”,改成你所要绘制的省份即可,后面的题目,当然也可以替代成你所需要的。        当绘制省份地图时,无论是直接引用表格中的数据还是自定义引进城市名称(上图所示......
  • 一文掌握 OpenGL 几何着色器的使用
    学习本文需要具备OpenGLES编程基础,如果看起来比较费劲,可以先看入门文章OpenGLES3.0从入门到精通系统性学习教程。什么是几何着色器几何着色器(GeometryShader)OpenGL管线中的可选着色器阶段,位于顶点着色器(VertexShader)和光栅化阶段之间。其核心功能是基于输......
  • Python+OpenCV系列:绘制图形和文字
    绘制图形和文字1.基本绘图函数简介2.绘制示例代码2.1创建一个空白图像2.2绘制基本图形1.绘制直线2.绘制矩形3.绘制圆4.绘制椭圆2.3添加文字3.显示与保存图像4.扩展应用总结在图像处理领域,绘制基本图形和文字是一个常见需求,例如标记对象、绘制边界框或添......
  • 使用lumerical脚本语言创建绘制波导并进行数据分析(纯代码实现)(1)
            使用lumerical脚本语言创建绘制波导、配置二维模式求解器、计算模式轮廓、计算有效折射率(neff)和群折射率(ng)随波长的变化关系、计算有效折射率(neff)随波导宽度的变化关系及针对有效折射率法进行相关数据处理(代码均有注释详解)。一、绘制波导结构1.1代码实现......
  • 使用 MATLAB 绘制三维散点图:根据坐标和距离映射点的颜色和大小
    在数据可视化中,三维散点图是一种非常直观的方式来展示数据的分布。MATLAB提供了强大的scatter3函数,可以用来绘制三维散点图,而通过调整点的颜色和大小,可以进一步增强图形的表现力。在本篇博客中,我们将逐步讲解如何使用MATLAB读取Excel文件中的数据,并绘制四个子图。每个......