用opengl画一个长方体,画出来的没有立体感,怎么设置视角

number757 2007-10-30 09:18:31
在vc.net平台上,在对话框窗口的一个Edit Control控件上用opengl画一个长方体,画出来的没有立体感,不知道怎么设置视角。
语句如下:
初始化工作:
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
m_pDC = pWnd->GetDC();
m_hDC = m_pDC->GetSafeHdc();

SetDCPixelFormat(); //调整该DC的象素格式
m_hRC=wglCreateContext(m_hDC); //用这种DC去创建一个RC
wglMakeCurrent(m_hDC,m_hRC); //指定当前DC、当前RC为hDC、hRC

glShadeModel(GL_SMOOTH); // Enable Smooth Shading
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClearDepth(1.0f); // Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

CRect rect;
GetClientRect(&rect); //得到绘图窗口区域的结构体
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0f,rect.Width()/rect.Height(),0.1f,100.0f);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(-0.0f,0.0f,-4.0f);
glColor3f(0.0,1.0,0.0); //绿色

RenderScene里:
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
pWnd->UpdateWindow();
auxWireBox(1,1,1);
SwapBuffers(m_hDC);
...全文
645 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhuwangzhp1980 2007-10-31
  • 打赏
  • 举报
回复
主要是视点位置是正对正方体,所以看起来没有立体感,可以用gluLookAt调整视角
void APIENTRY gluLookAt (
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz);
number757 2007-10-30
  • 打赏
  • 举报
回复
能否说的再详细些,gluLookAt的参数都代表什么意思,该怎么设,能画个图最好,谢谢了
raptormk16 2007-10-30
  • 打赏
  • 举报
回复
gluLookAt
raptormk16 2007-10-30
  • 打赏
  • 举报
回复
自己搜吧,我怎么记得住

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧