前言
本片文章介绍如何使用GoDOt引擎来实现3D物体的边缘高亮效果
一、使用材质实现
1.实现步骤
1.1创建Godot项目
点击新建项目,创建Godot项目
选择工程路径,并点击创建
点击创建一个3D场景
1.2实现高亮效果
首先我们使用一个球体与一个正方体实现高亮效果
右键Spatial节点创建一个MeshInstance节点
为MeshInstance节点添加一个Mesh,选择球体
在检查器Material再添加一个新的材质,随后点击展开
再展开面板中再创建一个新的材质
点击展开Flags,启用Unshaded
展开Parameter将Cull Mode属性设置为Front,启用Grow,设置Grow Amount的值即可出现高亮效果
2.使用材质来设置高亮效果的缺点
按照设置球体的方式来设置一个正方体的高亮效果
效果如下:
我们会发现,使用正方体时,正方体边缘的连接处会出现断开的现象,这个问题在godot3.5.2版本还没有直接使用材质来解决,我们可以将模型导入到其他的3D软件,将模型边缘进行平滑处理即可。
如下是未进行平滑处理与进行平滑处理加入高亮的效果对比
二、使用创建轮廓网格的方式实现
1.实现步骤
1.1实现高亮效果
首先在场景中加入一个正方体
点击网格,选择创建轮廓网格,设置边缘厚度,点击创建过后我们会发现MeshInstance下会新生成一个MeshInstance
然后我们发现已经出现轮廓,但是没有颜色,我们需要为新生成的MeshInstance添加一个材质,并启用Unshaded,会发现高亮效果完成
1.2缺点
这种方式实现物体高亮效果的缺点是,边缘厚度设置完成后,不能再进行设置,如果想要设置,需要重新添加轮廓网格。
三、实现鼠标移进物体时物体高亮,移出时高亮消失
1.创建三角网格静态实体
首先为高亮物体创建三角网格静态实体,创建过后目录如下
2.编写脚本连接信号
为跟节点创建一个脚本
在脚本中添加如下两个方法
public void OnStaticBodyMouseEntered()
{
var meshInstance = GetNode<MeshInstance>("MeshInstance2/MeshInstance");
meshInstance.Visible = true;
}
public void OnStaticBodyMouseExited()
{
var meshInstance = GetNode<MeshInstance>("MeshInstance2/MeshInstance");
meshInstance.Visible = false;
}
使用CollisonObject的这两个信号来实现,鼠标拖入时高亮,脱离时高亮消失,将两个信号分别连接两个方法
初始状态下隐藏物体的高亮效果
3.添加摄像机
在根节点下创建一个摄像机
编辑器视角对准想要操作的物体后,可以使用快捷键control+alt+F将旋转与视角对齐 ,使用快捷键control+alt+M将变换与视角对齐即可校准摄像机位置。
也可以点击摄像机后,按如下操作进行设置。
设置完成后保存运行,实现鼠标移进物体时物体高亮,移出时高亮消失的效果。