游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10158|回复: 13

求助:opengl如何画一个空心的多边形?

[复制链接]

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-2-3 00:29:00 | 显示全部楼层 |阅读模式
Opengl不支持空心的多边形绘制,有什么方法可以实现呢?比如画一个像“回”字的多边形,要用多边形绘制,透过空心可见后面的图形,已知条件为4个矩形的顶点坐标。期待高手......

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-2-3 01:00:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

glBegin(GL_QUAD_STRIP);
glVertex3f(外A坐标的X,Y,Z);
glVertex3f(内A坐标的X,Y,Z);
glVertex3f(外B坐标的X,Y,Z);
glVertex3f(内B坐标的X,Y,Z);
glVertex3f(外C坐标的X,Y,Z);
glVertex3f(内C坐标的X,Y,Z);
glVertex3f(外D坐标的X,Y,Z);
glVertex3f(内D坐标的X,Y,Z);
glVertex3f(外A坐标的X,Y,Z);
glVertex3f(内A坐标的X,Y,Z);
glEnd();
只能这样了

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2008-2-3 12:40:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

这样画对于规则的矩形或内外多边形顶点相同时容易实现,可是对于内外多边形顶点数不同,或者有多个内多边形的情况时,怎么办?
没有其他方法了吗?

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-2-3 13:51:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

那只能用分解法了。把你说的那个复杂的图形分解为1个1个的小三角形,
然后
glBegin(GL_TRIANGLES);
...很多顶点...
glEnd();

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-2-3 18:31:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

用GLU吧

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2008-2-3 18:36:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

OPENGL提供了GLU的多边形分格化来处理非凸多边形的绘制.

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2008-2-4 13:02:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

多谢大家的帮助,GLU的多边形分格化处理凹多边形可以实现,对于空心和自交的多边形不能处理,需要自己实现。算法我先自己找找,谢大家。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-2-5 00:15:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

你用的GLU版本不对!

低版本必须按某一种顺序画,高版本的可以随便画。

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2008-2-6 00:24:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

用的GLU版本不对?请教最新的是什么?

3

主题

121

帖子

121

积分

注册会员

Rank: 2

积分
121
QQ
发表于 2008-2-6 14:31:00 | 显示全部楼层

Re:求助:opengl如何画一个空心的多边形?

使用GLU那个版本都可做到.使用环绕规则十分简.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 01:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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