游戏开发论坛

 找回密码
 立即注册
搜索
楼主: jackylee888

opengl 中如何填充一个不规则的区域

[复制链接]

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-2-10 17:20:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

GL_TRIANGLES 只能绘出一个三角型啊,如果是波形怎么办?

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-2-10 17:26:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

高手出来啊~!~!

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2007-2-10 23:14:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

波形用GL_TRIANGE_STRIP 来整。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-2-11 16:22:00 | 显示全部楼层

Re: opengl 中如何填充一个不规则的区域

glBegin(GL_TRIANGLE_FAN);
glVertex3f(O点坐标);

glVertex3f(A点坐标);
glVertex3f(B点坐标);
glVertex3f(C点坐标);
glVertex3f(D点坐标);
glEnd();

图案如下,把 M分成 3个区域:
sf_2007211162214.jpg

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-2-11 16:31:00 | 显示全部楼层

或者也可以这样:

glBegin(GL_QUAD_STRIP);
glVertex3f(A点坐标);
glVertex3f(B点坐标);

glVertex3f(C点坐标);
glVertex3f(D点坐标);

glVertex3f(E点坐标);
glVertex3f(F点坐标);
glEnd();

图案如下,把 M分成 2个区域:
sf_200721116315.jpg

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2007-2-11 20:40:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

glPushMatrix;
//
glCullFace(GL_FRONT);
glStencilOp(GL_KEEP, GL_INCR, GL_KEEP);
//
glDrawElements(GL_QUADS, Count, GL_UNSIGNED_INT, ArrayList);
glEnable(GL_POLYGON_OFFSET_FILL);
glDrawElements(GL_TRIANGLES, Count, GL_UNSIGNED_INT, ArrayList);
glDisable(GL_POLYGON_OFFSET_FILL);
//
glPopMatrix;

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-2-12 11:14:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

GL_TRIANGE_STRIP试了,效果不行。

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-2-13 09:59:00 | 显示全部楼层

Re:opengl 中如何填充一个不规则的区域

急啊,snhun的方法很好,但是只能对一些可以分成三角形和矩形的图形,我画的是许多点组成的波形,分割不了啊。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-2-13 11:00:00 | 显示全部楼层

Re: Re:opengl 中如何填充一个不规则的区域

jackylee888: Repengl 中如何填充一个不规则的区域
急啊,snhun的方法很好,但是只能对一些可以分成三角形和矩形的图形,我画的是许多点组成的波形,分割不了啊。

你是不是想做个像微软的“画笔”那样的填充?

那就得用“像素读取”了。先读取一个像素,记住颜色为A。
然后把第一个像素改为你想要的颜色。
再读取相邻的一个像素,看看是否是颜色 A,如果是,就替换。
......
一直循环(其实这个循环也不是那么单纯的)
[em15]总地来说,很难。

4

主题

28

帖子

34

积分

注册会员

Rank: 2

积分
34
 楼主| 发表于 2007-2-14 09:11:00 | 显示全部楼层

Re: opengl 中如何填充一个不规则的区域

对,对,就是那样的填充!贴张样图上来哦,
黄色区域。
sf_200721491058.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 18:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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