游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3374|回复: 3

请教各位达人:怎样在OpenGl中屏蔽透视效果

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-1-7 12:33:00 | 显示全部楼层 |阅读模式
Enable glcDepthTest

开启深度测试以后 后绘制的图形的确不会覆盖先绘制的图形

但是 问题在于

这样实现的立体图形效果是透视的

(比如两个立方体 一前一后 我从正面看过去 会看到后面那个立方体的正面 而看不到前面立方体的正面)

如果我想实现 前面的立方体 遮住后面的立方体 该如何实现
(再进一步, 旋转以后 将后面的立方体1移到前面 前面的立方体2移到后面 仍然使立方体2遮住立方体1 如何实现 关闭深度测试是实现不了这种效果的)

即使在OpenGl中 立体图形不是透视效果

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2009-1-10 23:31:00 | 显示全部楼层

Re:请教各位达人:怎样在OpenGl中屏蔽透视效果

设置深度测试为只读

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2009-1-20 09:57:00 | 显示全部楼层

...怎么可能...

但是 问题在于

这样实现的立体图形效果是透视的

(比如两个立方体 一前一后 我从正面看过去 会看到后面那个立方体的正面 而看不到前面立方体的正面)


很明显是深度检测根本就没开起来嘛.

glEnable(GL_DEPTH_TEST)

4

主题

27

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2009-1-20 23:46:00 | 显示全部楼层

Re:请教各位达人:怎样在OpenGl中屏蔽透视效果

首先,LZ所说的现象与“透视”无关,这只是遮挡关系的问题。
其次,正如3楼snhun所说,LZ的深度测试并没有成功打开,需要设置glEnable(GL_DEPTH_TEST)才能够实现正确的遮挡关系。
最后,如2楼oz01所述,在绘制完立方体2后设置深度测试为只读,即设置glDepthMask(false),从而禁止写Z Buffer,再来绘制立方体1,这个时候就能实现LZ所想达到的旋转后的效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 11:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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