游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3167|回复: 8

如何实现opengl中图形的加减

[复制链接]

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-4-21 10:54:00 | 显示全部楼层 |阅读模式
在使用opengl进行三维图形的绘制过程中,如何实现图形的加减。即给一个长方体挖一个柱形的孔等。希望各位大虾给予帮助,谢谢!

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-4-21 13:06:00 | 显示全部楼层

Re: 如何实现opengl中图形的加减

怎么没见大家的回复呀!请大家多多帮忙!谢谢了!

8

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2006-4-24 10:13:00 | 显示全部楼层

Re:如何实现opengl中图形的加减

opengl只提供基本图形的绘制,复杂图形要自己编写代码或者利用材质来达到同样的效果。
glBegin, glEnd
The glBegin and glEnd functions delimit the vertices of a primitive or a group of like primitives.

void glBegin(
  GLenum mode   
);

void glEnd(
  void   
);

Parameters
mode
The primitive or primitives that will be created from vertices presented between glBegin and the subsequent glEnd. The following are accepted symbolic constants and their meanings:
GL_POINTS
Treats each vertex as a single point. Vertex n defines point n. N points are drawn.
GL_LINES
Treats each pair of vertices as an independent line segment. Vertices 2n ? 1 and 2n define line n. N/2 lines are drawn.
GL_LINE_STRIP
Draws a connected group of line segments from the first vertex to the last. Vertices n and n+1 define line n. N ? 1 lines are drawn.
GL_LINE_LOOP
Draws a connected group of line segments from the first vertex to the last, then back to the first. Vertices n and n+1 define line n. The last line, however, is defined by vertices N and 1. N lines are drawn.
GL_TRIANGLES
Treats each triplet of vertices as an independent triangle. Vertices 3n ? 2, 3n ?1, and 3n define triangle n. N/3 triangles are drawn.
GL_TRIANGLE_STRIP
Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. For odd n, vertices n, n + 1, and n + 2 define triangle n. For even n, vertices n + 1, n, and n + 2 define triangle n. N ? 2 triangles are drawn.
GL_TRIANGLE_FAN
Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. Vertices 1, n + 1, and n + 2 define triangle n. N ? 2 triangles are drawn.
GL_QUADS
Treats each group of four vertices as an independent quadrilateral. Vertices 4n ? 3, 4n ? 2, 4n ? 1, and 4n define quadrilateral n. N/4 quadrilaterals are drawn.
GL_QUAD_STRIP
Draws a connected group of quadrilaterals. One quadrilateral is defined for each pair of vertices presented after the first pair. Vertices 2n ? 1, 2n, 2n + 2, and 2n + 1 define quadrilateral n. N quadrilaterals are drawn. Note that the order in which vertices are used to construct a quadrilateral from strip data is different from that used with independent data.
GL_POLYGON
Draws a single, convex polygon. Vertices 1 through N define this polygon.


MSDN内容

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-4-24 11:39:00 | 显示全部楼层

Re: 如何实现opengl中图形的加减

这样也是一种思路,谢谢!可我想不知有没有更方便的方法!因为如果这样有些麻烦。不知有没有想3Dmax那种更方便的功能

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-4-26 10:20:00 | 显示全部楼层

Re:如何实现opengl中图形的加减

情大家帮帮我!谢谢

13

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
发表于 2006-5-1 21:45:00 | 显示全部楼层

Re:如何实现opengl中图形的加减

平面的话关掉深度测试直接用 同样的属性重叠画物体不就行了, 3d的话也重叠让opengl自动执行裁减,消除 隐藏面,或干脆显示用3dsmax做好的模型不就完了
如要执行减, 用背景色画物体在重叠在另一物体上也可以达到同样的效果

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-9 15:20:00 | 显示全部楼层

Re: 如何实现opengl中图形的加减

谢谢你!用背景色画一物体,的确可以达到同样的效果。我怎么就没想到呢?  [em1]另外你给我说用3Dmax来建模直接导入,可我不清楚这样怎么做,能不能再指点我一下!我是初学者,还有很多地方需要向你们学习呢!谢谢了。

0

主题

18

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2006-5-10 00:54:00 | 显示全部楼层

Re:如何实现opengl中图形的加减

不知道你指的加减是不是类似3DSMAX里的Boolean操作,如果是的话那很可惜,OpenGL帮不了你
如果只是画面上的扣掉一块颜色,那楼上的方法都可以

15

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-11 14:30:00 | 显示全部楼层

Re:如何实现opengl中图形的加减

非常感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 11:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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