Title: OGRE(O-O Graphics Rendering Engine)
1??????????
2??
- ??????(???) 10
- ????proposal (??) 10
- ???????proposal???(??)10
- ??OGRE?????? 10
- ????
- ????
- ????(????)
- ???? 40
- ???? 20
3??Quake3???
4????????????
- ?????????????????
- ??????????
- ?????????
- ????????,???????????
- ????????,??????
- ???????????????
- ????????????
- ????????????????????,????????????OGRE?????????
5????????????
- ??????????
- ?????????
- ???????????????
- ??????????
- ??????
6?????(Scenegraph)??????
- ???
- ?????????????????
- ????????,?????????
- ???
- ?????????
???????
7???????????
??????A ? ???? ? ???? ? ???? ? ????? ??????B ? ???? ? ???? ? ???? ? ????? ??????C ? ???? ? ???? ? ???? ? ????? ??????D ? ????? ? ??? ? ???? ? ??????
????????
8???????
9????????????
- ???????????????,???????
- ??????????,????????????????
- ????
10????????
11?????????
?????????
12 OBB???????
13???????
- ?????
- ???(incremental)
- ???(gift-wrapping)
- ???(divide-and-conquer)
- ??????(quick-hull)
- k-dop(discreted orientation polytope,???????)
- ????????????????,??????????
148-dop??
15?????????
- ????????????????????
- ??
- ????,?????????????
- ??
- ???????!
16???
17?????????
(?)???BSP???(?)BSP??????
18BSP??????
(?)???????????(?)??????BSP?
(?)???????????(?)??????BSP?
19BSP??????????????
20???
(a)????? (b)????? (c)?????
21???
(a) (b)
(c)
(a)???? (b)????? (c)?????
22??????????????
(?)???????(?)??????
23??????????????
? ? ? ? ? ? ? ? ????? ? ? ?
??? ?????????????? ?? ?????????
??? ?????????? ?? ???????
??? ????????????? ?? ????????
????? ???????????????? ?? ????????
24??????????????
??????? ??????
? ? ? ? ?????? ??????
? ? ? ? ???? ????
? ? ? ? ??????? ???????
? ? ? ? ?????? ??????
? ? ? ? ????????????? ???????????
? ? ? ? ????OBB-??AABB??k-DOPS ???????????????????kD?
25????(LOD)??
- ?????LOD
- ?????LOD
- ??LOD
- ??LOD
26LOD
27???????
??????????
28?????????
29LOD Models
30???????????????
- ????????????
- LOD?????????????????
- ??????????????
- ???LOD???,Huppe???1995???
- ??????(Progressive Mesh)
- ??????????????????
- ???????????????
31?? SpeedTree?LOD??
32?? SpeedTree?LOD??
33??SpeedTree?LOD??
34Demo
35????????
36?????????
37???????
38???????
- ??????????????
- ????????????
(?)??????(?)??????????
39?????
(?)?A ?????????,?B???????,??????????????????,?C??
??????????????????(?)????????????????????????,????
????
40?????(???????)
- ???(Visibility)????????????????
- ?????????????????????????
- ??????????????????,??????
- ??,????????????????????????????????????
- ?????????????????????
- ????????????????????,???????????????
- ??,??????????????????????????
41???????
- Cell-to-Cell ???
- ?????cell????????????????
- ?????????????????????,???????????????????????????
- Cell-to-Region ???
- ???????,?????????????
- Cell-To-Object ????????,???????????
- Eye-To-Region ???
- ?????????????????????
- ??,Eye-to-Cell ?? Eye-To-Object
42????(Portal)????????
- ?????????????,???????????????????
43???????????
- ????
- ?????????
- ?????????
- ??
- ??????
- ????
- ??
- ???????,???????
- ???????
44Cell-Portal ??
- ???????????????????
- ???????????????,????
- Portals?????????????????
- Portal ????????
- ???????????Portals
- ??????????
- Kd-trees ??BSP?????cell??????????? portals
- ????????
- ??????????
45Cell Portal ??
- Portals ????????(???)
- Graph????????
- ???????????(?portals)
A
B
A
B
C
D
C
D
E
F
E
F
46Cell-Portal ???
- ??????????
- ????graph?????????
- ?????,??????????????potentially visible set (PVS)
- Cell-to-region ???,?? cell-to-object ???
- ?????????????????????
- ???????????
- Eye-to-region ?? Eye-to-cell ???
- ????????? vs. ?????????????
- ???????,??????????????
47PVS?????
- PVS ?????????,?????????/??/??/???
- ???,?????????????
- ?????????
- ????????
- ?????????????????
- ??
- ????? ??????,????PVS?????
- ??????????????,???????
48Cell-to-Cell PVS
- Cell A ? B? PVS?,?????????,?B????A,?????????????
- ?????????PVS??
I ?PVS ?? B, C, E, F, H, J
49Stab ?
- ????????
- ?????PVS
- ????????portal??
- ???????????
- ???????????cells/portals ??
A
A
B
A/C
C
C/D2
C/E
C/D1
C
D
D
E
D
D/F
F
E
F
50Cell-to-Cell???
- ??????cell-to-cell????????
- ?????? ????99.6????????????,??????90???,
??????????98 - ??,??cell-to-cell??????????
- ????????????
- ????????
51Cell-to-Cell???
- ?????
- ???????????????????,?????????????
- ????????????-??????????????????????
- ????????????,???????????????
- ?????????????
52Cell-To-Region ???
- ??????????????????????
- ??,???????????
- ???????????(????,?????)
??????portal????
53???????
- PVS ??????????
- ?????,?????PVS??
- ??????????????
- ????PVS??
- ?????????
- ????????????????,?????? Eye-to-Region????
54Eye-to-Region (1)
View
55Eye-to-Region (2)
56??Cell ??Portals????
- ?????????cell?portal??
- ????????????????????????
- ????-??????????,??????????Cell
- ?????
- ????????,??occluders????????????
57Occluders
- ? occluder??????
- ??,??????????
- ???????????????
- ??????Supporting planes
- ???????????????
- Occluder?????????
- ??????????
supporting planes
eye
occluder
58Occluders(?)
- Occluders ??????????
- ??????
- ??????????
- ????????????,??????
- ???????????????????occluders
- ??,?????billboards??
- occluding ?????????,??,??occluder ???????????
- ???????????occluder????,??????????,
????????????????
59Occluders(?)
- ???occluders????????????????
- Hierarchical Z-Buffer ?????(??)???????
- ??????????????
- ????Hierarchical Occlusion Maps(?????)
?????????????,?????????? - Schaufler Occluder Fusion ????????????????
60???????
?????????,????7,000????,???50fps??????????,??????
????17,300, ?????20 fps
61??????????
(??)????????? (??)???(??)???????????
(??)???????
62????????
63????
- ??????????
- ????????
- ????
- ????
- ????
- ????
- ?????????????????
- ?????????????
64?????????
- ?????????????????????
- ????????????????
- ????
- ??????????????1???
- ?????????????????
65???????
- ????????
- ??
- ????????????
- ?????
- ???????????
66????????
- ????,??????
- ?????
- ????
- ???????????????!
67???????????????
68OGRE????
69OGRE??????
- ?OGRE????????????
- ST_GENERIC ????
- ST_EXTERIOR_CLOSE ??????
- ST_EXTERIOR_FAR ??????
- ST_INTERIOR ????
70????
- ????????????
- BspApplication()
-
- // Load Quake3 locations from a file
- ConfigFile cf
- cf.load("quake3settings.cfg")
- mQuakePk3 cf.getSetting("Pak0Location")
- mQuakeLevel cf.getSetting("Map")
71??????????
- void chooseSceneManager(void)
-
- mSceneMgr mRoot- gtgetSceneManager(ST
_INTERIOR) -
72???????
- void createScene(void)
-
- // Load world geometry
- mSceneMgr-gtsetWorldGeometry(mQuakeLevel)
- // modify camera for close work
- mCamera-gtsetNearClipDistance(4)
- mCamera-gtsetFarClipDistance(4000)
- // Also change position, and set
Quake-type orientation - // Get random player start point
- ViewPoint vp mSceneMgr-gtgetSuggestedView
point(true) - mCamera-gtsetPosition(vp.position)
- mCamera-gtpitch(90) // Quake uses X/Y
horizon, Z up - mCamera-gtrotate(vp.orientation)
- // Don't yaw along variable axis, causes
leaning - mCamera-gtsetFixedYawAxis(true,
Vector3UNIT_Z) -
73(No Transcript)
74(No Transcript)
75????
- OGRE???????Plugin_OctreeSceneManager.dll??????????
??????ST_EXTERIOR_CLOSE??????????
76????
77??????
- ?????????????,????
- virtual void chooseSceneManager(void)
-
- // Get the SceneManager, in this case a
generic one - mSceneMgr mRoot-gtgetSceneManager(
ST_EXTERIOR_CLOSE )
78??????
- ???????????,?????????????????
- void createScene(void)
-
- // Set ambient light
- mSceneMgr-gtsetAmbientLight(ColourValue(0.5,
0.5, 0.5)) - // Create a light
- Light l mSceneMgr-gtcreateLight("MainLig
ht") - // Accept default settings point light,
white diffuse, just set position - // NB I could attach the light to a
SceneNode if I wanted it to move automatically
with - // other objects, but I don't
- l-gtsetPosition(20,80,50)
- mSceneMgr -gt setWorldGeometry(
"terrain.cfg" ) - mSceneMgr-gtsetFog( FOG_EXP2,
ColourValueWhite, .008, 0, 250 ) -
- mRoot -gt showDebugOverlay( true )
79(No Transcript)
80(No Transcript)
81WhiteBlack
82????
- ??????
- ????????????????????????
- ????
- ???????????????????????
- ??
- ?????????????????????,???????????????????????????,
?????????????
83????????
- ????????????????
- ?????????
- ?????????
84??????????????
- ?????????????????
- ????????
- ???????????
- Dobkin 1985Agarwal 1991Chazelle 1989
- ????????
- ????????????????
- ????????? Lin 1998Jiménez 2001
85??????????????
- ????????
- ????
- ??????
- ?????????
- ????????
- ??????????????
- ???????
- Cameron 1990Canny 1986Redon 2001Redon
2002a
86??????????????
- ?????????????
- ?????????????
87??????????????
- ?????????????
- ???????????????
- ?????????????
88??????????????
- ?????????????
- ???????????????
- ???????
- ?????,???????
- ????????
- CSG????,?????,????,?????
89??????????????
- ?????????????
- ???????????????
- ????????????????
- Hubbard 1995Gottschalk 1996 Klosowski
1998Zachmann 1998 - ???????????
90??????????????
- ?????????????
- ???????????
- ???????????
- Lin-Canny????????Lin 1991, Lin1993
- Lin 1995, Cohen 1995, Chung 1996, Mirtich
1998, Ehmann 2000, Ehmann 2001 - ?????(Simplex)???????
- Gilbert?Johnson?Keerthi Gilbert 1988Gilbert
1990???GJK?? - Cameron 1997Bergen 1999
91??????????????
- ?????????????
- ???????????????
- ??CSG????
- Zeiller 1993Su 1996Poutain 2001
- ?????????
- Farouki 1989Miller 1991Shene 1991
- ????????
- ?????B????(NURBS)
- Turnbull 1998
- ?????
- ???????????????????
- Heidelb 2003Boyles1999??? 2001
92??????????????
- ?????????????
- ???????????????
- ?????????????
- ?????(space decomposition)
- ?????BSP??k-d?????(Octree)?Samet 1989Naylor
1990Bourma 1991 - ???????(hierarchical bounding volume trees)
93??????????????
- ?????????????
- ?????????????
- ???????,?????????????
- ??????Hubbard 1993Hubbard 1995Palmer
1995OSullivan 1999? - AABB???(Aligned Axis Bounding Box)Zachmann
1997Bergen 1997Larsson 2001? - OBB???(Oriented Bounding Box)Gottschalk 1996
- k-dop???(Discrete Orientation Polytope)Klosowski
1998Zachmann 1998 - QuOSPO ???(Quantized Orientation Slabs with
Primary Orientations) He 1999 - ?????Ehmann 2001
- ????????Wan 2001??
94??????????????
- ?????????????
- ?????????????
- ???????,?????????????
(a) ??? (b) AABB??? (c)OBB??? (d) 6-dop???
(e)????? ????????
95??????????????
- ?????????????
- ?????????????
- ??????
- ??????????
- ???????
96??????????????
- ?????????????
- Shinya?Shinya 1991?Rossignac?Rossignac 1992
- Myszkowski?Myszkow 1995
- Baciu?Baciu 1997Baciu 1999
- Hoff?Hoff 2001,Kim?Kim 2002, Lombardo
1999,Vassilev 2001,Heidelb 2003,Govindar
2003 - ?????????.
97?????????
demo
98????????
video