社区
图形处理/算法
帖子详情
关于OpenGL的一个问题
philFF
2003-03-14 09:28:20
在VC的编译环境下用OpenGL进行三维仿真时出现这样一个问题:
当使用单缓冲模式的时候,用户区窗口的右边和下边没有黑边,
但是,
当使用双缓冲模式的时候,用户区窗口的右边和下边却出现了黑边,
为什么?该怎么解决?
...全文
25
7
打赏
收藏
关于OpenGL的一个问题
在VC的编译环境下用OpenGL进行三维仿真时出现这样一个问题: 当使用单缓冲模式的时候,用户区窗口的右边和下边没有黑边, 但是, 当使用双缓冲模式的时候,用户区窗口的右边和下边却出现了黑边, 为什么?该怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alphapaopao
2003-03-30
打赏
举报
回复
1. Preface
前几天,有一个网友寻找OpenGL显示曲面的方法,email到我这里。我把我的 wave 程序发给他了。不料我的程序使他喜出望外。这是我想到如果我的程序放到网上的话,会有更多的人能够更容易的看到我的代码,并且公容易的学习如何使用OpenGL。
2. Contents
请大家访问 http://www.betajin.com/alphasun/index.htm。请看其中的 Wave OpenGL 页面,在里面便可下载 wave 的源代码。
以后我还会公布一些其它的程序源代码。希望能对大家有用。我的 MyProjects 有172个目录呢,并且有的workspace包含数个工程。
另外,如果大家觉得本贴对你有用,还烦劳各位 up 一下,使得更多的人能够看得到。
谢谢
corinna
2003-03-20
打赏
举报
回复
if(cx<=cy)
{
glOrtho(-scaling,scaling,-scaling*(GLfloat)cy/(GLfloat)cx,
scaling*(GLfloat)cy/(GLfloat)cx,-scaling,scaling);
}
else
{
glOrtho(-scaling,scaling,-scaling*(GLfloat)cy/(GLfloat)cx,
scaling*(GLfloat)cy/(GLfloat)cx,-scaling,scaling);
}
我觉得应该改为:
if(cx<=cy)
{
glOrtho(-scaling,scaling,-scaling*(GLfloat)cy/(GLfloat)cx,
scaling*(GLfloat)cy/(GLfloat)cx,-scaling,scaling);
}
else
{
glOrtho( -scaling*(GLfloat)cx/(GLfloat)cy,
scaling*(GLfloat)cx/(GLfloat)cy,-scaling,scaling, -scaling,scaling);
}
否则if和else里东西一样了
philFF
2003-03-17
打赏
举报
回复
我改回来了,还是不行啊
corinna
2003-03-16
打赏
举报
回复
glViewport(0,0,cy,cx);
这个我觉得应该是glViewport(0,0,cx,cy); 才对,不知道是不是这个原因,我的程序中都是
cx在前,cy在后的,cx是窗口width,cy是窗口height
希望你能找到原因:)
philFF
2003-03-15
打赏
举报
回复
我用蓝色清空的。
下面是我函数体的代码
void CMyGLTestView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
CMyGLTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
double size = pDoc->GetLength() + pDoc->GetMaxRadius()*0.8;
if(size != 0)
{
scaling = (float)size;
}
if(cy>0)
{
glViewport(0,0,cy,cx);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(cx<=cy)
{
glOrtho(-scaling,scaling,-scaling*(GLfloat)cy/(GLfloat)cx,
scaling*(GLfloat)cy/(GLfloat)cx,-scaling,scaling);
}
else
{
glOrtho(-scaling,scaling,-scaling*(GLfloat)cy/(GLfloat)cx,
scaling*(GLfloat)cy/(GLfloat)cx,-scaling,scaling);
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
// glDrawBuffer(GL_BACK);
}
肯请你的指教...
corinna
2003-03-14
打赏
举报
回复
你是不是用黑色清空颜色缓存的?
我估计你的glViewPort没有设为窗口大小
corinna
2003-03-14
打赏
举报
回复
看看glViewPort有没有设对
一些
OpenGL
问题
记录
一些
opengl
的杂项
问题
记录,方便查询和追溯
【
OpenGL
】运行
一个
简单demo,画
一个
矩形
本篇文章使用VS2017来运行
一个
OpenGL
的基本程序 如果对配置
OpenGL
有
问题
可以看其他博主的文章,这里不介绍了 第一步:建立
一个
VS的console程序 右击项目链接
OpenGL
库 配置属性->链接器->常规->附加库目录 在这里输入之前配置好的库的路径 运行代码,画
一个
矩形 // ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <GLTools.h> // Ope.
QT使用
openGL
绘制
一个
三角形
对于
opengl
的学习来说,绘制
一个
三角形是学习一种计算机语言时的
一个
hello world级的入门程序,个人觉得相比主流语言的helloworld,
openGL
的入门确实是有一些劝退,虽然说有不错的教程,但简明与全面不可兼得,很容易面对教程中一大堆概念和术语而摸不到头脑,本文试图用“相对”简单和直观的方式让人成功的绘制出第
一个
三角形。对于使用QT的同学,可以直接从文末的链接下载完整代码,自己修改其中的参数观察变化,这样理解起来更快。希望能让使用QT并且想学习
openGL
的人踏出第一步,而不是被画
一个
三角.
opengl
——绘制
一个
点
背景 这将是我们第一次遇到 GLEW,GLEW 是
OpenGL
的扩展功能库。它能帮助你解决
OpenGL
不断扩展的
问题
。一旦你初始化它之后,它在你的系统上将查询所有可用的扩展功能,自动的加载它们并且通过
一个
单一的头文件提供简单的接口。 在这一节中,我们将第一次看见顶点缓冲区对象(VBOs)的使用。顾名思义,它们是被用来储存顶点数据的。加载顶点进入 GPU 最有效率的方法是 VBOs。它们是可以存储在显存中的缓冲区,使得 GPU 访问数据的速度最快。 这一节和下一节的内容在这本教程中是唯一讲述固定管线而不是可编
C#中使用
OpenGL
:(五)1.1版本的
OpenGL
函数
上一篇文章介绍了如何在C#中表示
OpenGL
常量,这篇文章将介绍如何在C#中调用1.1版本
OpenGL
函数。 关于
OpenGL
版本的
问题
OpenGL
自从1992年7月份发布1.0版本以来,到2017年9月已经发展到了4.6版本。在
OpenGL
发展的历程中有两个版本需要特别注意,第
一个
是1.1版本,第二个是2.1版本。1.1版本的
OpenGL
是微软Windows系统所支持的最高版本的了,而
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章