游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2033|回复: 4

请教个OpenGL压入和弹出栈的问题

[复制链接]

19

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-3-26 07:36:00 | 显示全部楼层 |阅读模式
我用glPushMatrix()压入了两种变换距阵,第一次压入了A的变换距阵,第二次压入了B的变换距阵,如果我用glPopMatrix弹出的话(只输入了一次),我是弹出B呢还是A和B全部弹出?

我弹出了一次(只输入了一次),那么我再压入的话,是不是只有最后一次的变换距阵被压入了呢?

如果我要用最初的变换距阵,是否需要弹出glPopMatrix3次?

栈空间是否会因为压入过多的变换距阵而溢出?

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-3-27 13:48:00 | 显示全部楼层

Re:请教个OpenGL压入和弹出栈的问题

很奇怪,看到这个贴子发了这么久了,怎么没一个人回答,大家都对简单的问题不感兴趣了吗?

其实跟我们平常说的堆栈是一样的.

1.<<<我用glPushMatrix()压入了两种变换距阵,第一次压入了A的变换距阵,第二次压入了B的变换距阵,如果我用glPopMatrix弹出的话(只输入了一次),我是弹出B呢还是A和B全部弹出?>>>

是的,先弹B再弹A.

2.<<<如果我要用最初的变换距阵,是否需要弹出glPopMatrix3次?>>>

是的,push3次后就要pop3次.

3.<<<我弹出了一次(只输入了一次),那么我再压入的话,是不是只有最后一次的变换距阵被压入了呢?>>>

是的

4.<<<栈空间是否会因为压入过多的变换距阵而溢出?>>>

是的,会滥出的,如果出现滥出错误,可以用glGetError获得错误码GL_STACK_OVERFLOW.

19

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-3-27 14:11:00 | 显示全部楼层

Re:请教个OpenGL压入和弹出栈的问题

还有一点不太明白^^
第一个压入的是单位距阵A,我将其和距阵B相乘得到新的距阵C,然后我再压入,我觉得是将C压入,我说的对吗?(A在最下面C在最上面)

一个新的距阵D,这时我如果弹出的话就是将C和D相乘(在C的坐标和变换基础上实现D),如果我弹出两次就是在单位距阵A的基础上实现D的坐标和变换.
我是这样理解的是错了还是对了啊

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-3-27 14:54:00 | 显示全部楼层

Re:请教个OpenGL压入和弹出栈的问题

glPopMatrix只弹出栈顶的值来代替当前的值,而不是用栈顶的值乘当前的值.

19

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-3-27 15:12:00 | 显示全部楼层

Re:请教个OpenGL压入和弹出栈的问题

谢谢哦现在我全明白了^^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 01:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表