游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: CreateMaster

3D游戏中大型场景分割?

[复制链接]

65

主题

225

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
 楼主| 发表于 2004-4-5 20:09:00 | 显示全部楼层

Re:3D游戏中大型场景分割?

请问如何把元素插入到四叉树中?
如果元素在四叉的中心交点上,(即:一个元素占多个格子)
是把这个元素相同的放在多个子叉上,
还是把它放在父叉上,
如果把它放在子叉上,当摄像机占多个格子时,这个元素会被多次渲染,(每个格子都有这个元素);
如果把它放在父叉上,即使摄像机只占这个父叉上的一个格子(父叉上有四个格子),那么这个元素也得渲染,可其实这个元素根本没在那个格子上。

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2004-4-9 17:03:00 | 显示全部楼层

Re:3D游戏中大型场景分割?

有意思
没想过要做大型场景 ^^
关注

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2004-4-10 16:47:00 | 显示全部楼层

Re:3D游戏中大型场景分割?

"如果把它放在子叉上,当摄像机占多个格子时,这个元素会被多次渲染,(每个格子都有这个元素);"
物体打标记,这帧是否被渲染..

0

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2004-4-10 19:13:00 | 显示全部楼层

Re:3D游戏中大型场景分割?

场景(scene)和模型
================
首先,你要明确一个概念,你所生成的那个5M的x文件,是一个场景,而不应该是一个模型。事实上,游戏是以场景为基础的。比如说,你有一个城市,城市里有很多固定建筑。那么你的场景可以这样建立(只不过是简单例子,用于阐明概念):
   首先,假设你的地面就是一个平面,那么每个房子有坐标和朝向。
   其次,你有很多个模型,每个不同的房子,就是一个模型,假设有100种房子,那么你就有100中模型。(这些模型,每个可以是一个x文件或任何你可以load的文件)
   然后,你应该有一个列表来描述这些房子是如何放到你的场景中的。用这100个模型,你可以放无数的房子,比如你有两个体育场,那么,他们共享一个模型,但是他们有两个不同的坐标和朝向(实际上,就是不同的LocalToWorld的矩阵)。
    最后,在render的时候(现在不考虑任何高层的culling),你按照你的列表画这些mesh,但是在画之前,你需要分开指定Local2World的Transform矩阵。

场景的组织
================
目前为止,你可以画你的房子,但是fps会很慢,因为你所有的都画了。显然,你需要合理的方法,把看不见的房子,不要画。

一种方法,就是你用view frustrum,和每个房子去做包容判断,如果相交(或者保函)就画,但是如果你的房子很多,你把所有房子遍历一遍也很慢。

于是,就有人引入一些数据结构,如bsp tree, quad-tree, octree等。目的是减少遍历的时间。这就是一个visibility的优化问题。对游戏来说是一个很重要的问题。

65

主题

225

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
 楼主| 发表于 2004-4-13 19:37:00 | 显示全部楼层

Re:3D游戏中大型场景分割?

TO:老孩子,
“物体打标记,这帧是否被渲染..”
如果需要渲染的物体很多,当一帧渲染完毕时,如果释放所有的标记啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 03:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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