一:功能演示


二:介绍

Curved World是一个顶点变换着色器,用于创建各种着色器弯曲效果
作为一个曲面着色器它并不会修改其渲染的真实网格。例如,如果网格之前是平的,使用Curved World着色器之后它仍然会是平的,假如物体需要从位置A移动到位置B,使用Curved World着色器后一切都是一样的,只是视觉的渲染不同,它不会影响物理,动画,寻路和其他游戏功能

Curved World是每个顶点置换成着色器,所以网格顶点的密度决定了曲线的平滑程度


三:实现步骤

——下载插件并导入Unity工程:https://download.csdn.net/download/LLLLL__/12636033


——设置弯曲类型并更新着色器
Window—VacuumShaders—Curved World Settings—Project Bend Type选择弯曲类型并点击Update Shaders


——由于弯曲效果只能通过Curved World提供的着色器来渲染,所以场景的材质着色器必须替换为相应的Curved World着色器,
Curved World的着色器中包含与Unity内置着色器相同的着色器,但是增加了顶点变换
可以通过Window—VacuumShaders—Scene Shaders Overview统一进行材质着色器更改


四:不同的弯曲效果详解

基于抛物线方程的弯曲效果:
——Classic Runner:最常用的弯曲效果,跑酷游戏中常见的道理弯曲或道路弧形向下都是用此效果制作的,只能在X轴或Z轴进行弯曲

——Little Planet:在XY平面进行弯曲,可以制作成一个3D球体形状
——Cylindrical Tower:在XZ平面进行弯曲
——Cylindrical Rolloff:与Classic Runner类似
——Universal:万能弯曲,可以在X轴,Y轴,Z轴进行弯曲
——Perspective 2D:在XZ平面进行弯曲,只能用于透视相机
 

基于螺旋方程的弯曲效果:
——Spiral Horizontal
——Spiral Horizontal Double
——Spiral Horizontal Rolloff
——Spiral Vertical
——Spiral Vertical Double
——Spiral Vertical Rolloff


五:常用API

——使用Curved World中的API必须引入VacuumShaders.CurvedWorld命名空间


——获取CurvedWorld_Controller的实例

CurvedWorld_Controller.current


——设置弯曲参数

CurvedWorld_Controller.current.upDownOffset = 1;
CurvedWorld_Controller.current.upDownSize = 1;


——开启与禁用弯曲效果

CurvedWorld_Controller.current.EnableBend();
CurvedWorld_Controller.current.DisableBend();

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐