欢迎来到传世资源网!
加载中...
正在加载,请耐心等待...

GPU Pro 6.pdf

8.5玩家评分(1人评分)
详细介绍 最新评论 链接失效反馈

GPU Pro6 经典书籍from clipboardContentsAcknowledgments xvWeb Materials xviiI Geometry Manipulation 1Wolfgang Engel1 Dynamic GPU Terrain 3David Pangerl1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Terrain Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Dynamic Modification . . . . . . . . . . . . . . . . . . . . . . . 111.6 Physics Synchronization . . . . . . . . . . . . . . . . . . . . . . 131.7 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Bandwidth-Efficient Procedural Meshes in the GPU via Tessellation 19Gustavo Bastos Nunes and Jo˜ao Lucas Guberman Raza2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 Procedural Mesh and the Graphics Pipeline . . . . . . . . . . . 192.3 Hull Shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4 Domain Shader . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.5 Noise in Procedural Meshes . . . . . . . . . . . . . . . . . . . . 232.6 Performance Optimizations . . . . . . . . . . . . . . . . . . . . 232.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 25Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25vvi Contents3 Real-Time Deformation of Subdivision Surfaces on Object Collisions 27Henry Sch¨afer, Matthias Nießner, Benjamin Keinert, and Marc Stamminger3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 Deformable Surface Representation . . . . . . . . . . . . . . . . 293.3 Algorithm Overview . . . . . . . . . . . . . . . . . . . . . . . . 343.4 Pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.5 Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 49Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 Realistic Volumetric Explosions in Games 51Alex Dunn4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.2 Rendering Pipeline Overview . . . . . . . . . . . . . . . . . . . 524.3 Offline/Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . 524.4 Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.5 Visual Improvements . . . . . . . . . . . . . . . . . . . . . . . . 564.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.7 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624.9 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 62Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62II Rendering 63Christopher Oat1 Next-Generation Rendering in Thief 65Peter Sikachev, Samuel Delmont, Uriel Doyon, and Jean-Normand Bucci1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651.2 Reflections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661.3 Contact-Hardening Shadows . . . . . . . . . . . . . . . . . . . . 791.4 Lit Particles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851.5 Compute-Shader-Based Postprocessing . . . . . . . . . . . . . . 851.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881.7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 88Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Contents vii2 Grass Rendering and Simulation with LOD 91Dongsoo Han and Hongwei Li2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912.2 Render Grass Blades . . . . . . . . . . . . . . . . . . . . . . . . 922.3 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003 Hybrid Reconstruction Antialiasing 101Michal Drobot3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023.4 Hybrid Antialiasing Overview . . . . . . . . . . . . . . . . . . . 1043.5 Temporally Stable Edge Antialiasing . . . . . . . . . . . . . . . 1053.6 Temporal Super-Sampling . . . . . . . . . . . . . . . . . . . . . 1183.7 Temporal Antialiasing (TAA) . . . . . . . . . . . . . . . . . . . 1293.8 Final Implementation . . . . . . . . . . . . . . . . . . . . . . . 1323.9 Results Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 1333.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374 Real-Time Rendering of Physically Based Clouds UsingPrecomputed Scattering 141Egor Yusov4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.2 Light Transport Theory . . . . . . . . . . . . . . . . . . . . . . 1424.3 Precomputed Solutions . . . . . . . . . . . . . . . . . . . . . . . 1444.4 Volume-Aware Blending . . . . . . . . . . . . . . . . . . . . . . 1464.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.6 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . 1614.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1645 Sparse Procedural Volume Rendering 167Doug McNabb5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675.2 Overview of Current Techniques . . . . . . . . . . . . . . . . . 1675.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685.4 Metavoxels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1705.5 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1725.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180viii ContentsIII Lighting 181Michal Valient1 Real-Time Lighting via Light Linked List 183Abdul Bezrati1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831.3 Populating the Light Linked List . . . . . . . . . . . . . . . . . 1861.4 Accessing the Light Linked List . . . . . . . . . . . . . . . . . . 1901.5 Reduced Resolution . . . . . . . . . . . . . . . . . . . . . . . . 1911.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1932 Deferred Normalized Irradiance Probes 195John Huelin, Benjamin Rouveyrol, and Bartlomiej Wro´nski2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1952.2 Deferred Normalized Irradiance Probes Algorithm . . . . . . . 1982.3 Tool Side of the Algorithm . . . . . . . . . . . . . . . . . . . . 2022.4 Runtime Details of Algorithm . . . . . . . . . . . . . . . . . . . 2072.5 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . 2122.6 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 214Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2143 Volumetric Fog and Lighting 217Bartlomiej Wro´nski3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183.3 Volumetric Fog Algorithm . . . . . . . . . . . . . . . . . . . . . 2223.4 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . 2333.5 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 239Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2394 Physically Based Light Probe Generation on GPU 243Ivan Spogreev4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2434.2 Light Probes Theory . . . . . . . . . . . . . . . . . . . . . . . . 2444.3 Generating Light Probes on the GPU . . . . . . . . . . . . . . 2454.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634.5 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 265Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Contents ix5 Real-Time Global Illumination Using Slices 267Hugh Malan5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2675.2 Algorithm Overview . . . . . . . . . . . . . . . . . . . . . . . . 2685.3 Approximating the Irradiance Due to an Emissive Plane . . . . 2695.4 Building the Image Pyramid . . . . . . . . . . . . . . . . . . . . 2705.5 Combining Multiple Slices . . . . . . . . . . . . . . . . . . . . . 2795.6 Layered Heightfields . . . . . . . . . . . . . . . . . . . . . . . . 2815.7 Slice Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . 2835.8 Propagating Irradiance . . . . . . . . . . . . . . . . . . . . . . . 2895.9 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2905.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292IV Shadows 295Wolfgang Engel1 Practical Screen-Space Soft Shadows 297M´arton Tam´as and Viktor Heisenberger1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2971.3 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2981.4 Algorithm Overview . . . . . . . . . . . . . . . . . . . . . . . . 3001.5 Shadow Map Rendering Pass . . . . . . . . . . . . . . . . . . . 3011.6 Introducing Layers and Light Assignment . . . . . . . . . . . . 3011.7 Layered Penumbra Map Pass . . . . . . . . . . . . . . . . . . . 3041.8 Anisotropic Gaussian Blur Pass . . . . . . . . . . . . . . . . . . 3061.9 Lighting Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3081.10 Performance Considerations . . . . . . . . . . . . . . . . . . . . 3091.11 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3091.12 Quality Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3101.13 Performance Analysis . . . . . . . . . . . . . . . . . . . . . . . 3101.14 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3122 Tile-Based Omnidirectional Shadows 315Hawar Doghramachi2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3152.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3162.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 3172.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332x Contents2.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3362.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3382.7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 338Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3383 Shadow Map Silhouette Revectorization 341Vladimir Bondarev3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3413.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 3423.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3443.4 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3463.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347V Mobile Devices 349Marius Bjørge1 Hybrid Ray Tracing on a PowerVR GPU 351Gareth Morgan1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.2 Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.3 Combining Ray Tracing with Rasterization . . . . . . . . . . . 3551.4 Hard Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.5 Soft Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.6 Reflections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3591.7 Transparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3601.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3621.9 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3641.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3682 Implementing a GPU-Only Particle-Collision System with ASTC3D Textures and OpenGL ES 3.0 369Daniele Di Donato2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3692.2 GPU-Only Particle System . . . . . . . . . . . . . . . . . . . . 3702.3 Physics Simulation . . . . . . . . . . . . . . . . . . . . . . . . . 3722.4 Rendering the Particles . . . . . . . . . . . . . . . . . . . . . . 3792.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385Contents xi3 Animated Characters with Shell Fur for Mobile Devices 387Andrew Girdler and James L. Jones3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3873.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3873.3 Creating a Shell Fur Texture . . . . . . . . . . . . . . . . . . . 3883.4 Bone Batches or Single Pass? . . . . . . . . . . . . . . . . . . . 3893.5 Model Data and Setup . . . . . . . . . . . . . . . . . . . . . . . 3893.6 Animation with TF . . . . . . . . . . . . . . . . . . . . . . . . . 3913.7 Instancing for Fur Shells . . . . . . . . . . . . . . . . . . . . . . 3913.8 Lighting and Other Effects . . . . . . . . . . . . . . . . . . . . 3933.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3954 High Dynamic Range Computational Photography on Mobile GPUs 397Simon McIntosh-Smith, Amir Chohan, Dan Curran, and Anton Lokhmotov4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3974.2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3984.3 Tone-Mapping Operators . . . . . . . . . . . . . . . . . . . . . 4014.4 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4064.5 GPGPU Using OpenCL . . . . . . . . . . . . . . . . . . . . . . 4074.6 OpenGL ES and Android . . . . . . . . . . . . . . . . . . . . . 4114.7 Implementing an HDR Pipeline Using OpenCL and OpenGL ES 4124.8 Android Implementation . . . . . . . . . . . . . . . . . . . . . . 4214.9 Performance of Our HDR Effects . . . . . . . . . . . . . . . . . 4264.10 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430VI Compute 433Carsten Dachsbacher1 Compute-Based Tiled Culling 435Jason Stewart1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4351.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4361.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4371.4 Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4431.5 Unreal Engine 4 Results . . . . . . . . . . . . . . . . . . . . . . 4521.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4571.7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . 458Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458xii Contents2 Rendering Vector Displacement-Mapped Surfaces in a GPURay Tracer 459Takahiro Harada2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4592.2 Displacement Mapping . . . . . . . . . . . . . . . . . . . . . . . 4592.3 Ray Tracing a Scene with Vector Displacement Maps . . . . . . 4612.4 Ray Tracing a Vector Displacement Patch . . . . . . . . . . . . 4612.5 Integration into an OpenCL Ray Tracer . . . . . . . . . . . . . 4672.6 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . 4702.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4743 Smooth Probabilistic Ambient Occlusion for Volume Rendering 475Thomas Kroes, Dirk Schut, and Elmar Eisemann3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4753.2 Smooth Probabilistic Ambient Occlusion . . . . . . . . . . . . . 4763.3 Approximating Ambient Occlusion . . . . . . . . . . . . . . . . 4813.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4833.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484VII 3D Engine Design 487Wessam Bahnassi1 Block-Wise Linear Binary Grids for Fast Ray-Casting Operations 489Holger Gruen1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4891.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4891.3 Block-Wise Linear Memory Layout . . . . . . . . . . . . . . . . 4901.4 Rendering Block-Wise Linear Binary Voxel Grids . . . . . . . . 4911.5 Casting Rays through a Block-Wise Linear Grid . . . . . . . . 4951.6 Detecting Occlusions during Indirect Light Gathering . . . . . 4951.7 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5001.8 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5001.9 External References . . . . . . . . . . . . . . . . . . . . . . . . 503Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5032 Semantic-Based Shader Generation Using Shader Shaker 505Michael Delva, Julien Hamaide, and Ramses Ladlani2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5052.2 Previous Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 506Contents xiii2.3 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.4 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5082.5 Algorithm Explanation . . . . . . . . . . . . . . . . . . . . . . . 5102.6 Error Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . 5142.7 Usage Discussions . . . . . . . . . . . . . . . . . . . . . . . . . 5152.8 What’s Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5162.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5173 ANGLE: Bringing OpenGL ES to the Desktop 521Shannon Woods, Nicolas Capens, Jamie Madill, and Geoff Lang3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5213.2 Direct3D 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5223.3 Shader Translation . . . . . . . . . . . . . . . . . . . . . . . . . 5253.4 Implementing ES3 on Feature Level 10 . . . . . . . . . . . . . . 5323.5 Future Directions: Moving to New Platforms . . . . . . . . . . 5363.6 Recommended Practices . . . . . . . . . . . . . . . . . . . . . . 540Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541About the Editors 543About the Contributors 545Index 555

下载声明:

本站资源均有第三方用户自行上传分享推荐,非本站自制,仅供玩家做交流学习之用!切勿用于商业用途!游戏作品版权归原作者享有,如有版权问题,请附带版权证明至邮件,本平台将应您的要求删除。
相关推荐:

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复