shattered_ogrerb 0.5.0.1 → 0.5.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/shattered_ogrerb/mesh_instance.rb +9 -0
- data/vendor/Navi/js3250.dll +0 -0
- data/vendor/Navi/nspr4.dll +0 -0
- data/vendor/Navi/plc4.dll +0 -0
- data/vendor/Navi/plds4.dll +0 -0
- data/vendor/Navi/xpcom.dll +0 -0
- data/vendor/Navi/xul.dll +0 -0
- data/vendor/ogrerb/CHANGELOG +7 -0
- data/vendor/ogrerb/README +7 -2
- data/vendor/ogrerb/Rakefile +98 -10
- data/vendor/ogrerb/build/ogre/extconf.rb +6 -0
- data/vendor/ogrerb/build/ois/extconf.rb +8 -1
- data/vendor/ogrerb/doc_src/ogre.rb +97 -3
- data/vendor/ogrerb/lib/OIS.so +0 -0
- data/vendor/ogrerb/{samples → lib}/application.rb +0 -0
- data/vendor/ogrerb/{samples → lib}/application_frame_listener.rb +1 -1
- data/vendor/ogrerb/{samples → lib}/application_loading_bar.rb +12 -12
- data/vendor/ogrerb/lib/constants.rb +16 -0
- data/vendor/ogrerb/lib/method_fixes.rb +42 -0
- data/vendor/ogrerb/lib/navi.dll +0 -0
- data/vendor/ogrerb/lib/ogre.dll +0 -0
- data/vendor/ogrerb/lib/ogre.so +0 -0
- data/vendor/ogrerb/lib/ruby_ois.dll +0 -0
- data/vendor/ogrerb/lib/ruby_ois.so +0 -0
- data/vendor/ogrerb/ogre/OgreAxisAlignedBox.i +6 -0
- data/vendor/ogrerb/ogre/OgreHardwareIndexBuffer.i +14 -0
- data/vendor/ogrerb/ogre/OgreHardwareVertexBuffer.i +33 -1
- data/vendor/ogrerb/ogre/OgreMaterialManager.i +1 -1
- data/vendor/ogrerb/ogre/OgreMesh.i +32 -0
- data/vendor/ogrerb/ogre/OgreQuaternion.i +5 -0
- data/vendor/ogrerb/ogre/OgreRenderSystemCapabilities.i +4 -0
- data/vendor/ogrerb/ogre/OgreShadowTextureManager.i +6 -1
- data/vendor/ogrerb/ogre/OgreStaticGeometry.i +272 -0
- data/vendor/ogrerb/ogre/OgreStringVector.i +20 -0
- data/vendor/ogrerb/ogre/OgreSubMesh.i +4 -0
- data/vendor/ogrerb/ogre/OgreTextureUnitState.i +3 -0
- data/vendor/ogrerb/ogre/OgreVector4.i +4 -0
- data/vendor/ogrerb/ogre/ogre_rb.i +26 -18
- data/vendor/ogrerb/ogre.rb +5 -3
- data/vendor/ogrerb/samples/bsp.rb +2 -0
- data/vendor/ogrerb/samples/cel_shading.rb +85 -0
- data/vendor/ogrerb/samples/grass.rb +325 -0
- data/vendor/ogrerb/samples/lighting.rb +2 -0
- data/vendor/ogrerb/samples/media/materials/programs/CelShading.cg +63 -0
- data/vendor/ogrerb/samples/media/materials/programs/Grass.cg +30 -0
- data/vendor/ogrerb/samples/media/materials/programs/OffsetMapping.cg +97 -0
- data/vendor/ogrerb/samples/media/materials/programs/OffsetMapping.hlsl +135 -0
- data/vendor/ogrerb/samples/media/materials/programs/OffsetMappingFp.glsl +69 -0
- data/vendor/ogrerb/samples/media/materials/programs/OffsetMappingVp.glsl +54 -0
- data/vendor/ogrerb/samples/media/materials/programs/OffsetMapping_specular.asm +44 -0
- data/vendor/ogrerb/samples/media/materials/scripts/CelShading.material +68 -0
- data/vendor/ogrerb/samples/media/materials/scripts/CubeMapping.material +34 -0
- data/vendor/ogrerb/samples/media/materials/scripts/Grass.material +63 -0
- data/vendor/ogrerb/samples/media/materials/scripts/Offset.material +124 -0
- data/vendor/ogrerb/samples/media/materials/scripts/RZR-002.material +15 -0
- data/vendor/ogrerb/samples/media/materials/textures/RZR-002.png +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/cel_shading_diffuse.png +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/cel_shading_edge.png +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/cel_shading_specular.png +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/gras_02.png +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/grass_1024.jpg +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/rockwall.tga +0 -0
- data/vendor/ogrerb/samples/media/materials/textures/rockwall_NH.tga +0 -0
- data/vendor/ogrerb/samples/media/models/RZR-002.mesh +0 -0
- data/vendor/ogrerb/samples/media/models/geosphere4500.mesh +0 -0
- data/vendor/ogrerb/samples/media/models/geosphere8000.mesh +0 -0
- data/vendor/ogrerb/samples/media/models/sphere.mesh +0 -0
- data/vendor/ogrerb/samples/media/overlays/CubeMapping.overlay +139 -0
- data/vendor/ogrerb/samples/media.cfg +22 -0
- data/vendor/ogrerb/samples/plugins.cfg +1 -0
- data/vendor/ogrerb/samples/render_to_texture.rb +2 -0
- data/vendor/ogrerb/samples/resources.cfg +2 -0
- data/vendor/ogrerb/samples/sky_box.rb +2 -0
- data/vendor/ogrerb/samples/sky_dome.rb +2 -0
- data/vendor/ogrerb/samples/sky_plane.rb +3 -0
- data/vendor/ogrerb/samples/smoke.rb +2 -0
- data/vendor/ogrerb/samples/work/cube_mapping.rb +686 -0
- data/vendor/ogrerb/src_headers/wrappers/IndexBufferProxy.h +49 -0
- data/vendor/ogrerb/src_headers/wrappers/StaticGeometryProxies.h +867 -0
- data/vendor/ogrerb/src_headers/wrappers/VertexBufferProxy.h +245 -0
- data/vendor/ogrerb/website/index.html +9 -0
- metadata +54 -6
@@ -0,0 +1,69 @@
|
|
1
|
+
uniform vec4 lightDiffuse;
|
2
|
+
uniform vec4 scaleBias;
|
3
|
+
uniform vec4 spotParams;
|
4
|
+
uniform vec4 lightDiffuse1;
|
5
|
+
uniform vec4 spotParams1;
|
6
|
+
|
7
|
+
uniform sampler2D normalHeightMap;
|
8
|
+
uniform sampler2D diffuseMap;
|
9
|
+
uniform sampler2D shadowMap1;
|
10
|
+
uniform sampler2D shadowMap2;
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
varying vec3 tangentEyeDir;
|
15
|
+
varying vec3 tangentLightDir[2];
|
16
|
+
varying vec3 tangentSpotDir[2];
|
17
|
+
varying vec4 shadowUV[2];
|
18
|
+
|
19
|
+
|
20
|
+
// Expand a range-compressed vector
|
21
|
+
vec3 expand(vec3 v)
|
22
|
+
{
|
23
|
+
return (v - 0.5) * 2.0;
|
24
|
+
}
|
25
|
+
|
26
|
+
|
27
|
+
void main()
|
28
|
+
{
|
29
|
+
// get the height using the tex coords
|
30
|
+
float height = texture2D(normalHeightMap, gl_TexCoord[0].xy).a;
|
31
|
+
// scale and bias factors
|
32
|
+
float scale = scaleBias.x;
|
33
|
+
float bias = scaleBias.y;
|
34
|
+
|
35
|
+
// calculate displacement
|
36
|
+
float displacement = (height * scale) + bias;
|
37
|
+
//float displacement = (height * 0.04) - 0.02;
|
38
|
+
|
39
|
+
vec3 scaledEyeDir = tangentEyeDir * displacement;
|
40
|
+
|
41
|
+
// calculate the new tex coord to use for normal and diffuse
|
42
|
+
vec2 newTexCoord = (scaledEyeDir + gl_TexCoord[0].xyz).xy;
|
43
|
+
|
44
|
+
// get the new normal and diffuse values
|
45
|
+
vec3 normal = expand(texture2D(normalHeightMap, newTexCoord).xyz);
|
46
|
+
vec4 diffuse = texture2D(diffuseMap, newTexCoord);
|
47
|
+
|
48
|
+
vec4 col1 = diffuse * clamp(dot(normal, tangentLightDir[0]),0.0,1.0) * lightDiffuse;
|
49
|
+
// factor in spotlight angle
|
50
|
+
float rho = clamp(dot(tangentSpotDir[0], tangentLightDir[0]),0.0,1.0);
|
51
|
+
// factor = (rho - cos(outer/2) / cos(inner/2) - cos(outer/2)) ^ falloff
|
52
|
+
float spotFactor = pow(
|
53
|
+
clamp(rho - spotParams.y,0.0,1.0) / (spotParams.x - spotParams.y), spotParams.z);
|
54
|
+
col1 = col1 * spotFactor;
|
55
|
+
vec4 col2 = diffuse * clamp(dot(normal, tangentLightDir[1]),0.0,1.0) * lightDiffuse1;
|
56
|
+
// factor in spotlight angle
|
57
|
+
rho = clamp(dot(tangentSpotDir[1], tangentLightDir[1]),0.0,1.0);
|
58
|
+
// factor = (rho - cos(outer/2) / cos(inner/2) - cos(outer/2)) ^ falloff
|
59
|
+
spotFactor = pow(
|
60
|
+
clamp(rho - spotParams1.y,0.0,1.0) / (spotParams1.x - spotParams1.y), spotParams1.z);
|
61
|
+
col2 = col2 * spotFactor;
|
62
|
+
|
63
|
+
// shadow textures
|
64
|
+
col1 = col1 * texture2DProj(shadowMap1, shadowUV[0]);
|
65
|
+
col2 = col2 * texture2DProj(shadowMap2, shadowUV[1]);
|
66
|
+
|
67
|
+
gl_FragColor = col1 + col2;
|
68
|
+
|
69
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
attribute vec3 tangent;
|
2
|
+
|
3
|
+
uniform vec4 lightPosition; // object space
|
4
|
+
uniform vec4 lightPosition1; // object space
|
5
|
+
uniform vec4 eyePosition; // object space
|
6
|
+
uniform vec4 spotDirection; // object space
|
7
|
+
uniform vec4 spotDirection1; // object space
|
8
|
+
uniform mat4 worldViewProj; // not actually used but here for compat with HLSL
|
9
|
+
uniform mat4 worldMatrix;
|
10
|
+
uniform mat4 texViewProj1;
|
11
|
+
uniform mat4 texViewProj2;
|
12
|
+
|
13
|
+
|
14
|
+
varying vec3 tangentEyeDir;
|
15
|
+
varying vec3 tangentLightDir[2];
|
16
|
+
varying vec3 tangentSpotDir[2];
|
17
|
+
varying vec4 shadowUV[2];
|
18
|
+
|
19
|
+
void main()
|
20
|
+
{
|
21
|
+
gl_Position = ftransform();
|
22
|
+
|
23
|
+
vec4 worldPos = worldMatrix * gl_Vertex;
|
24
|
+
|
25
|
+
shadowUV[0] = texViewProj1 * worldPos;
|
26
|
+
shadowUV[1] = texViewProj2 * worldPos;
|
27
|
+
|
28
|
+
// pass the main uvs straight through unchanged
|
29
|
+
gl_TexCoord[0] = gl_MultiTexCoord0;
|
30
|
+
|
31
|
+
// calculate tangent space light vector
|
32
|
+
// Get object space light direction
|
33
|
+
vec3 lightDir = normalize(lightPosition.xyz - (gl_Vertex.xyz * lightPosition.w));
|
34
|
+
vec3 lightDir1 = normalize(lightPosition1.xyz - (gl_Vertex.xyz * lightPosition1.w));
|
35
|
+
|
36
|
+
vec3 eyeDir = (eyePosition - gl_Vertex).xyz;
|
37
|
+
|
38
|
+
// Calculate the binormal (NB we assume both normal and tangent are
|
39
|
+
// already normalised)
|
40
|
+
vec3 binormal = cross(gl_Normal, tangent);
|
41
|
+
|
42
|
+
// Form a rotation matrix out of the vectors
|
43
|
+
mat3 rotation = mat3(tangent, binormal, gl_Normal);
|
44
|
+
|
45
|
+
// Transform the light vector according to this matrix
|
46
|
+
tangentLightDir[0] = normalize(rotation * lightDir);
|
47
|
+
tangentLightDir[1] = normalize(rotation * lightDir1);
|
48
|
+
// Invert the Y on the eye dir since we'll be using this to alter UVs and
|
49
|
+
// GL has Y inverted
|
50
|
+
tangentEyeDir = normalize(rotation * eyeDir) * vec3(1, -1, 1);
|
51
|
+
|
52
|
+
tangentSpotDir[0] = normalize(rotation * -spotDirection.xyz);
|
53
|
+
tangentSpotDir[1] = normalize(rotation * -spotDirection1.xyz);
|
54
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
// Pixel Shader for doing bump mapping with parallax plus diffuse and specular lighting by nfz
|
2
|
+
|
3
|
+
// uv TEXCOORD0
|
4
|
+
// lightDir TEXCOORD1
|
5
|
+
// eyeDir TEXCOORD2
|
6
|
+
// half TEXCOORD3
|
7
|
+
|
8
|
+
// lightDiffuse c0
|
9
|
+
// lightSpecular c1
|
10
|
+
// Parallax scale and bias c2
|
11
|
+
// normal/height map texunit 0 - height map in alpha channel
|
12
|
+
// diffuse texture texunit 1
|
13
|
+
|
14
|
+
ps.1.4
|
15
|
+
|
16
|
+
|
17
|
+
texld r0, t0 // get height
|
18
|
+
texcrd r2.xyz, t0 // get uv coordinates
|
19
|
+
texcrd r3.xyz, t2 // get eyedir vector
|
20
|
+
|
21
|
+
|
22
|
+
mad r0.xyz, r0.a, c2.x, c2.y // displacement = height * scale + bias
|
23
|
+
mad r2.xyz, r3, r0, r2 // newtexcoord = eyedir * displacement + uv
|
24
|
+
|
25
|
+
phase
|
26
|
+
|
27
|
+
texld r0, r2.xyz // get normal N using newtexcoord
|
28
|
+
texld r1, r2.xyz // get diffuse texture using newtexcoord
|
29
|
+
texcrd r4.xyz, t1 // get lightdir vector
|
30
|
+
texcrd r5.xyz, t3 // get half angle vector
|
31
|
+
|
32
|
+
dp3_sat r5.rgb, r0_bx2, r5 // N dot H - spec calc
|
33
|
+
dp3_sat r4.rgb, r0_bx2, r4 // N dot L - diffuse calc
|
34
|
+
+ mul r5.a, r5.r, r5.r
|
35
|
+
mul r0.rgb, r4, r1 // colour = diffusetex * N dot L
|
36
|
+
+ mul r5.a, r5.a, r5.a
|
37
|
+
|
38
|
+
mul r5.rgb, r5.a, r5.a
|
39
|
+
mul r5.rgb, r5, r5
|
40
|
+
mul r5.rgb, r5, r5
|
41
|
+
mul r5.rgb, r5, c1 // specular = (N dot H)^32 * specularlight
|
42
|
+
|
43
|
+
mad r0.rgb, r0, c0, r5 // colour = diffusetex * (N dot L)* diffuselight + specular
|
44
|
+
+ mov r0.a, c2.b
|
@@ -0,0 +1,68 @@
|
|
1
|
+
// -------------------------------
|
2
|
+
// Cel Shading Section
|
3
|
+
// -------------------------------
|
4
|
+
vertex_program Ogre/CelShadingVP cg
|
5
|
+
{
|
6
|
+
source CelShading.cg
|
7
|
+
entry_point main_vp
|
8
|
+
profiles vs_1_1 arbvp1
|
9
|
+
|
10
|
+
default_params
|
11
|
+
{
|
12
|
+
param_named_auto lightPosition light_position_object_space 0
|
13
|
+
param_named_auto eyePosition camera_position_object_space
|
14
|
+
param_named_auto worldViewProj worldviewproj_matrix
|
15
|
+
param_named shininess float 10
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
fragment_program Ogre/CelShadingFP cg
|
20
|
+
{
|
21
|
+
source CelShading.cg
|
22
|
+
entry_point main_fp
|
23
|
+
profiles ps_1_1 arbfp1 fp20
|
24
|
+
}
|
25
|
+
|
26
|
+
|
27
|
+
material CelShading
|
28
|
+
{
|
29
|
+
technique
|
30
|
+
{
|
31
|
+
pass
|
32
|
+
{
|
33
|
+
vertex_program_ref Ogre/CelShadingVP
|
34
|
+
{
|
35
|
+
// map shininess from custom renderable param 1
|
36
|
+
param_named_auto shininess custom 1
|
37
|
+
}
|
38
|
+
fragment_program_ref Ogre/CelShadingFP
|
39
|
+
{
|
40
|
+
// map diffuse from custom renderable param 2
|
41
|
+
param_named_auto diffuse custom 2
|
42
|
+
// map specular from custom renderable param 2
|
43
|
+
param_named_auto specular custom 3
|
44
|
+
}
|
45
|
+
texture_unit
|
46
|
+
{
|
47
|
+
texture cel_shading_diffuse.png 1d
|
48
|
+
tex_address_mode clamp
|
49
|
+
filtering none
|
50
|
+
}
|
51
|
+
texture_unit
|
52
|
+
{
|
53
|
+
texture cel_shading_specular.png 1d
|
54
|
+
tex_address_mode clamp
|
55
|
+
filtering none
|
56
|
+
tex_coord_set 1
|
57
|
+
}
|
58
|
+
texture_unit
|
59
|
+
{
|
60
|
+
texture cel_shading_edge.png 1d
|
61
|
+
tex_address_mode clamp
|
62
|
+
filtering none
|
63
|
+
tex_coord_set 2
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
material SceneSkyBox2
|
2
|
+
{
|
3
|
+
technique
|
4
|
+
{
|
5
|
+
pass
|
6
|
+
{
|
7
|
+
lighting off
|
8
|
+
depth_write off
|
9
|
+
|
10
|
+
texture_unit
|
11
|
+
{
|
12
|
+
cubic_texture cubescene_fr.jpg cubescene_bk.jpg cubescene_lf.jpg cubescene_rt.jpg cubescene_up.jpg cubescene_dn.jpg separateUV
|
13
|
+
tex_address_mode clamp
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
material SceneCubeMap2
|
19
|
+
{
|
20
|
+
technique
|
21
|
+
{
|
22
|
+
pass
|
23
|
+
{
|
24
|
+
lighting off
|
25
|
+
|
26
|
+
texture_unit
|
27
|
+
{
|
28
|
+
cubic_texture cubescene.jpg combinedUVW
|
29
|
+
tex_address_mode clamp
|
30
|
+
env_map cubic_reflection
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
material GrassFloor
|
2
|
+
{
|
3
|
+
technique
|
4
|
+
{
|
5
|
+
pass
|
6
|
+
{
|
7
|
+
texture_unit
|
8
|
+
{
|
9
|
+
texture grass_1024.jpg
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
vertex_program GrassWaverVp cg
|
16
|
+
{
|
17
|
+
source Grass.cg
|
18
|
+
entry_point grass_vp
|
19
|
+
profiles vs_1_1 arbvp1
|
20
|
+
}
|
21
|
+
|
22
|
+
material GrassBlades
|
23
|
+
{
|
24
|
+
// Vertex program waving grass
|
25
|
+
technique
|
26
|
+
{
|
27
|
+
pass
|
28
|
+
{
|
29
|
+
vertex_program_ref GrassWaverVp
|
30
|
+
{
|
31
|
+
param_named_auto worldViewProj worldviewproj_matrix
|
32
|
+
param_named_auto ambient ambient_light_colour
|
33
|
+
param_named_auto objSpaceLight light_position_object_space 0
|
34
|
+
param_named_auto lightColour light_diffuse_colour 0
|
35
|
+
param_named_auto offset custom 999
|
36
|
+
}
|
37
|
+
alpha_rejection greater 150
|
38
|
+
scene_blend alpha_blend
|
39
|
+
cull_hardware none
|
40
|
+
cull_software none
|
41
|
+
texture_unit
|
42
|
+
{
|
43
|
+
texture gras_02.png
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
// Non-vertex program technique (no waving)
|
49
|
+
technique
|
50
|
+
{
|
51
|
+
pass
|
52
|
+
{
|
53
|
+
alpha_rejection greater 150
|
54
|
+
scene_blend alpha_blend
|
55
|
+
cull_hardware none
|
56
|
+
cull_software none
|
57
|
+
texture_unit
|
58
|
+
{
|
59
|
+
texture gras_02.png
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
@@ -0,0 +1,124 @@
|
|
1
|
+
// Bump map with Parallax offset vertex program, support for this is required
|
2
|
+
vertex_program OffsetMappingVP cg
|
3
|
+
{
|
4
|
+
source OffsetMapping.cg
|
5
|
+
entry_point main_vp
|
6
|
+
profiles vs_1_1 arbvp1
|
7
|
+
}
|
8
|
+
|
9
|
+
// Bump map with parallax fragment program
|
10
|
+
fragment_program OffsetMappingFP cg
|
11
|
+
{
|
12
|
+
source OffsetMapping.cg
|
13
|
+
entry_point main_fp
|
14
|
+
profiles ps_2_0 arbfp1
|
15
|
+
}
|
16
|
+
|
17
|
+
// Bump map with parallax fragment program
|
18
|
+
fragment_program OffsetMappingPS asm
|
19
|
+
{
|
20
|
+
source OffsetMapping_specular.asm
|
21
|
+
// sorry, only for ps_1_4 and above:)
|
22
|
+
syntax ps_1_4
|
23
|
+
}
|
24
|
+
|
25
|
+
material OffsetMapping/Specular
|
26
|
+
{
|
27
|
+
|
28
|
+
// This is the preferred technique which uses both vertex and
|
29
|
+
// fragment programs, supports coloured lights
|
30
|
+
technique
|
31
|
+
{
|
32
|
+
// do the lighting and bump mapping with parallax pass
|
33
|
+
pass
|
34
|
+
{
|
35
|
+
|
36
|
+
// Vertex program reference
|
37
|
+
vertex_program_ref OffsetMappingVP
|
38
|
+
{
|
39
|
+
param_named_auto lightPosition light_position_object_space 0
|
40
|
+
param_named_auto eyePosition camera_position_object_space
|
41
|
+
param_named_auto worldViewProj worldviewproj_matrix
|
42
|
+
}
|
43
|
+
|
44
|
+
// Fragment program
|
45
|
+
fragment_program_ref OffsetMappingFP
|
46
|
+
{
|
47
|
+
param_named_auto lightDiffuse light_diffuse_colour 0
|
48
|
+
param_named_auto lightSpecular light_specular_colour 0
|
49
|
+
// Parallax Height scale and bias
|
50
|
+
param_named scaleBias float4 0.04 -0.02 1 0
|
51
|
+
}
|
52
|
+
|
53
|
+
// Normal + height(alpha) map
|
54
|
+
texture_unit
|
55
|
+
{
|
56
|
+
texture rockwall_NH.tga
|
57
|
+
tex_coord_set 0
|
58
|
+
}
|
59
|
+
|
60
|
+
// Base diffuse texture map
|
61
|
+
texture_unit
|
62
|
+
{
|
63
|
+
texture rockwall.tga
|
64
|
+
tex_coord_set 1
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
// This is the preferred technique which uses both vertex and
|
71
|
+
// fragment programs, supports coloured lights
|
72
|
+
technique
|
73
|
+
{
|
74
|
+
// do the lighting and bump mapping with parallax pass
|
75
|
+
pass
|
76
|
+
{
|
77
|
+
|
78
|
+
// Vertex program reference
|
79
|
+
vertex_program_ref OffsetMappingVP
|
80
|
+
{
|
81
|
+
param_named_auto lightPosition light_position_object_space 0
|
82
|
+
param_named_auto eyePosition camera_position_object_space
|
83
|
+
param_named_auto worldViewProj worldviewproj_matrix
|
84
|
+
}
|
85
|
+
|
86
|
+
// Fragment program
|
87
|
+
fragment_program_ref OffsetMappingPS
|
88
|
+
{
|
89
|
+
param_indexed_auto 0 light_diffuse_colour 0
|
90
|
+
param_indexed_auto 1 light_specular_colour 0
|
91
|
+
// Parallax Height scale and bias
|
92
|
+
param_indexed 2 float4 0.04 -0.02 1 0
|
93
|
+
}
|
94
|
+
|
95
|
+
// Normal + height(alpha) map
|
96
|
+
texture_unit
|
97
|
+
{
|
98
|
+
texture rockwall_NH.tga
|
99
|
+
tex_coord_set 0
|
100
|
+
}
|
101
|
+
|
102
|
+
// Base diffuse texture map
|
103
|
+
texture_unit
|
104
|
+
{
|
105
|
+
texture rockwall.tga
|
106
|
+
tex_coord_set 1
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
// Simple no-shader fallback
|
112
|
+
technique
|
113
|
+
{
|
114
|
+
pass
|
115
|
+
{
|
116
|
+
// Base diffuse texture map
|
117
|
+
texture_unit
|
118
|
+
{
|
119
|
+
texture rockwall.tga
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,139 @@
|
|
1
|
+
CubeMappingOverlay
|
2
|
+
{
|
3
|
+
zorder 500
|
4
|
+
// Stats block
|
5
|
+
container BorderPanel(Core/CubeMappingPanel)
|
6
|
+
{
|
7
|
+
metrics_mode pixels
|
8
|
+
vert_align top
|
9
|
+
left 5
|
10
|
+
top 5
|
11
|
+
width 250
|
12
|
+
height 130
|
13
|
+
material Core/StatsBlockCenter
|
14
|
+
border_size 1 1 1 1
|
15
|
+
border_material Core/StatsBlockBorder
|
16
|
+
border_topleft_uv 0.0000 1.0000 0.0039 0.9961
|
17
|
+
border_top_uv 0.0039 1.0000 0.9961 0.9961
|
18
|
+
border_topright_uv 0.9961 1.0000 1.0000 0.9961
|
19
|
+
border_left_uv 0.0000 0.9961 0.0039 0.0039
|
20
|
+
border_right_uv 0.9961 0.9961 1.0000 0.0039
|
21
|
+
border_bottomleft_uv 0.0000 0.0039 0.0039 0.0000
|
22
|
+
border_bottom_uv 0.0039 0.0039 0.9961 0.0000
|
23
|
+
border_bottomright_uv 0.9961 0.0039 1.0000 0.0000
|
24
|
+
|
25
|
+
element TextArea(CubeMapping/Displacement)
|
26
|
+
{
|
27
|
+
metrics_mode pixels
|
28
|
+
left 5
|
29
|
+
top 5
|
30
|
+
width 90
|
31
|
+
height 30
|
32
|
+
font_name BlueHighway
|
33
|
+
char_height 16
|
34
|
+
caption [1/2] Displacement:
|
35
|
+
colour_top 0.5 0.7 0.5
|
36
|
+
colour_bottom 0.3 0.5 0.3
|
37
|
+
}
|
38
|
+
|
39
|
+
element TextArea(CubeMapping/Density)
|
40
|
+
{
|
41
|
+
metrics_mode pixels
|
42
|
+
left 5
|
43
|
+
top 20
|
44
|
+
width 90
|
45
|
+
height 30
|
46
|
+
font_name BlueHighway
|
47
|
+
char_height 16
|
48
|
+
caption [3/4] Noise density:
|
49
|
+
colour_top 0.5 0.7 0.5
|
50
|
+
colour_bottom 0.3 0.5 0.3
|
51
|
+
}
|
52
|
+
|
53
|
+
element TextArea(CubeMapping/TimeDensity)
|
54
|
+
{
|
55
|
+
metrics_mode pixels
|
56
|
+
left 5
|
57
|
+
top 35
|
58
|
+
width 90
|
59
|
+
height 30
|
60
|
+
font_name BlueHighway
|
61
|
+
char_height 16
|
62
|
+
caption [5/6] Time density:
|
63
|
+
colour_top 0.5 0.7 0.5
|
64
|
+
colour_bottom 0.3 0.5 0.3
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
element TextArea(CubeMapping/Noise)
|
69
|
+
{
|
70
|
+
metrics_mode pixels
|
71
|
+
left 5
|
72
|
+
top 50
|
73
|
+
width 90
|
74
|
+
height 30
|
75
|
+
font_name BlueHighway
|
76
|
+
char_height 16
|
77
|
+
caption [N] Noise: _not_set_
|
78
|
+
colour_top 0.5 0.7 0.5
|
79
|
+
colour_bottom 0.3 0.5 0.3
|
80
|
+
}
|
81
|
+
|
82
|
+
element TextArea(CubeMapping/Material)
|
83
|
+
{
|
84
|
+
metrics_mode pixels
|
85
|
+
left 5
|
86
|
+
top 65
|
87
|
+
width 90
|
88
|
+
height 30
|
89
|
+
font_name BlueHighway
|
90
|
+
char_height 16
|
91
|
+
caption [M] Material: *UNIMPLEMENTED*
|
92
|
+
colour_top 0.5 0.7 0.5
|
93
|
+
colour_bottom 0.3 0.5 0.3
|
94
|
+
}
|
95
|
+
|
96
|
+
element TextArea(CubeMapping/Object)
|
97
|
+
{
|
98
|
+
metrics_mode pixels
|
99
|
+
left 5
|
100
|
+
top 80
|
101
|
+
width 90
|
102
|
+
height 30
|
103
|
+
font_name BlueHighway
|
104
|
+
char_height 16
|
105
|
+
caption [O] Object:
|
106
|
+
colour_top 0.5 0.7 0.5
|
107
|
+
colour_bottom 0.3 0.5 0.3
|
108
|
+
}
|
109
|
+
|
110
|
+
element TextArea(CubeMapping/CubeMap)
|
111
|
+
{
|
112
|
+
metrics_mode pixels
|
113
|
+
left 5
|
114
|
+
top 95
|
115
|
+
width 90
|
116
|
+
height 30
|
117
|
+
font_name BlueHighway
|
118
|
+
char_height 16
|
119
|
+
caption [C] CubeMap:
|
120
|
+
colour_top 0.5 0.7 0.5
|
121
|
+
colour_bottom 0.3 0.5 0.3
|
122
|
+
}
|
123
|
+
|
124
|
+
element TextArea(CubeMapping/Random)
|
125
|
+
{
|
126
|
+
metrics_mode pixels
|
127
|
+
left 5
|
128
|
+
top 110
|
129
|
+
width 90
|
130
|
+
height 30
|
131
|
+
font_name BlueHighway
|
132
|
+
char_height 16
|
133
|
+
caption [SPACE] Go random!
|
134
|
+
colour_top 0.5 0.7 0.5
|
135
|
+
colour_bottom 0.3 0.5 0.3
|
136
|
+
}
|
137
|
+
|
138
|
+
}
|
139
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Mesh=ogrehead.mesh
|
2
|
+
# missing material
|
3
|
+
#Mesh=geosphere4500.mesh
|
4
|
+
# works but crashes (seg fault)
|
5
|
+
Mesh=razor.mesh
|
6
|
+
# works but crashes (seg fault)
|
7
|
+
Mesh=knot.mesh
|
8
|
+
# works but crashes (seg fault)
|
9
|
+
Mesh=RZR-002.mesh
|
10
|
+
# missing material
|
11
|
+
#Mesh=geosphere8000.mesh
|
12
|
+
|
13
|
+
Mesh=sphere.mesh
|
14
|
+
|
15
|
+
CubeMap=cubescene.jpg
|
16
|
+
CubeMap=early_morning.jpg
|
17
|
+
CubeMap=cubemap.jpg
|
18
|
+
CubeMap=morning.jpg
|
19
|
+
CubeMap=cloudy_noon.jpg
|
20
|
+
CubeMap=evening.jpg
|
21
|
+
CubeMap=stormy.jpg
|
22
|
+
CubeMap=stevecube.jpg
|
@@ -6,8 +6,10 @@ FileSystem=./media/
|
|
6
6
|
FileSystem=./media/materials
|
7
7
|
FileSystem=./media/materials/textures
|
8
8
|
FileSystem=./media/materials/scripts
|
9
|
+
FileSystem=./media/materials/programs
|
9
10
|
FileSystem=./media/models
|
10
11
|
FileSystem=./media/particles
|
12
|
+
FileSystem=./media/overlays
|
11
13
|
Zip=./media/packs/skybox.zip
|
12
14
|
Zip=./media/packs/dragon.zip
|
13
15
|
Zip=./media/packs/cubemap.zip
|