注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第3版)

Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第3版)

Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第3版)

定 價:¥79.00

作 者: 郭浩瑜,張鶴 著
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115505408 出版時間: 2019-11-01 包裝: 平裝
開本: 16開 頁數(shù): 251 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi) 容 提 要本書全面講解了Unity Shader渲染的實用技術(shù),分為5篇,共31章。主要內(nèi)容有著色器的概念和渲染流水線,渲染原理和圖形存儲器,Unity中著色器的形態(tài),著色器中用到的各種空間概念,基本的光照模型,通道,前向渲染路徑,基于光照貼圖的烘焙照明,柔和的低頻照明,各種陰影,通道的通用指令開關(guān),固定流水線,表面著色器,常用的材質(zhì),霧的計算,物體的分割,自定義光源,高級效果,以及著色器的組織和復(fù)用,渲染優(yōu)化等。本書適合移動開發(fā)者、游戲開發(fā)者、程序員閱讀,也可作為大專院校相關(guān)專業(yè)的師生用書以及培訓(xùn)學(xué)校的教材。

作者簡介

  郭浩瑜,社區(qū)的技術(shù)分享者,Unity資深開發(fā)者,在游戲開發(fā)、Unity3D、特效開發(fā)上具有很高技術(shù)水平。

圖書目錄

目  錄
第 1篇 初識廬山真面目—
Unity 3D著色器
第 1章 著色器的概念和渲染流水線 2
1.1 著色器的概念 2
1.1.1 虛擬世界中的光明和色彩 2
1.1.2 游戲開發(fā)人員的巔峰 2
1.1.3 著色器簡史 2
1.1.4 著色器的實例化 3
1.1.5 著色器的實現(xiàn)語言 3
1.1.6 Unity中的著色器編程 4
1.2 渲染流水線 4
1.2.1 渲染流水線簡介 4
1.2.2 渲染流水線階段 5
1.3 渲染流水線執(zhí)行階段 6
1.3.1 輸入裝配階段 6
1.3.2 頂點著色器 8
1.3.3 細(xì)化階段 8
1.3.4 幾何著色器 9
1.3.5 流輸出階段 10
1.3.6 片元著色器 10
1.3.7 輸出合并階段 11
1.4 其他一些細(xì)節(jié) 11
1.4.1 延遲渲染和前向渲染 11
1.4.2 批次合并渲染 13
第 2章 渲染原理和圖形存儲器 14
2.1 渲染原理 14
2.1.1 立即模式渲染 14
2.1.2 基于區(qū)塊的(延遲)渲染 16
2.2 圖形存儲器 18
2.2.1 GPU的存儲系統(tǒng)層次體系 19
2.2.2 數(shù)據(jù)結(jié)構(gòu) 20
2.2.3 渲染所需的數(shù)據(jù)結(jié)構(gòu) 23
2.2.4 合并批次渲染原理回顧 23
第3章 Unity中著色器的形態(tài) 25
3.1 Unity通過ShaderLab來組織著色器 25
3.1.1 關(guān)鍵字Shader 25
3.1.2 使用子著色器組織著色器的
不同實現(xiàn) 25
3.1.3 子著色器的重要標(biāo)簽 25
3.1.4 子著色器中的Pass塊 26
3.1.5 Pass塊的標(biāo)簽及其名字的
意義 26
3.1.6 使用FallBack語句保證
著色器的廣泛適應(yīng)性 27
3.2 Unity支持的著色器編程語言 27
3.3 Unity中著色器的3種形態(tài) 27
3.3.1 固定流水線 27
3.3.2 可編程著色器 28
3.3.3 ShaderLab中的表面著色器 29
3.4 著色器的數(shù)據(jù)接口—屬性和uniform
變量 31
3.4.1 在Properties塊中定義屬性 31
3.4.2 通過圖形界面操作屬性 31
3.4.3 通過腳本操控屬性 31
3.4.4 矩陣—不能在屬性塊中
定義的變量 32
3.4.5 在Cg代碼中使用屬性 32
第4章 著色器中用到的各種空間概念 33
4.1 模型空間 33
4.1.1 為什么用模型空間 33
4.1.2 在腳本和著色器中進(jìn)出模型
空間 33
4.2 世界坐標(biāo)空間 33
4.2.1 統(tǒng)一的坐標(biāo)空間—世界坐標(biāo)
空間 33
4.2.2 在腳本和著色器中進(jìn)出世界
坐標(biāo)空間 34
4.3 視空間 34
4.3.1 渲染的需要—視空間 34
4.3.2 在腳本和著色器中進(jìn)出視
空間 34
4.4 空間的一塊—視錐體 34
4.5 剪切空間 35
4.5.1 投影 35
4.5.2 腳本和著色器中的投影矩陣 35
4.5.3 驗證NDC 35
4.6 NDC之后 36
第5章 基本的光照模型 37
5.1 光源對物體照明的分類 37
5.1.1 間接照明 37
5.1.2 直接照明 37
5.2 亮度的計算方式—光照模型 37
5.2.1 漫反射和Lambert 37
5.2.2 鏡面高光和Phong 38
5.2.3 半角向量和BlinnPhong 38
第 2篇 讓應(yīng)用更炫彩—
Unity中的照明
第6章 第 一個執(zhí)行的通道 42
6.1 不同的LightMode被選擇的順序 42
6.1.1 渲染路徑和通道的LightMode標(biāo)簽 42
6.1.2 設(shè)計可以檢測渲染路徑的
材質(zhì) 42
6.1.3 設(shè)計便于檢測渲染路徑的
場景 43
6.1.4 觀察那些渲染的通道 43
6.2 3個渲染路徑之外的處理方式 45
6.2.1 LightMode的其他值 45
6.2.2 設(shè)計檢測用的材質(zhì) 45
第7章 前向渲染路徑 47
7.1 渲染物體—ForwardBase和
ForwardAdd 47
7.1.1 設(shè)計檢測用的場景和材質(zhì) 47
7.1.2 ForwardBase和ForwardAdd的
表現(xiàn) 48
7.2 前向渲染路徑下的光源 48
7.2.1 設(shè)計檢測用的材質(zhì) 48
7.2.2 光源的情況 48
7.2.3 Unity如何為前向渲染路徑
設(shè)置光源 49
第8章 基于光照貼圖的烘焙照明 50
8.1 烘焙的維度和屬性矩陣 50
8.2 光照貼圖 50
8.2.1 測試烘焙的場景 51
8.2.2 烘焙之后的場景 52
8.2.3 雙光照貼圖 52
8.3 在效果和性能間進(jìn)行權(quán)衡 52
8.3.1 影響全局的Resolution選項 53
8.3.2 單個物體的選項 53
第9章 柔和的低頻照明 55
9.1 初識光照探頭 55
9.1.1 光照探頭照明的優(yōu)點 55
9.1.2 檢測光照探頭照明的場景 55
9.1.3 使用光照探頭組進(jìn)行管理 57
9.1.4 烘焙場景光照信息到光照
探頭中 57
9.1.5 對比光照探頭照明和實時
照明 58
9.2 放置光照探頭的注意事項 59
9.2.1 必須形成一個體積 59
9.2.2 單個光照探頭必須處于采樣
光源的照射范圍 59
9.3 照明采樣的Anchor Override 59
9.3.1 動態(tài)更新光照探頭 59
9.3.2 基于線性插值的采樣 59
9.3.3 改變默認(rèn)的插值位置 59
9.4 光照探頭照明和陰影 60
9.4.1 光照探頭和光照貼圖的
異同 60
9.4.2 烘焙陰影時可能會犯的錯誤 61
9.4.3 將靜態(tài)物體的陰影烘焙到
光照探頭上 61
9.4.4 光照探頭照明和實時陰影的
混合 62
9.5 烘焙一個色彩豐富的場景 62
9.6 在自己的材質(zhì)中使用光照探頭 63
9.6.1 為前向渲染路徑中的材質(zhì)計算
光照探頭 63
9.6.2 使用ShadeSH9函數(shù) 64
9.6.3 在一個表面著色器中進(jìn)行
計算 65
9.7 LPPV的設(shè)計目的 66
9.7.1 LPPV是什么 66
9.7.2 照明的場景 66
第3篇 使應(yīng)用更逼真—陰影
第 10章 平面陰影 70
10.1 平行光對平面的投影 70
10.1.1 對平行光投影的考慮 70
10.1.2 進(jìn)出陰影接受平面的矩陣 70
10.1.3 使用三角形相似計算陰影 71
10.2 點光源對平面的投影 72
10.3 陰影的淡出 73
10.3.1 有效利用平面陰影計算
過程中的數(shù)據(jù) 73
10.3.2 潛在的問題 74
第 11章 球體陰影 75
11.1 平行光對球體的投影 75
11.1.1 投影球體的信息 75
11.1.2 使用相似三角形計算投影 75
11.2 陰影的淡入/淡出 76
11.3 點光源對球體的投影 77
第 12章 體積陰影 78
12.1 將頂點沿某一方向擠出 78
12.1.1 在Vertex函數(shù)中操作 78
12.1.2 判斷頂點是向光還是背光 79
12.2 從體積中找到陰影區(qū)域 79
12.2.1 兩次擠出 79
12.2.2 計算出陰影區(qū)域 80
12.2.3 渲染陰影 80
12.2.4 需要注意的問題 80
第 13章 陰影映射 82
13.1 燈光空間和相機(jī)空間 82
13.1.1 觀察兩個空間 82
13.1.2 兩個視角的Z深度 82
13.1.3 渲染Z深度的材質(zhì) 83
13.2 投射Z深度 83
13.2.1 準(zhǔn)備燈光視角的投影矩陣 83
13.2.2 在材質(zhì)中計算投影后的Z
深度 84
13.3 比較Z深度 85
13.3.1 比較Z深度的材質(zhì) 85
13.3.2 Z深度的精度引起的問題 87
13.3.3 提高Z深度的精度 87
13.3.4 對Z深度值進(jìn)行偏移 88
第 14章 內(nèi)置的陰影 89
14.1 Unity實時陰影的原理 89
14.1.1 基本原理 89
14.1.2 軟陰影 89
14.2 投射陰影 90
14.2.1 使用ShadowCaster投射
陰影 90
14.2.2 在ShadowCaster里都做了
什么 91
14.2.3 寫一個自己的ShadowCaster 91
14.2.4 改變ShadowCaster的行為 92
14.2.5 陰影和FallBack機(jī)制 92
14.3 接受陰影 94
14.4 表面著色器和陰影 94
14.4.1 表面著色器的陰影和
Fallback 94
14.4.2 表面著色器里的燈光參數(shù)和
陰影 95
14.4.3 表面著色器對前向渲染路徑下
陰影的支持 95
14.5 陰影的批處理 96
14.5.1 批處理陰影的好處 96
14.5.2 簡單的Caster 97
14.5.3 靜態(tài)陰影的批處理 98
14.5.4 動態(tài)陰影的批處理 100
第4篇 Unity中的各種著色器
第 15章 通道的通用指令開關(guān) 104
15.1 使用LOD在運(yùn)行時決定材質(zhì) 104
15.1.1 材質(zhì)的LOD 104
15.1.2 在運(yùn)行時設(shè)定單個材質(zhì)的
LOD 104
15.1.3 設(shè)定全局所有材質(zhì)的
LOD 105
15.2 渲染隊列 106
15.2.1 標(biāo)簽隊列和渲染順序 106
15.2.2 渲染隊列和ZTest判斷 107
15.2.3 Unity中內(nèi)置的渲染隊列 107
15.2.4 一個利用渲染隊列的例子 107
15.3 透明的產(chǎn)生 108
15.3.1 Alpha檢測和8種比較
條件 108
15.3.2 生成著色器的內(nèi)容 108
15.3.3 結(jié)合AlphaTest和Blend
操作 109
15.4 混合操作及其應(yīng)用 110
15.4.1 混合操作 110
15.4.2 生成著色器的代碼 110
15.4.3 檢測不同的混合操作 110
15.4.4 BlendOp選項 111
15.4.5 檢測BlendOp操作 112
15.4.6 兩個使用Blend生成的
效果 112
15.5 使用ColorMask 114
15.5.1 ColorMask的作用 114
15.5.2 檢測ColorMask 114
15.5.3 一個使用ColorMask的
例子 115
15.6 深度測試 116
15.6.1 存取場景的深度測試 116
15.6.2 RenderType標(biāo)簽和與生成
深度測試的關(guān)聯(lián) 116
15.6.3 內(nèi)置RenderType的值 117
15.6.4 前向渲染路徑下的
深度測試 117
15.7 Z深度的偏移量 118
15.7.1 干預(yù)正常深度測試的手段 118
15.7.2 觀察偏移量在不同應(yīng)用
條件下的表現(xiàn) 118
15.8 面的剔除操作 118
15.9 自動生成貼圖的坐標(biāo) 119
15.9.1 ObjectLinear和等價的
Cg代碼 119
15.9.2 EyeLinear和等價的
Cg代碼 120
15.9.3 SphereMap和等價的
Cg代碼 121
15.9.4 CubeReflect和等價的
Cg代碼 122
15.9.5 CubeNormal和等價的
Cg代碼 122
15.10 抓屏操作 123
15.10.1 如何使用GrabPass 123
15.10.2 一個模擬曲面反射的
例子 124
15.11 霧效 124
15.11.1 霧效和Unity的3種
實現(xiàn) 124
15.11.2 材質(zhì)中對霧效的控制 125
15.11.3 實現(xiàn)自己的霧效 126
15.12 蒙版 128
15.12.1 蒙版測試、Z深度和
Alpha測試 128
15.12.2 使用蒙版測試改變渲染
結(jié)果 128
15.12.3 綜合使用蒙版和隊列 128
第 16章 固定流水線 130
16.1 Unity中的固定流水線 130
16.1.1 固定流水線基本形態(tài) 130
16.1.2 與照明相關(guān)的Material塊 130
16.1.3 處理紋理的SetTexture塊 131
16.1.4 流水線基本形態(tài)的另一種
寫法 131
16.1.5 Combine語句 131
16.2 使用頂點色 132
16.2.1 使用ColorMaterial 132
16.2.2 使用Bind 132
16.3 在固定流水線中使用光照貼圖 132
16.4 嵌套Cg代碼 133
第 17章 表面著色器 134
17.1 表面著色器的適應(yīng)性 134
17.1.1 一個分析策略 134
17.1.2 測試用的場景 134
17.1.3 檢測結(jié)果 135
17.2 延遲渲染和GeoBuffer 135
17.3 表面著色器的特殊性 136
17.3.1 表面著色器的混合和透明 136
17.3.2 自定義Vertex函數(shù) 137
第 18章 凹凸材質(zhì) 139
18.1 切空間 139
18.2 凹凸貼圖 139
18.2.1 計算到切空間的矩陣 139
18.2.2 Unity中法線貼圖的壓縮
格式 140
18.2.3 使用切空間矩陣的另一種
方法 140
18.2.4 Unity對切空間計算的
支持 141
18.2.5 解壓縮法線貼圖的函數(shù) 141
18.2.6 在切空間中計算高光 142
18.2.7 表面著色器和切空間 142
18.3 視差映射 143
18.3.1 視差映射及其別名 143
18.3.2 一個使用灰度圖來
偏移UV的材質(zhì) 143
18.3.3 結(jié)合法線貼圖 145
18.3.4 用視角來決定UV偏移量 145
18.3.5 一個完整的實現(xiàn) 146
18.4 地勢映射 147
18.4.1 視差映射的極限和地勢映射的
面世 147
18.4.2 地勢映射的算法 148
18.4.3 一個完整的實現(xiàn) 148
第 19章 卡通材質(zhì) 151
19.1 描邊 151
19.1.1 沿法線擠出輪廓 151
19.1.2 容易產(chǎn)生的問題 152
19.1.3 在視空間中擠出 152
19.1.4 頂點位置的另一個含義 153
19.1.5 調(diào)和法線和頂點方向 154
19.1.6 判斷頂點的指向 154
19.1.7 不僅僅是輪廓 155
19.1.8 通過Z偏移量來描邊 158
19.2 卡通著色 158
19.2.1 對光照進(jìn)行離散化 158
19.2.2 使用2D貼圖重新映射
光照 160
第 20章 鏡面材質(zhì) 162
20.1 鏡像一個相機(jī) 162
20.1.1 鏡子里的世界和我的計劃 162
20.1.2 在腳本中對位置和角度進(jìn)行
鏡像 162
20.2 使用鏡像相機(jī)來渲染和投影 163
20.2.1 鏡面材質(zhì)的工作—采樣被
投影的渲染結(jié)果 163
20.2.2 腳本的工作—渲染鏡像相機(jī)
和設(shè)置投影矩陣 164
20.3 鏡像相機(jī)的近剪切平面和
傾斜矩陣 164
20.3.1 調(diào)節(jié)近剪切平面 164
20.3.2 使用傾斜矩陣微調(diào)視錐體 165
第 21章 透明和半透明材質(zhì) 166
21.1 半透明材質(zhì) 166
21.2 化繁為簡 166
21.3 透明材質(zhì) 167
第 22章 體積霧 170
22.1 距離的表達(dá)—相對于背景的
體積霧 170
22.1.1 需要計算的東西 170
22.1.2 使用一個通道來完成所有的
計算 170
22.1.3 黑色的霧效 171
22.2 厚度的表達(dá)—物體形體的
體積霧 172
22.2.1 必須計算的兩個數(shù)據(jù) 172
22.2.2 在Unity中使用一個通道來
完成所有計算 172
第 23章 面積光 175
23.1 線光源 175
23.1.1 點、線、面 175
23.1.2 如何理解一個線光源 175
23.1.3 通過腳本傳遞線光源的
幾何信息 175
23.1.4 計算線光源的照明 176
23.1.5 線光源的輻射方向 177
23.1.6 線光源的衰減 178
23.2 面積光源 179
23.2.1 面積光和線光源的不同 179
23.2.2 通過腳本設(shè)定面積光的
幾何特性 179
23.2.3 計算面積光 179
23.2.4 和默認(rèn)照明的整合 181
第 24章 體積光 183
24.1 體積光和體積陰影 183
24.1.1 體積光 183
24.1.2 體積光和體積陰影的關(guān)系 183
24.2 實現(xiàn)體積光 183
24.2.1 在著色器中表現(xiàn)體積光 183
24.2.2 腳本的幫助 184
第 25章 材質(zhì)替代渲染 186
25.1 相機(jī)和渲染消息 186
25.1.1 相機(jī)的渲染消息發(fā)送順序 186
25.1.2 最后能改變Cull操作結(jié)果的
地方 186
25.1.3 最后能設(shè)置材質(zhì)數(shù)據(jù)的
地方 187
25.2 如何使用RenderWithShader方法 187
25.2.1 標(biāo)簽值不同的5個著色器 187
25.2.2 調(diào)用RenderWithShader
方法的腳本 189
25.2.3 替換用的5個材質(zhì) 190
25.2.4 檢測RenderWithShader
方法的效果 191
25.2.5 使用子著色器組織替代
材質(zhì) 191
25.2.6 如何設(shè)置替代材質(zhì)的屬性 192
25.2.7 將結(jié)果輸出到屏幕上 192
25.3 SetReplacementShader和
ResetReplacementShader與
RenderWithShader方法的異同 193
第 26章 后期效果 194
26.1 Graphics的兩個方法 194
26.1.1 與相機(jī)渲染方法的不同
之處 194
26.1.2 Blit方法的簡單示例 194
26.1.3 使用BlitMultiTap方法進(jìn)行
多重采樣 195
26.2 一個簡單的調(diào)色 199
26.2.1 調(diào)色用的腳本 199
26.2.2 調(diào)色用的材質(zhì) 200
26.2.3 更高效的做法 201
26.3 景深 203
26.3.1 用于模糊圖像的材質(zhì) 203
26.3.2 進(jìn)行縱橫兩次模糊操作 204
26.3.3 進(jìn)行混合操作的腳本 204
26.3.4 進(jìn)行混合操作的材質(zhì) 205
26.3.5 提供一個可調(diào)節(jié)參數(shù) 206
26.4 輪廓檢測 206
26.4.1 用腳本獲得場景的Z深度和
法線 207
26.4.2 在材質(zhì)中進(jìn)行邊緣檢測 207
26.5 扭曲 208
26.5.1 通過UV操作扭曲圖像 208
26.5.2 限定扭曲的區(qū)域 209
26.5.3 使用物體來做遮罩 210
26.6 運(yùn)動模糊 213
26.6.1 如何記錄運(yùn)動軌跡 213
26.6.2 實現(xiàn)運(yùn)動模糊的材質(zhì) 213
26.6.3 用于完成整個過程的腳本 214
26.6.4 通過Alpha和幀的混合操作
實現(xiàn)運(yùn)動模糊 215
26.7 噪波 215
26.7.1 根據(jù)Z深度來混合噪波 216
26.7.2 根據(jù)明暗程度來混合噪波 217
26.8 色彩的溢出 217
26.8.1 色彩溢出的算法考量 218
26.8.2 實現(xiàn)色彩溢出的采樣計算 218
第 27章 投影 220
27.1 Unity的Projector 220
27.1.1 Projector中材質(zhì)的執(zhí)行
順序 220
27.1.2 如何寫Projector使用的
材質(zhì) 220
27.1.3 控制投影淡進(jìn)淡出的矩陣 221
27.2 實現(xiàn)自己的投影 222
27.2.1 設(shè)定投影矩陣的腳本 222
27.2.2 采樣投影的材質(zhì) 223
27.2.3 直接投影到屏幕上 224
第 28章 分割一個物體 225
28.1 分割一個物體的思路 225
28.1.1 我們需要什么樣的信息 225
28.1.2 腳本的幫助 225
28.2 在著色器中剪切一個物體 225
第5篇 著色器的組織和優(yōu)化
第 29章 著色器的組織和復(fù)用 228
29.1 cginc文件 228
29.1.1 Unity的UnityCG.cginc
文件 228
29.1.2 定義自己的cginc文件 228
29.1.3 使用自定義的cginc文件 229
29.2 通過UsePass來復(fù)用通道 229
29.2.1 定義自己要復(fù)用的通道 229
29.2.2 復(fù)用這些通道 230
29.3 定義著色器的關(guān)鍵字 231
29.3.1 使用關(guān)鍵字改變著色器的
行為 231
29.3.2 自定義著色器的關(guān)鍵字 231
29.4 使用multi_compile編譯著色器的
多個版本 232
29.4.1 使用multi_compile實現(xiàn)多次
編譯 232
29.4.2 在腳本中選擇著色器的
版本 232
29.4.3 使用自定義的材質(zhì)編輯器 233
29.4.4 MaterialEditor 233
29.5 Unity對DX11支持所帶來的
問題 234
第30章 基本的渲染概念 236
30.1 逐頂點計算和逐像素計算 236
30.1.1 逐頂點計算 236
30.1.2 逐像素計算 236
30.1.3 如何在這兩個概念中
取舍 236
30.2 繪制調(diào)用的意義 236
30.2.1 繪制調(diào)用的概念 236
30.2.2 正確理解繪制調(diào)用對開發(fā)
應(yīng)用的意義 236
30.2.3 合批的概念和Unity為優(yōu)化
繪制調(diào)用所做的工作 237
30.2.4 優(yōu)化繪制調(diào)用 237
30.3 利用渲染隊列的技巧 237
30.3.1 渲染隊列的概念 237
30.3.2 設(shè)置渲染隊列的技巧 237
第31章 渲染優(yōu)化 238
31.1 渲染優(yōu)化的元素 238
31.2 小型物體的優(yōu)化 238
31.3 中型物體的優(yōu)化 240
31.4 大型物體的優(yōu)化 241
31.5 模型的優(yōu)化 242
31.6 地形的優(yōu)化 243
31.7 UI的優(yōu)化 246
31.8 物理引擎 248
31.9 慎用后期效果 248
31.10 慎用透明效果 248
31.11 其他 248
31.12 移動平臺的特點 249
31.12.1 一些指令的運(yùn)算速度 249
31.12.2 幾何復(fù)雜度 249
31.12.3 貼圖的問題 249
31.12.4 數(shù)據(jù)類型的使用方式 250
31.12.5 變量的使用 251
附錄 相關(guān)資源 252

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號