ogre.rb 0.1-i386-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/README +79 -0
  2. data/Rakefile +291 -0
  3. data/doc_src/ogre.rb +246 -0
  4. data/doc_src/ois.rb +67 -0
  5. data/lib/application.rb +146 -0
  6. data/lib/application_frame_listener.rb +302 -0
  7. data/lib/application_loading_bar.rb +115 -0
  8. data/lib/constants.rb +51 -0
  9. data/lib/method_fixes.rb +42 -0
  10. data/lib/ogre.dll +0 -0
  11. data/lib/ruby_ois.dll +0 -0
  12. data/ogre.rb +25 -0
  13. data/platform.rb +23 -0
  14. data/samples/Ogre.log +279 -0
  15. data/samples/bsp.rb +76 -0
  16. data/samples/cg.dll +0 -0
  17. data/samples/grass.rb +325 -0
  18. data/samples/js3250.dll +0 -0
  19. data/samples/lighting.rb +138 -0
  20. data/samples/media/materials/programs/Grass.cg +30 -0
  21. data/samples/media/materials/programs/OffsetMapping.cg +97 -0
  22. data/samples/media/materials/programs/OffsetMapping.hlsl +135 -0
  23. data/samples/media/materials/programs/OffsetMappingFp.glsl +69 -0
  24. data/samples/media/materials/programs/OffsetMappingVp.glsl +54 -0
  25. data/samples/media/materials/programs/OffsetMapping_specular.asm +44 -0
  26. data/samples/media/materials/scripts/CloudySky.material +17 -0
  27. data/samples/media/materials/scripts/CubeMapping.material +34 -0
  28. data/samples/media/materials/scripts/Flare.material +17 -0
  29. data/samples/media/materials/scripts/Grass.material +63 -0
  30. data/samples/media/materials/scripts/Knot.material +14 -0
  31. data/samples/media/materials/scripts/MorningSkyBox.material +17 -0
  32. data/samples/media/materials/scripts/Offset.material +124 -0
  33. data/samples/media/materials/scripts/Ogre.material +119 -0
  34. data/samples/media/materials/scripts/RZR-002.material +15 -0
  35. data/samples/media/materials/scripts/Razor.material +14 -0
  36. data/samples/media/materials/scripts/Ribbon.material +19 -0
  37. data/samples/media/materials/scripts/RustySteel.material +14 -0
  38. data/samples/media/materials/scripts/SpaceSkyBox.material +17 -0
  39. data/samples/media/materials/scripts/SpaceSkyPlane.material +17 -0
  40. data/samples/media/materials/scripts/TextureEffects.material +15 -0
  41. data/samples/media/materials/scripts/dragon.material +42 -0
  42. data/samples/media/materials/scripts/smoke.material +18 -0
  43. data/samples/media/materials/textures/GreenSkin.jpg +0 -0
  44. data/samples/media/materials/textures/MtlPlat2.jpg +0 -0
  45. data/samples/media/materials/textures/RZR-002.png +0 -0
  46. data/samples/media/materials/textures/RustedMetal.jpg +0 -0
  47. data/samples/media/materials/textures/RustySteel.jpg +0 -0
  48. data/samples/media/materials/textures/Thumbs.db +0 -0
  49. data/samples/media/materials/textures/Water02.jpg +0 -0
  50. data/samples/media/materials/textures/WeirdEye.png +0 -0
  51. data/samples/media/materials/textures/clouds.jpg +0 -0
  52. data/samples/media/materials/textures/cursor.png +0 -0
  53. data/samples/media/materials/textures/dirt01.jpg +0 -0
  54. data/samples/media/materials/textures/flare.png +0 -0
  55. data/samples/media/materials/textures/gras_02.png +0 -0
  56. data/samples/media/materials/textures/grass_1024.jpg +0 -0
  57. data/samples/media/materials/textures/ogreborder.png +0 -0
  58. data/samples/media/materials/textures/ogreborderUp.png +0 -0
  59. data/samples/media/materials/textures/ribbonband.png +0 -0
  60. data/samples/media/materials/textures/rockwall.tga +0 -0
  61. data/samples/media/materials/textures/rockwall_NH.tga +0 -0
  62. data/samples/media/materials/textures/smoke.png +0 -0
  63. data/samples/media/materials/textures/smokecolors.png +0 -0
  64. data/samples/media/materials/textures/spacesky.jpg +0 -0
  65. data/samples/media/materials/textures/spheremap.png +0 -0
  66. data/samples/media/materials/textures/texmap2.jpg +0 -0
  67. data/samples/media/models/RZR-002.mesh +0 -0
  68. data/samples/media/models/geosphere4500.mesh +0 -0
  69. data/samples/media/models/geosphere8000.mesh +0 -0
  70. data/samples/media/models/knot.mesh +0 -0
  71. data/samples/media/models/ogrehead.mesh +0 -0
  72. data/samples/media/models/razor.mesh +0 -0
  73. data/samples/media/models/sphere.mesh +0 -0
  74. data/samples/media/overlays/CubeMapping.overlay +139 -0
  75. data/samples/media/packs/OgreCore.zip +0 -0
  76. data/samples/media/packs/chiropteraDM.pk3 +0 -0
  77. data/samples/media/packs/chiropteraDM.txt +99 -0
  78. data/samples/media/packs/cubemap.zip +0 -0
  79. data/samples/media/packs/cubemapsJS.zip +0 -0
  80. data/samples/media/packs/dragon.zip +0 -0
  81. data/samples/media/packs/skybox.zip +0 -0
  82. data/samples/media/particles/smoke.particle +43 -0
  83. data/samples/media.cfg +22 -0
  84. data/samples/ogre.cfg +19 -0
  85. data/samples/plugins.cfg +12 -0
  86. data/samples/quake3settings.cfg +2 -0
  87. data/samples/render_to_texture.rb +161 -0
  88. data/samples/resources.cfg +16 -0
  89. data/samples/sky_box.rb +107 -0
  90. data/samples/sky_dome.rb +86 -0
  91. data/samples/sky_plane.rb +27 -0
  92. data/samples/smoke.rb +23 -0
  93. data/samples/work/cube_mapping.rb +686 -0
  94. metadata +149 -0
data/samples/Ogre.log ADDED
@@ -0,0 +1,279 @@
1
+ 11:22:22: Creating resource group General
2
+ 11:22:22: Creating resource group Internal
3
+ 11:22:22: Creating resource group Autodetect
4
+ 11:22:22: SceneManagerFactory for type 'DefaultSceneManager' registered.
5
+ 11:22:22: Registering ResourceManager for type Material
6
+ 11:22:22: Registering ResourceManager for type Mesh
7
+ 11:22:22: Registering ResourceManager for type Skeleton
8
+ 11:22:22: MovableObjectFactory for type 'ParticleSystem' registered.
9
+ 11:22:22: OverlayElementFactory for type Panel registered.
10
+ 11:22:22: OverlayElementFactory for type BorderPanel registered.
11
+ 11:22:22: OverlayElementFactory for type TextArea registered.
12
+ 11:22:22: Registering ResourceManager for type Font
13
+ 11:22:22: ArchiveFactory for archive type FileSystem registered.
14
+ 11:22:22: ArchiveFactory for archive type Zip registered.
15
+ 11:22:22: FreeImage version: 3.9.2
16
+ 11:22:22: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
17
+ 11:22:22: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi
18
+ 11:22:22: DDS codec registering
19
+ 11:22:22: Registering ResourceManager for type HighLevelGpuProgram
20
+ 11:22:22: Registering ResourceManager for type Compositor
21
+ 11:22:22: MovableObjectFactory for type 'Entity' registered.
22
+ 11:22:22: MovableObjectFactory for type 'Light' registered.
23
+ 11:22:22: MovableObjectFactory for type 'BillboardSet' registered.
24
+ 11:22:22: MovableObjectFactory for type 'ManualObject' registered.
25
+ 11:22:22: MovableObjectFactory for type 'BillboardChain' registered.
26
+ 11:22:22: MovableObjectFactory for type 'RibbonTrail' registered.
27
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\RenderSystem_GL
28
+ 11:22:22: Installing plugin: GL RenderSystem
29
+ 11:22:22: OpenGL Rendering Subsystem created.
30
+ 11:22:22: Plugin successfully installed
31
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\RenderSystem_Direct3D9
32
+ 11:22:22: Installing plugin: D3D9 RenderSystem
33
+ 11:22:22: D3D9 : Direct3D9 Rendering Subsystem created.
34
+ 11:22:22: D3D9: Driver Detection Starts
35
+ 11:22:22: D3D9: Driver Detection Ends
36
+ 11:22:22: Plugin successfully installed
37
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_OctreeSceneManager
38
+ 11:22:22: Installing plugin: Octree & Terrain Scene Manager
39
+ 11:22:22: Plugin successfully installed
40
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_ParticleFX
41
+ 11:22:22: Installing plugin: ParticleFX
42
+ 11:22:22: Particle Emitter Type 'Point' registered
43
+ 11:22:22: Particle Emitter Type 'Box' registered
44
+ 11:22:22: Particle Emitter Type 'Ellipsoid' registered
45
+ 11:22:22: Particle Emitter Type 'Cylinder' registered
46
+ 11:22:22: Particle Emitter Type 'Ring' registered
47
+ 11:22:22: Particle Emitter Type 'HollowEllipsoid' registered
48
+ 11:22:22: Particle Affector Type 'LinearForce' registered
49
+ 11:22:22: Particle Affector Type 'ColourFader' registered
50
+ 11:22:22: Particle Affector Type 'ColourFader2' registered
51
+ 11:22:22: Particle Affector Type 'ColourImage' registered
52
+ 11:22:22: Particle Affector Type 'ColourInterpolator' registered
53
+ 11:22:22: Particle Affector Type 'Scaler' registered
54
+ 11:22:22: Particle Affector Type 'Rotator' registered
55
+ 11:22:22: Particle Affector Type 'DirectionRandomiser' registered
56
+ 11:22:22: Particle Affector Type 'DeflectorPlane' registered
57
+ 11:22:22: Plugin successfully installed
58
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_BSPSceneManager
59
+ 11:22:22: Installing plugin: BSP Scene Manager
60
+ 11:22:22: Plugin successfully installed
61
+ 11:22:22: Loading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_CgProgramManager
62
+ 11:22:22: Installing plugin: Cg Program Manager
63
+ 11:22:23: Plugin successfully installed
64
+ 11:22:23: *-*-* OGRE Initialising
65
+ 11:22:23: *-*-* Version 1.4.1 (Eihort)
66
+ 11:22:23: Creating resource group Bootstrap
67
+ 11:22:23: Added resource location './media/packs/OgreCore.zip' of type 'Zip' to resource group 'Bootstrap'
68
+ 11:22:23: Added resource location './media/' of type 'FileSystem' to resource group 'General'
69
+ 11:22:23: Added resource location './media/materials' of type 'FileSystem' to resource group 'General'
70
+ 11:22:23: Added resource location './media/materials/textures' of type 'FileSystem' to resource group 'General'
71
+ 11:22:23: Added resource location './media/materials/scripts' of type 'FileSystem' to resource group 'General'
72
+ 11:22:23: Added resource location './media/materials/programs' of type 'FileSystem' to resource group 'General'
73
+ 11:22:23: Added resource location './media/models' of type 'FileSystem' to resource group 'General'
74
+ 11:22:23: Added resource location './media/particles' of type 'FileSystem' to resource group 'General'
75
+ 11:22:23: Added resource location './media/overlays' of type 'FileSystem' to resource group 'General'
76
+ 11:22:23: Added resource location './media/packs/skybox.zip' of type 'Zip' to resource group 'General'
77
+ 11:22:23: Added resource location './media/packs/dragon.zip' of type 'Zip' to resource group 'General'
78
+ 11:22:23: Added resource location './media/packs/cubemap.zip' of type 'Zip' to resource group 'General'
79
+ 11:22:23: Added resource location './media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'General'
80
+ 11:22:23: D3D9 : RenderSystem Option: Allow NVPerfHUD = No
81
+ 11:22:23: D3D9 : RenderSystem Option: Anti aliasing = NonMaskable 4
82
+ 11:22:23: D3D9 : RenderSystem Option: Floating-point mode = Fastest
83
+ 11:22:23: D3D9 : RenderSystem Option: Full Screen = No
84
+ 11:22:23: D3D9 : RenderSystem Option: Rendering Device = NVIDIA GeForce 6800 Series GPU
85
+ 11:22:23: D3D9 : RenderSystem Option: VSync = No
86
+ 11:22:23: D3D9 : RenderSystem Option: Video Mode = 1024 x 768 @ 32-bit colour
87
+ 11:22:23: CPU Identifier & Features
88
+ 11:22:23: -------------------------
89
+ 11:22:23: * CPU ID: AuthenticAMD: AMD Athlon(tm) 64 Processor 3200+
90
+ 11:22:23: * SSE: yes
91
+ 11:22:23: * SSE2: yes
92
+ 11:22:23: * SSE3: yes
93
+ 11:22:23: * MMX: yes
94
+ 11:22:23: * MMXEXT: yes
95
+ 11:22:23: * 3DNOW: yes
96
+ 11:22:23: * 3DNOWEXT: yes
97
+ 11:22:23: * CMOV: yes
98
+ 11:22:23: * TSC: yes
99
+ 11:22:23: * FPU: yes
100
+ 11:22:23: * PRO: yes
101
+ 11:22:23: * HT: no
102
+ 11:22:23: -------------------------
103
+ 11:22:23: D3D9 : Subsystem Initialising
104
+ 11:22:23: D3D9RenderSystem::createRenderWindow "OGRE Render Window", 1024x768 windowed miscParams: FSAA=1 FSAAQuality=3 colourDepth=32 useNVPerfHUD=false vsync=false
105
+ 11:22:23: D3D9 : Created D3D9 Rendering Window 'OGRE Render Window' : 1024x768, 32bpp
106
+ 11:22:23: D3D9 : WARNING - disabling VSync in windowed mode can cause timing issues at lower frame rates, turn VSync on if you observe this problem.
107
+ 11:22:23: Registering ResourceManager for type Texture
108
+ 11:22:23: Registering ResourceManager for type GpuProgram
109
+ 11:22:23: D3D9: Vertex texture format supported - PF_FLOAT32_RGB
110
+ 11:22:23: D3D9: Vertex texture format supported - PF_FLOAT32_RGBA
111
+ 11:22:23: D3D9: Vertex texture format supported - PF_FLOAT32_R
112
+ 11:22:23: RenderSystem capabilities
113
+ 11:22:23: -------------------------
114
+ 11:22:23: * Hardware generation of mipmaps: yes
115
+ 11:22:23: * Texture blending: yes
116
+ 11:22:23: * Anisotropic texture filtering: yes
117
+ 11:22:23: * Dot product texture operation: yes
118
+ 11:22:23: * Cube mapping: yes
119
+ 11:22:23: * Hardware stencil buffer: yes
120
+ 11:22:23: - Stencil depth: 8
121
+ 11:22:23: - Two sided stencil support: yes
122
+ 11:22:23: - Wrap stencil values: yes
123
+ 11:22:23: * Hardware vertex / index buffers: yes
124
+ 11:22:23: * Vertex programs: yes
125
+ 11:22:23: - Max vertex program version: vs_3_0
126
+ 11:22:23: * Fragment programs: yes
127
+ 11:22:23: - Max fragment program version: ps_3_0
128
+ 11:22:23: * Texture Compression: yes
129
+ 11:22:23: - DXT: yes
130
+ 11:22:23: - VTC: no
131
+ 11:22:23: * Scissor Rectangle: yes
132
+ 11:22:23: * Hardware Occlusion Query: yes
133
+ 11:22:23: * User clip planes: yes
134
+ 11:22:23: * VET_UBYTE4 vertex element type: yes
135
+ 11:22:23: * Infinite far plane projection: yes
136
+ 11:22:23: * Hardware render-to-texture: yes
137
+ 11:22:23: * Floating point textures: yes
138
+ 11:22:23: * Non-power-of-two textures: yes
139
+ 11:22:23: * Volume textures: yes
140
+ 11:22:23: * Multiple Render Targets: 4
141
+ 11:22:23: * Point Sprites: yes
142
+ 11:22:23: * Extended point parameters: yes
143
+ 11:22:23: * Max Point Size: 8192
144
+ 11:22:23: * Vertex texture fetch: yes
145
+ 11:22:23: - Max vertex textures: 4
146
+ 11:22:23: - Vertex textures shared: no
147
+ 11:22:23: ***************************************
148
+ 11:22:23: *** D3D9 : Subsystem Initialised OK ***
149
+ 11:22:23: ***************************************
150
+ 11:22:23: ResourceBackgroundQueue - threading disabled
151
+ 11:22:23: Particle Renderer Type 'billboard' registered
152
+ 11:22:23: SceneManagerFactory for type 'BspSceneManager' registered.
153
+ 11:22:23: Registering ResourceManager for type BspLevel
154
+ 11:22:23: SceneManagerFactory for type 'OctreeSceneManager' registered.
155
+ 11:22:23: SceneManagerFactory for type 'TerrainSceneManager' registered.
156
+ 11:22:23: Creating viewport on target 'OGRE Render Window', rendering from camera 'PlayerCam', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
157
+ 11:22:23: Viewport for camera 'PlayerCam', actual dimensions L: 0 T: 0 W: 1024 H: 768
158
+ 11:22:23: Parsing scripts for resource group Autodetect
159
+ 11:22:23: Finished parsing scripts for resource group Autodetect
160
+ 11:22:23: Parsing scripts for resource group Bootstrap
161
+ 11:22:23: Parsing script OgreCore.material
162
+ 11:22:23: Parsing script OgreProfiler.material
163
+ 11:22:23: Parsing script Ogre.fontdef
164
+ 11:22:23: Parsing script OgreDebugPanel.overlay
165
+ 11:22:23: Texture: New_Ogre_Border_Center.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
166
+ 11:22:23: Texture: New_Ogre_Border.png: Loading 1 faces(PF_A8R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x256x1.
167
+ 11:22:23: Texture: New_Ogre_Border_Break.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
168
+ 11:22:23: Font BlueHighwayusing texture size 512x512
169
+ 11:22:23: Info: Freetype returned null for character 127 in font BlueHighway
170
+ 11:22:23: Info: Freetype returned null for character 128 in font BlueHighway
171
+ 11:22:23: Info: Freetype returned null for character 129 in font BlueHighway
172
+ 11:22:23: Info: Freetype returned null for character 130 in font BlueHighway
173
+ 11:22:23: Info: Freetype returned null for character 131 in font BlueHighway
174
+ 11:22:23: Info: Freetype returned null for character 132 in font BlueHighway
175
+ 11:22:23: Info: Freetype returned null for character 133 in font BlueHighway
176
+ 11:22:23: Info: Freetype returned null for character 134 in font BlueHighway
177
+ 11:22:23: Info: Freetype returned null for character 135 in font BlueHighway
178
+ 11:22:23: Info: Freetype returned null for character 136 in font BlueHighway
179
+ 11:22:23: Info: Freetype returned null for character 137 in font BlueHighway
180
+ 11:22:23: Info: Freetype returned null for character 138 in font BlueHighway
181
+ 11:22:23: Info: Freetype returned null for character 139 in font BlueHighway
182
+ 11:22:23: Info: Freetype returned null for character 140 in font BlueHighway
183
+ 11:22:23: Info: Freetype returned null for character 141 in font BlueHighway
184
+ 11:22:23: Info: Freetype returned null for character 142 in font BlueHighway
185
+ 11:22:23: Info: Freetype returned null for character 143 in font BlueHighway
186
+ 11:22:23: Info: Freetype returned null for character 144 in font BlueHighway
187
+ 11:22:23: Info: Freetype returned null for character 145 in font BlueHighway
188
+ 11:22:23: Info: Freetype returned null for character 146 in font BlueHighway
189
+ 11:22:23: Info: Freetype returned null for character 147 in font BlueHighway
190
+ 11:22:23: Info: Freetype returned null for character 148 in font BlueHighway
191
+ 11:22:23: Info: Freetype returned null for character 149 in font BlueHighway
192
+ 11:22:23: Info: Freetype returned null for character 150 in font BlueHighway
193
+ 11:22:23: Info: Freetype returned null for character 151 in font BlueHighway
194
+ 11:22:23: Info: Freetype returned null for character 152 in font BlueHighway
195
+ 11:22:23: Info: Freetype returned null for character 153 in font BlueHighway
196
+ 11:22:23: Info: Freetype returned null for character 154 in font BlueHighway
197
+ 11:22:23: Info: Freetype returned null for character 155 in font BlueHighway
198
+ 11:22:23: Info: Freetype returned null for character 156 in font BlueHighway
199
+ 11:22:23: Info: Freetype returned null for character 157 in font BlueHighway
200
+ 11:22:23: Info: Freetype returned null for character 158 in font BlueHighway
201
+ 11:22:23: Info: Freetype returned null for character 159 in font BlueHighway
202
+ 11:22:23: Info: Freetype returned null for character 160 in font BlueHighway
203
+ 11:22:23: Texture: BlueHighwayTexture: Loading 1 faces(PF_BYTE_LA,512x512x1) with 0 generated mipmaps from Image. Internal format is PF_BYTE_LA,512x512x1.
204
+ 11:22:23: Texture: ogretext.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
205
+ 11:22:23: Parsing script OgreLoadingPanel.overlay
206
+ 11:22:23: Finished parsing scripts for resource group Bootstrap
207
+ 11:22:23: Parsing scripts for resource group General
208
+ 11:22:23: Parsing script CloudySky.material
209
+ 11:22:23: Parsing script CubeMapping.material
210
+ 11:22:23: Parsing script dragon.material
211
+ 11:22:23: Parsing script Flare.material
212
+ 11:22:23: Parsing script Grass.material
213
+ 11:22:23: Parsing script Knot.material
214
+ 11:22:23: Parsing script MorningSkyBox.material
215
+ 11:22:23: Parsing script Offset.material
216
+ 11:22:23: Parsing script Ogre.material
217
+ 11:22:23: Parsing script Razor.material
218
+ 11:22:23: Parsing script Ribbon.material
219
+ 11:22:23: Parsing script RustySteel.material
220
+ 11:22:23: Parsing script RZR-002.material
221
+ 11:22:23: Parsing script smoke.material
222
+ 11:22:23: Parsing script SpaceSkyBox.material
223
+ 11:22:23: Parsing script SpaceSkyPlane.material
224
+ 11:22:23: Parsing script TextureEffects.material
225
+ 11:22:23: Parsing script smoke.particle
226
+ 11:22:23: Parsing script CubeMapping.overlay
227
+ 11:22:23: Finished parsing scripts for resource group General
228
+ 11:22:23: Parsing scripts for resource group Internal
229
+ 11:22:23: Finished parsing scripts for resource group Internal
230
+ 11:22:23: Texture: stevecube_fr.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
231
+ 11:22:23: Texture: stevecube_bk.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
232
+ 11:22:23: Texture: stevecube_lf.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
233
+ 11:22:23: Texture: stevecube_rt.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
234
+ 11:22:23: Texture: stevecube_up.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
235
+ 11:22:23: Texture: stevecube_dn.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
236
+ 11:22:23: Texture: flare.png: Loading 1 faces(PF_R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
237
+ 11:22:23: Texture: grass_1024.jpg: Loading 1 faces(PF_R8G8B8,1024x1024x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,1024x1024x1.
238
+ 11:22:23: WARNING: Mesh instance 'grassblades' was defined as manually loaded, but no manual loader was provided. This Resource will be lost if it has to be reloaded.
239
+ 11:22:23: Texture: gras_02.png: Loading 1 faces(PF_A8R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x256x1.
240
+ 11:22:24: Mesh: Loading ogrehead.mesh.
241
+ 11:22:24: Texture: WeirdEye.png: Loading 1 faces(PF_R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
242
+ 11:22:24: Texture: GreenSkin.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
243
+ 11:22:24: Texture: spheremap.png: Loading 1 faces(PF_R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
244
+ 11:22:24: Texture: dirt01.jpg: Loading 1 faces(PF_R8G8B8,96x96x1) with 6 generated mipmaps from Image. Internal format is PF_X8R8G8B8,96x96x1.
245
+ 11:22:24: Texture: rockwall_NH.tga: Loading 1 faces(PF_A8R8G8B8,64x64x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
246
+ 11:22:24: Texture: rockwall.tga: Loading 1 faces(PF_R8G8B8,256x256x1) with hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
247
+ 11:22:24: *** Initializing OIS ***
248
+ 11:22:39: Unregistering ResourceManager for type BspLevel
249
+ 11:22:39: *-*-* OGRE Shutdown
250
+ 11:22:39: Unregistering ResourceManager for type Compositor
251
+ 11:22:39: Unregistering ResourceManager for type Font
252
+ 11:22:39: Unregistering ResourceManager for type Skeleton
253
+ 11:22:39: Unregistering ResourceManager for type Mesh
254
+ 11:22:39: Unregistering ResourceManager for type HighLevelGpuProgram
255
+ 11:22:39: Uninstalling plugin: Cg Program Manager
256
+ 11:22:39: Plugin successfully uninstalled
257
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_CgProgramManager
258
+ 11:22:39: Uninstalling plugin: BSP Scene Manager
259
+ 11:22:39: Plugin successfully uninstalled
260
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_BSPSceneManager
261
+ 11:22:39: Uninstalling plugin: ParticleFX
262
+ 11:22:39: Plugin successfully uninstalled
263
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_ParticleFX
264
+ 11:22:39: Uninstalling plugin: Octree & Terrain Scene Manager
265
+ 11:22:39: Plugin successfully uninstalled
266
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\Plugin_OctreeSceneManager
267
+ 11:22:39: Uninstalling plugin: D3D9 RenderSystem
268
+ 11:22:39: Render Target 'OGRE Render Window' Average FPS: 168.375 Best FPS: 176.823 Worst FPS: 164.694
269
+ 11:22:39: D3D9 : Shutting down cleanly.
270
+ 11:22:39: Unregistering ResourceManager for type Texture
271
+ 11:22:39: Unregistering ResourceManager for type GpuProgram
272
+ 11:22:39: D3D9 : Direct3D9 Rendering Subsystem destroyed.
273
+ 11:22:39: Plugin successfully uninstalled
274
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\RenderSystem_Direct3D9
275
+ 11:22:39: Uninstalling plugin: GL RenderSystem
276
+ 11:22:39: *** Stopping Win32GL Subsystem ***
277
+ 11:22:39: Plugin successfully uninstalled
278
+ 11:22:39: Unloading library D:\Programming\engines\Ogre1.4.1SDK\bin\release\RenderSystem_GL
279
+ 11:22:39: Unregistering ResourceManager for type Material
data/samples/bsp.rb ADDED
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/ruby -w
2
+
3
+ $: << File.dirname(__FILE__) + "/.."
4
+ require 'ogre'
5
+ require 'application'
6
+ require 'application_loading_bar'
7
+ include Ogre
8
+
9
+ class BSPApplication < Application
10
+ def initialize
11
+ super
12
+
13
+ #@loading_bar = ApplicationLoadingBar.new
14
+ @quake_level = ""
15
+ @quake_pk3 = ""
16
+ @loading_bar = ApplicationLoadingBar.new
17
+ end
18
+
19
+ def load_resources
20
+ @loading_bar.start(window, 1, 1, 0.75)
21
+
22
+ # Turn off rendering of all but overlays
23
+ scene_manager.clear_special_case_render_queues
24
+ scene_manager.add_special_case_render_queue(RENDER_QUEUE_OVERLAY)
25
+ scene_manager.set_special_case_render_queue_mode(SceneManager::SCRQM_INCLUDE)
26
+
27
+ rgm = ResourceGroupManager.instance
28
+
29
+ # World geometry link
30
+ rgm.link_world_geometry_to_resource_group(
31
+ rgm.get_world_resource_group_name,
32
+ @quake_level, scene_manager)
33
+
34
+ # Initialize the rest of the groups, parse
35
+ rgm.initialise_all_resource_groups
36
+ rgm.load_resource_group rgm.get_world_resource_group_name, false, true
37
+
38
+ # Full rendering
39
+ scene_manager.clear_special_case_render_queues
40
+ scene_manager.set_special_case_render_queue_mode(SceneManager::SCRQM_EXCLUDE)
41
+
42
+ @loading_bar.finish
43
+ end
44
+
45
+ def setup_resources
46
+ file = ConfigFile.new
47
+ file.load("quake3settings.cfg")
48
+ @quake_level = file.get_setting("Map")
49
+ @quake_pk3 = file.get_setting("Pak0Location")
50
+
51
+ super
52
+
53
+ ResourceGroupManager.instance.add_resource_location(@quake_pk3,
54
+ "Zip", ResourceGroupManager.instance.get_world_resource_group_name, true)
55
+ end
56
+
57
+ def choose_scene_manager
58
+ self.scene_manager = root.create_scene_manager("BspSceneManager")
59
+ end
60
+
61
+ def create_scene
62
+ camera.set_near_clip_distance 4
63
+ camera.set_far_clip_distance 4000
64
+
65
+ vp = scene_manager.get_suggested_viewpoint(true)
66
+
67
+ camera.set_position(vp.position)
68
+ camera.pitch(Degree.new(90))
69
+ camera.rotate(vp.orientation)
70
+
71
+ camera.set_fixed_yaw_axis(true, Vector3.UNIT_Z)
72
+ end
73
+ end
74
+
75
+ app = BSPApplication.new
76
+ app.go
data/samples/cg.dll ADDED
Binary file
data/samples/grass.rb ADDED
@@ -0,0 +1,325 @@
1
+ #!/usr/bin/ruby -w
2
+
3
+ $: << File.dirname(__FILE__) + "/.."
4
+ require 'ogre'
5
+ require 'application'
6
+ include Ogre
7
+
8
+ GRASS_HEIGHT = 300
9
+ GRASS_WIDTH = 250
10
+ GRASS_MESH_NAME = "grassblades"
11
+ GRASS_MATERIAL = "GrassBlades"
12
+ OFFSET_PARAM = 999
13
+
14
+ $anim_state = nil
15
+ $static_geom = nil
16
+
17
+ class GrassListener < ApplicationFrameListener
18
+
19
+ def initialize(root, win, cam, scene_manager)
20
+ super(root, win, cam)
21
+ @scene_manager = scene_manager
22
+ @show_bbs = false
23
+
24
+ @xinc = Math::PI * 0.4
25
+ @zinc = Math::PI * 0.55
26
+ @xpos = Ogre::Math.range_random(-Math::PI, Math::PI)
27
+ @zpos = Ogre::Math.range_random(-Math::PI, Math::PI)
28
+ @offset = Vector4.new(0,0,0,0)
29
+
30
+ @time_delay = 0.0
31
+
32
+ end
33
+
34
+ def wave_grass(time_elapsed)
35
+ # May not be setup yet
36
+ return if $static_geom.nil?
37
+
38
+ @xpos += @xinc * time_elapsed
39
+ @zpos += @zinc * time_elapsed
40
+
41
+ rit = $static_geom.get_region_iterator
42
+
43
+ while rit.has_more_elements
44
+ reg = rit.get_next
45
+
46
+ @xpos += reg.get_centre.x * 0.001
47
+ @zpos += reg.get_centre.z * 0.001
48
+ @offset.x = Ogre::Math.sin(@xpos) * 0.5
49
+ @offset.z = Ogre::Math.sin(@zpos) * 0.05
50
+
51
+ lod_it = reg.get_lod_iterator
52
+
53
+ while lod_it.has_more_elements
54
+ lod = lod_it.get_next
55
+ mat_it = lod.get_material_iterator
56
+ while mat_it.has_more_elements
57
+ mat = mat_it.get_next
58
+ geom_it = mat.get_geometry_iterator
59
+ while geom_it.has_more_elements
60
+ geom = geom_it.get_next
61
+ geom.as_renderable.set_custom_parameter(OFFSET_PARAM, @offset)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+
68
+ def frame_started(event)
69
+ return false unless super
70
+
71
+ @time_delay -= event.time_since_last_frame
72
+
73
+ if $anim_state
74
+ $anim_state.add_time(event.time_since_last_frame)
75
+ end
76
+
77
+ if keyboard.key_down?(OIS::KC_B) && time_delay <= 0
78
+ @time_delay = 1
79
+ @show_bbs = !@show_bbs
80
+ @scene_manager.show_bounding_boxes(@show_bbs)
81
+ end
82
+
83
+ wave_grass(event.time_since_last_frame)
84
+
85
+ true
86
+ end
87
+ end
88
+
89
+ class GrassApplication < Application
90
+ def create_grass_mesh
91
+ mesh = MeshManager.instance.create_manual(GRASS_MESH_NAME,
92
+ ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME)
93
+ sm = mesh.create_sub_mesh
94
+ sm.use_shared_vertices = false
95
+ sm.vertex_data = VertexData.new
96
+ sm.vertex_data.vertex_start = 0
97
+ sm.vertex_data.vertex_count = 12
98
+
99
+ decl = sm.vertex_data.vertex_declaration
100
+ offset = 0
101
+
102
+ decl.add_element(0, offset, VET_FLOAT3, VES_POSITION)
103
+ offset += VertexElement.get_type_size(VET_FLOAT3)
104
+ decl.add_element(0, offset, VET_FLOAT3, VES_NORMAL)
105
+ offset += VertexElement.get_type_size(VET_FLOAT3)
106
+ decl.add_element(0, offset, VET_FLOAT2, VES_TEXTURE_COORDINATES)
107
+ offset += VertexElement.get_type_size(VET_FLOAT2)
108
+
109
+ vbuf = HardwareBufferManager.instance.create_vertex_buffer(
110
+ offset, 12, HardwareBuffer::HBU_STATIC_WRITE_ONLY)
111
+ reals = vbuf.lock(HardwareBuffer::HBL_DISCARD)
112
+
113
+ base_vec = Vector3.new(GRASS_WIDTH / 2, 0, 0)
114
+ vec = Vector3.new(GRASS_WIDTH / 2, 0, 0)
115
+ rot = Quaternion.new
116
+ rot.from_angle_axis(Degree.new(60), Vector3.UNIT_Y)
117
+
118
+ 3.times do |i|
119
+ x = i * 32
120
+ # Position
121
+ reals[x + 0] = -vec.x
122
+ reals[x + 1] = GRASS_HEIGHT
123
+ reals[x + 2] = -vec.z
124
+ # Normal
125
+ reals[x + 3] = 0
126
+ reals[x + 4] = 1
127
+ reals[x + 5] = 0
128
+ # UV
129
+ reals[x + 6] = 0
130
+ reals[x + 7] = 0
131
+
132
+ # Position
133
+ reals[x + 8] = vec.x
134
+ reals[x + 9] = GRASS_HEIGHT
135
+ reals[x + 10] = vec.z
136
+ # Normal
137
+ reals[x + 11] = 0
138
+ reals[x + 12] = 1
139
+ reals[x + 13] = 0
140
+ # UV
141
+ reals[x + 14] = 1
142
+ reals[x + 15] = 0
143
+
144
+ # Position
145
+ reals[x + 16] = -vec.x
146
+ reals[x + 17] = 0
147
+ reals[x + 18] = -vec.z
148
+ # Normal
149
+ reals[x + 19] = 0
150
+ reals[x + 20] = 1
151
+ reals[x + 21] = 0
152
+ # UV
153
+ reals[x + 22] = 0
154
+ reals[x + 23] = 1
155
+
156
+ # Position
157
+ reals[x + 24] = vec.x
158
+ reals[x + 25] = 0
159
+ reals[x + 26] = vec.z
160
+ # Normal
161
+ reals[x + 27] = 0
162
+ reals[x + 28] = 1
163
+ reals[x + 29] = 0
164
+ # UV
165
+ reals[x + 30] = 1
166
+ reals[x + 31] = 1
167
+
168
+ vec = rot * vec
169
+ end
170
+
171
+ vbuf.unlock
172
+
173
+ sm.vertex_data.vertex_buffer_binding.set_binding(0, vbuf)
174
+ sm.index_data.index_count = 6 * 3
175
+ sm.index_data.index_buffer = HardwareBufferManager.instance.
176
+ create_index_buffer(HardwareIndexBuffer::IT_16BIT, 6 * 3,
177
+ HardwareBuffer::HBU_STATIC_WRITE_ONLY)
178
+ index = sm.index_data.index_buffer.lock(HardwareBuffer::HBL_DISCARD)
179
+
180
+ 3.times do |i|
181
+ x = i * 6
182
+ off = i * 4
183
+
184
+ index[x + 0] = 0 + off
185
+ index[x + 1] = 3 + off
186
+ index[x + 2] = 1 + off
187
+
188
+ index[x + 3] = 0 + off
189
+ index[x + 4] = 2 + off
190
+ index[x + 5] = 3 + off
191
+ end
192
+
193
+ sm.index_data.index_buffer.unlock
194
+
195
+ sm.set_material_name(GRASS_MATERIAL)
196
+ mesh.load
197
+ end
198
+
199
+ def setup_lighting
200
+ scene_manager.set_ambient_light ColourValue.new(0.2, 0.2, 0.2)
201
+
202
+ # Point light, movable, reddish
203
+ @light = scene_manager.create_light("Light2")
204
+ @light.set_diffuse_colour(@min_light_colour)
205
+ @light.set_specular_colour(1, 1, 1)
206
+ @light.set_attenuation(8000, 1, 0.0005, 0)
207
+
208
+ @light_node = scene_manager.root_scene_node.create_child_scene_node("MovingLightNode")
209
+ @light_node.attach_object(@light)
210
+
211
+ bbs = scene_manager.create_billboard_set("lightbbs", 1)
212
+ bbs.set_material_name("Flare")
213
+ bb = bbs.create_billboard(0, 0, 0, @min_light_colour)
214
+ @light_node.attach_object(bbs)
215
+
216
+ # TODO Controller code
217
+
218
+ @light_node.set_position(Vector3.new(300, 250, -300))
219
+
220
+ anim = scene_manager.create_animation("LightTrack", 20)
221
+ # Spline it
222
+ anim.set_interpolation_mode(Animation::IM_SPLINE)
223
+ track = anim.create_node_track(0, @light_node)
224
+
225
+ key = track.create_node_key_frame(0)
226
+ key.set_translate(Vector3.new(300,550,-300))
227
+ key = track.create_node_key_frame(2)#B
228
+ key.set_translate(Vector3.new(150,600,-250))
229
+ key = track.create_node_key_frame(4)#C
230
+ key.set_translate(Vector3.new(-150,650,-100))
231
+ key = track.create_node_key_frame(6)#D
232
+ key.set_translate(Vector3.new(-400,500,-200))
233
+ key = track.create_node_key_frame(8)#E
234
+ key.set_translate(Vector3.new(-200,500,-400))
235
+ key = track.create_node_key_frame(10)#F
236
+ key.set_translate(Vector3.new(-100,450,-200))
237
+ key = track.create_node_key_frame(12)#G
238
+ key.set_translate(Vector3.new(-100,400,180))
239
+ key = track.create_node_key_frame(14)#H
240
+ key.set_translate(Vector3.new(0,250,600))
241
+ key = track.create_node_key_frame(16)#I
242
+ key.set_translate(Vector3.new(100,650,100))
243
+ key = track.create_node_key_frame(18)#J
244
+ key.set_translate(Vector3.new(250,600,0))
245
+ key = track.create_node_key_frame(20)#K == A
246
+ key.set_translate(Vector3.new(300,550,-300))
247
+ # Create a new animation state to track this
248
+ $anim_state = scene_manager.create_animation_state("LightTrack")
249
+ $anim_state.set_enabled(true)
250
+ end
251
+
252
+ def create_scene
253
+ @min_light_colour = ColourValue.new(0.5, 0.1, 0.0)
254
+
255
+ scene_manager.set_sky_box(true, "SpaceSkyBox")
256
+
257
+ setup_lighting
258
+
259
+ plane = Plane.new
260
+ plane.normal = Vector3.UNIT_Y
261
+ plane.d = 0
262
+
263
+ MeshManager.instance.create_plane("MyPlane",
264
+ ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME, plane,
265
+ 14500, 14500, 10, 10, true, 1, 50, 50, Vector3.UNIT_Z)
266
+
267
+ plane_ent = scene_manager.create_entity("plane", "MyPlane")
268
+ plane_ent.set_material_name("GrassFloor")
269
+ plane_ent.set_cast_shadows(false)
270
+ scene_manager.root_scene_node.create_child_scene_node.attach_object(plane_ent)
271
+
272
+ min_v = Vector3.new(-2000, 0, -2000)
273
+ max_v = Vector3.new(2000, 0, 2000)
274
+
275
+ create_grass_mesh
276
+
277
+ e = scene_manager.create_entity("1", GRASS_MESH_NAME)
278
+
279
+ s = scene_manager.create_static_geometry("bing")
280
+ s.set_region_dimensions(Vector3.new(1000, 1000, 1000))
281
+ s.set_origin(Vector3.new(-500, 500, -500))
282
+
283
+ -1950.step(1950, 150) do |x|
284
+ -1950.step(1950, 150) do |z|
285
+ pos = Vector3.new(x + Ogre::Math.range_random(-25, 25),
286
+ 0,
287
+ z + Ogre::Math.range_random(-25, 25))
288
+ orientation = Quaternion.new
289
+ orientation.from_angle_axis(
290
+ Degree.new(Ogre::Math.range_random(0, 359)), Vector3.UNIT_Y)
291
+ scale = Vector3.new(1, Ogre::Math.range_random(0.85, 1.15), 1)
292
+ s.add_entity(e, pos, orientation, scale)
293
+ end
294
+ end
295
+
296
+ s.build
297
+ $static_geom = s
298
+
299
+ # Gots to have the Ogre head
300
+ m = MeshManager.instance.load("ogrehead.mesh",
301
+ ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME)
302
+ src = 0
303
+ dest = 0
304
+ ret, src, dest = m.suggest_tangent_vector_build_params(VES_TANGENT)
305
+ unless ret
306
+ m.build_tangent_vectors(VES_TANGENT, src, dest)
307
+ end
308
+
309
+ e = scene_manager.create_entity("head", "ogrehead.mesh")
310
+ e.set_material_name("OffsetMapping/Specular")
311
+ head_node = scene_manager.root_scene_node.create_child_scene_node
312
+ head_node.attach_object(e)
313
+ head_node.set_scale(7, 7, 7)
314
+ head_node.set_position(0, 200, 0)
315
+ e.set_normalise_normals(true)
316
+ camera.move(Vector3.new(0, 350, 0))
317
+ end
318
+
319
+ def create_frame_listener
320
+ self.frame_listener = GrassListener.new(root, window, camera, scene_manager)
321
+ end
322
+ end
323
+
324
+ app = GrassApplication.new
325
+ app.go
Binary file