![](https://img-blog.csdnimg.cn/20210401113959229.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenGL
以实战为线索,逐步深入开发各个环节.
Ilson_
花儿为什么这样红!!!
展开
-
MFC之OpenGL 纹理贴图后再绘制线条两个颜色相互影响
OpenGL渲染方式比GDI+强太多了,所以做绘图操作时我选择了OpenGL(新手),但是我在纹理贴图时出现了这样一个问题,就是我在贴完图后再继续在绘制线条什么的最后::SwapBuffers(hDC_); glFlush(); 也就是输出到显示器时纹理贴图的颜色竟然被线条的颜色影响了,如:而如果我只是贴图而不绘制线条就是没有用到glColor3f()重新设置颜色的时候...原创 2018-03-23 10:31:11 · 2147 阅读 · 24 评论 -
MFC之OpenGL 屏幕坐标转OpenGL坐标
最近在写一个例子用到了OpenGL,OpenGL的中心点(0, 0)点刚好是我们屏幕的中心点。因为我是需要动态的作图(画点、线、圆、弧...)需要平移 缩放图形,所以我在坐标转换这个问题上卡住了。 鼠标点击屏幕上的一点可以很方便的获得通过OnLButtonDown(),但是把取到的屏幕点转到OpenGL对应点却需要做相应的计算。用到的核心函数是gluUnProject(),如下:...原创 2018-03-23 17:19:44 · 1619 阅读 · 0 评论 -
MFC之OpenGL 三点动态画圆弧
之前用到GDI+绘制过圆弧,因为CDC类封装有绘制圆弧的函数所以很方便,只需要计算它所需的参数就行;但是用GDI+绘图效率不高,所以现在又改成了用OpenGL实现,但是OpenGL没封装有画圆弧函数,所以只能自己动手写。1. 三点可以求出圆心O, 半径R2. 根据这三个点还可以求出绘制圆弧的起始角度startAngle、扫面角度sweepAngle(跨角),如://圆弧扫描角...原创 2018-04-23 16:59:34 · 2342 阅读 · 2 评论 -
MFC之OpenGL 怎么计算投影区域在窗口中的大小
我用的是正交投影gluOrtho2D以纹理贴图的方式显示一张BMP位图,当我滚动鼠标滚轮时位图会缩小放大;我要求的是纹理贴图在窗口中的大小,如红色框大小: 这是我显示图片的代码://贴图的矩形大小与图片比例一致#define MAPWIDTH20.0#define MAPHIGHTGLfloat(20.0 / (1920.0 / 10...原创 2018-04-24 11:24:34 · 721 阅读 · 1 评论 -
MFC之CSplitter+OpenGL 导致界面不刷新
在我第一个项目的时候之前没用到CSplitter分割窗体所以没有出现这个问题,但是随着需求的更改所以重新对第一版进行了修改,在引进了CSplitter控件分割窗体后对于OpenGL纹理显示这部分就出现了刷新纹理后又被CSplitter刷掉了导致纹理显示后又被覆盖了,先来看看效果: CSplitter分割成左右两个窗口,程序起来的时候去加载一张图片然后使用纹理的...原创 2019-03-30 16:30:22 · 560 阅读 · 0 评论 -
MFC之OpenGL 在自定义窗口使用纹理的方式渲染YUV422(UYVY)视频流数据
由于之前一直都是使用老版本的OpenGL(1.0版本的),所以只能是渲染RGB的纹理图像,这样对于视频流来说太耗CPU了,因为首先你要把YUV转成RGB,然后才能把RGB以纹理的形式渲染这样子效率很低;为了提高程序运行效率所以打算修改为直接渲染YUV的(相机传过来的)数据,这样子直接省略了YUV转RGB这一步,大大提高了程序运行效率 由于相机传过来的是UYVY格式...原创 2019-06-26 18:38:08 · 1519 阅读 · 3 评论