打飛機遊戲場景背景設計一般很簡單,由於角色敵人道具等都不與背景發生交互事件。開發者只須要根據設定的遊戲類型,爲遊戲製做背景,模擬一個大環境便可。動畫
材質UV動畫,實現背景圖片的滾屏循環。網站
步驟1:spa
建立背景載體。建立立方體->適當縮放物體,使物體形狀上接近長方形,這樣正面在視覺上接近豎版手機屏幕。設計
步驟2:SS3d
建立背景材質球。項目視圖中建立材質球->將材質球賦給步驟1建立的cube物體->將材質球命名爲UVAnim。code
步驟3:orm
3.1爲材質球設置Shader文件。將製做好的UV循環播放的Shader文件,導入到項目視圖中。這裏須要注意,引擎對shader文件識別有必定命名條件,命名原則實例: Common_Diffuse_UVani.wjshader,其中只有VUani能夠自由命名。選擇UVAnim,common->Diffuse->UVani.wjshader,以下圖2-3-1-1所示。htm
3.2屏幕的滾屏最終效果,屏幕一直像下滾動播放,shader文件以下所示,滾屏效果如圖2-3-2-1所示。遊戲
shader文件代碼:事件
01 |
WJShader "Surface_Surface_Diffuse" |
02 |
{ |
03 |
Parameters |
04 |
{ |
05 |
Vector [_diffuseColor]<diffuse color= "" > = "1.0, 1.0, 1.0, 1.0" |
06 |
sampler2D [_diffuseMap]<diffuse map= "" (rgb)= "" > = "sys:white.dds" |
07 |
Vector [_speed] = "0.1, 0.1, 0.1, 0.1" |
08 |
} |
09 |
RenderQueue "Opaque" |
10 |
Technique "Surface_Surface_Diffuse" |
11 |
{ |
12 |
Pass |
13 |
{ |
14 |
RenderSTATE |
15 |
{ |
16 |
cullMode "Back" |
17 |
POLYGONMODE "Fill" |
18 |
ZTest On |
19 |
ZWrite On |
20 |
blendMode Off |
21 |
alphatest Off |
22 |
samplerState "g_LightLitMap" [Clamp] [Point] |
23 |
samplerState "_diffuseMap" [Wrap] [Linear] |
24 |
samplerState "g_Lightmap" [Clamp] [Linear] |
25 |
} |
26 |
27 |
CGCODESTART |
28 |
#pragma surface surfMain customlight lightmap:on |
29 |
sampler2D _diffuseMap; |
30 |
float4 _diffuseColor; |
31 |
float4 _speed; |
32 |
struct INPUT |
33 |
{ |
34 |
float2 _diffuseMap_UV; |
35 |
float3 input_Normal; |
36 |
} |
37 |
38 |
float4 customlight(SURFACE_OUTPUT sin, float3 viewDir, float lightAtten) |
39 |
{ |
40 |
float4 diffuse = float4(0.0,0.0,0.0,0.0); |
41 |
float4 specular = float4(0.0,0.0,0.0,0.0); |
42 |
Forward_Shading(sin.Normal,viewDir,sin.Shininess,diffuse,specular,lightAtten); |
43 |
float4 c = diffuse * sin.Diffuse; |
44 |
return c; |
45 |
} |
46 |
void surfMain(INPUT p, inout SURFACE_OUTPUT o) |
47 |
{ |
48 |
p._diffuseMap_UV.x += _speed.x*g_Time; |
49 |
p._diffuseMap_UV.y += _speed.y*g_Time; |
50 |
o.Diffuse.xyz = tex2D(_diffuseMap,p._diffuseMap_UV).xyz*_diffuseColor.xyz; |
51 |
o.Diffuse.w = 1.0f; |
52 |
o.Alpha = 1.0f; |
53 |
o.Specular = float4(0.0f,0.0f,0.0f,0.0f); |
54 |
o.Normal = float4 ( normalize(mul(g_InvTransModel, float4(p.input_Normal, 1.0f)).xyz), 0.0f ); |
55 |
o.Shininess = 1.0f; |
56 |
} |
57 |
CGCODEEND |
58 |
} |
59 |
} |
60 |
}</diffuse></diffuse> |
引擎官方網站:http://www.genesis-3d.com.cn/
官方論壇:http://bbs.9tech.cn/genesis-3d/
官方千人大羣:59113309 135439306
YY頻道-遊戲開發大講堂(徹底免費,按期開課):51735288
Genesis-3D開源遊戲引擎:遊戲起源,皆因有我!!!