3D物体裁剪的方法???

lyzcom 2003-10-02 10:40:00
如果我只需要显示一个立方体的一半边,另一半边不显示,如何实现这种矩形裁剪?
立方体上有纹理,裁剪时要连纹理一块裁,并且裁掉的部分所挡住的后面的内容也要能透出来。

用什么办法才能这样裁?
...全文
671 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttmmdd 2003-10-06
  • 打赏
  • 举报
回复
看看NVIDIA SDK中CLIPPING下的几个例子吧!
TEXKILL 应该就是你想要的.
zzwu 2003-10-06
  • 打赏
  • 举报
回复
上面说的"2个矢量", 其中一个是平面的法向量,另一个是被考察点与法向量垂足连成的向量.
zzwu 2003-10-06
  • 打赏
  • 举报
回复

3d裁剪要利用空间的一个平面来实现.方法如下:

1.判别此平面是否与立方体相交,如不交,则立方体要么完全可见,要么完全不可见,不会"看到一半";
判别平面是否与立方体相交,只需考察立方体8个顶点是否分在平面2侧,如在2侧,为相交,如全在同一侧,则不相交;

-- 求点在平面那一侧,只需计算2个矢量的点积值的正负就行了.

2.如果相交,再求出顶点居于平面2侧的立方体原有可见面[注]与平面的交线.

3.利用这样交线,与立方体位于平面可见侧的边或截线组成的面,就是所有需要的面.

[注]立方体的"原有可见面",是指法向朝向你的那些面,不考虑切割平面的阻挡关系.

zzwu 2003-10-06
  • 打赏
  • 举报
回复

3d裁剪要利用一个空间的一个平面来实现.方法如下:

1.判别此平面是否与立方体相交,如不交,则立方体要么完全可见,要么要么完全不可见;
判别平面是否与立方体相交的方法,是考察立方体的8个顶点是否分在平面2侧,如在2侧,为相交,为同侧,则不交;

-- 求点在平面那一侧,只需计算2个矢量的点积值的正负就行了.

2.如果相交,再求出顶点居于平面2侧的立方体各原有可见面[注]与平面的交线.

3.利用这样交线,与平面可见侧立方体的其他边或交线组成的面就是所有需要的面.

[注]立方体的"原有可见面",是指法向朝向你的那些面,不考虑切割平面的阻挡关系.
linyizsh 2003-10-05
  • 打赏
  • 举报
回复
按楼主是说法,如果是要任意剪的话,似乎不是容易的事。(可能我的理解有误)
如果是事先知道要剪掉的部分,可以考虑一下用透明纹理。
不过在一般的游戏里面很少有这样剪的,如果真能作出这种效果的话,估计都可以申请专利了。^_^
lyzcom 2003-10-04
  • 打赏
  • 举报
回复
按照1楼或2楼的说法,只能按照整3角形裁剪。而现在我是已经创建好了一个立方体了,而我只需要显示其任何大小的一部分。就像用矩形任意的对2D图面进行剪剪一样,任意的,没有任何限制。
lyzcom 2003-10-04
  • 打赏
  • 举报
回复
不是不画某些三角形的问题。
比如一个普通的正方体,每个面都用两个三角形组成。而现在,我只想显示2/3个立方体。
你说怎么裁剪呢?
bopengbopeng 2003-10-03
  • 打赏
  • 举报
回复
不好意思, 不知道你想說啥.

如果只是想不畫某些三角形,不送入vertexbuffer不就ok了?
sakurar 2003-10-02
  • 打赏
  • 举报
回复
可以用octree,或者别的办法捡选出要画的三角形。
不过如果立方体多边形数量如果不是很多,不值得这样优化。

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧