Godot笔记:用Viewport实现在3D场景中显示2D内容

2019-07-14  本文已影响0人  吃烧烤的老王

在上个教程中我们以官方提供的案例《视口 之 3d in 2d》为基础,实现了用Viewport实现在2D场景中显示3D内容的效果。这次我们继续用视口来实现在3D场景中显示一个2D场景的效果。

最终效果如下:

2in3.gif

首先我们来复习一下上节课的内容,用视口在2D场景中显示一个3D场景需要那些步骤?

本教程的原理和上一个教程非常类似,只不过我们创建了一个Quad类型的MeshInstance,用其Material下的Texture作为渲染目标,即所谓的画布。

先看一下2D场景:

2dscene2.png

和上个教程一样,勾选Camera2DCurrent属性。

旋转的图标代码:

extends Sprite
​
func _process(delta):
 rotation_degrees += delta*100.0

再看一下3D场景:

3dscene2.png

"QuadMesh"是1个"Quad"类型的MeshInstance,使其旋转的代码如下:

extends MeshInstance
​
func _process(delta):
 rotation_degrees.y -= delta*60.0

小结: 依然是两个简单的场景。接下来我们把2D场景嵌入到3D场景中

GeometryMaterial.png
脚本实现如下:
extends Viewport
    ​
    func _ready():
     var mesh:MeshInstance = get_node("../QuadMesh")
     mesh.material_override.albedo_texture = get_texture()
上一篇 下一篇

猜你喜欢

热点阅读