游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3063|回复: 7

关于剪裁

[复制链接]

6

主题

41

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2004-8-11 16:37:00 | 显示全部楼层 |阅读模式
d3d会帮助我们进行顶点剪裁工作。包含那些剪裁工作?在什么时候?什么方式?
1 剪裁工作
      视锥体外的顶点剪裁?
      被挡住的顶点剪裁?
    不可见多变形的顶点剪裁?
2 什么时候
     一些移动物体的顶点有可能需要矩阵变换,剪裁是在变化之前还是变化之后?如果在那之后,(也就是说剪裁是在所有人为的计算都完成之后在进行的)还是只有通过人工控制才能减少这些不可见物体的顶点转换的工作。
3 什么方式
   剪裁方式是对每个顶点遍历决定是否渲染他?效率问题存在吗?如果我通过视锥体覆盖的区域人为剪裁(设定顶点排列的方式,不用判断每个顶点)有必要吗?还是有D3D自己控制就足够了。
综上所诉,如果我有一个45度的d3d游戏,最少需要我人为完成的剪裁工作有那些?

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2004-8-12 01:25:00 | 显示全部楼层

Re:关于剪裁

应该是渲染的时候进行定点可视范围的裁剪把,猜测,关注!

7

主题

33

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2004-8-12 09:45:00 | 显示全部楼层

Re:关于剪裁

我刚研究,是这样理解的:
1.D3D是不会帮我们自动完成裁减的,因为对于不同场景,裁剪算法都有不同,M$提供通用的算法,可能也没人会用。
2.裁剪应该指的是对落在Frustum之外的顶点裁剪吧。被挡住顶点和看不见(是不是指某个物体背后部分哟?)应该是深度缓冲解决的吧,这个到是M$自动完成的。
3.裁减应该是所有变换完成后进行的,否则怎么知道物体是不是落在Frustum之内呢?
4.关于方式?你指的每个顶点是什么意思啊?
5.我觉的不管是不是45度,对于3D应该完成的都包括:
移动物体--->移动摄像机--->构造Frustum--->判断顶点或物体是否在Frustum内--->处理顶点或物体
我目前的理解是这样 的。

6

主题

41

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2004-8-12 11:32:00 | 显示全部楼层

Re:关于剪裁

1 M$提供通用的算法,可能也没人会用。
M$是什么的称呼?他的通用算法是指什么?

移动物体--->移动摄像机--->构造Frustum--->判断顶点或物体是否在Frustum内--->处理顶点或物体

2 程序投入精力的是在最后两个地方是吗?

3 移动物体,移动了物体了吗?也就是说,无论如何,这些被移动的顶点都要做一次计算?这些开销有必要吗?
我想,通过限制物体大小,这样可以使他作为一个整体处理,判断它移动后的位置是否在一个区域以内(因为控制45度,并且地形变化很小,所以这个视锥体所笼罩的地面范围可以被度量,形成一个比这个地面范围更大一点的范围),然后作移动处理。地面范围之外的不处理。
4 如果这么做可行的话,“判断顶点或物体是否在Frustum内”这一过程需要判断的也就很少了。否则我想在一张1000*1000的地图上有1000
个模型,等做完了移动之后,再对每个顶点或物体判断是否在rustum这一过程是不是很浪费?
5 或者说,这前面的过程与“处理顶点或物体”比较根本就不是一个档次的,我们只需要控制最后阶段需要处理的是最少的最有必要的就行了,至于如何得到这些最后阶段的点或物体不是我们需要考虑的问题?
         或者说我上面说的都没有必要。听多了什么优化场景管理,做了一些程序,这些概念反而模糊起来了。


6

主题

41

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2004-8-12 11:37:00 | 显示全部楼层

Re:关于剪裁

      如何判断每个物体不在视锥体笼罩的地面范围之内,不是通过判断每个顶点的位置。因为地形的定点的排序是按照坐标排的,所以可以直接人为控制有哪些面落在了这个范围之内。

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2004-8-12 17:48:00 | 显示全部楼层

Re:关于剪裁

最最简单的做法:
把整个场景构建成树形结构,某子树不在视域内,则其下所有节点均不考虑,距离较远的,降低树的搜索深度,以少量顶点表示不用细化的多边形。

7

主题

33

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2004-8-12 19:22:00 | 显示全部楼层

Re:关于剪裁

M$是microsoft

场景中的物体当然不用每顶点的判断,一般是通过对物体的bounding box是否在场景中做判断的。

6

主题

41

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2004-8-12 19:31:00 | 显示全部楼层

Re:关于剪裁

关于树形结构。如何建立树形结构。最最简单的方法自然能够清晰的表达出来。地形点的树怎么构造。

关于物体。我使用物体的位置来代表物体,不用Bound盒。因为限定了物体大小和视线。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-16 13:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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