怎么把godot的camera(3D)所拍摄到的画面转化为texture。
godot吧
全部回复
仅看楼主
level 3
这样就可以实现一个传送门的效果了。[哈哈]如下所示链接的效果:
https://www.bilibili.com/video/av87844960/?spm_id_from=333.788.videocard.0
godot中有Cameratextue和Camerafeed,但官方文档中好像没有说明
2020年03月15日 09点03分 1
吧务
level 14
[吐舌]只需使用Viewport(视图)节点就行了。详情见官方文档→视图→简介
首先把一个摄像机放到Viewport节点下作为子节点
然后在代码里写get_texture()函数,就能获得视图中的摄像机里看到的画面了
但此时会发现,这个texture是黑色的
(注意图中我放了一个三角,用来表示哪个方向是上方)
这是因为没有设置Viewport要显示的大小
只需要在属性面板中,设置要输出的texture的大小就行了(单位是像素)
因为游戏优化的原因,我就不设置过大,我用512×512的像素就行了。如果对画质要求高的,也可以搞2K或者4K像素
此时画面就显示出来了,但是会发现画面是倒过来的。这也是我要在上面放个三角的原因,可以明显的看到画面倒过来了
此时只需要在Viewport的属性中,启用V Flip(垂直反转)就行了
[惊讶]最后,来看看最终的效果:
[笑眼]这就是把摄像机画面显示在texture上的方法了,同时,官方也提供了相关的案例,比如在3D场景显示2D摄像机里的画面,或者在2D场景里显示3D摄像机里的画面
[真棒]这些都是官方的案例,如果从steam下载godot游戏引擎,就会附带这些案例
2020年03月15日 11点03分 2
666 看来unity能做的godot也能胜任
2020年03月15日 11点03分
我在研究怎么把(2D)场景中的局部放大,还得是平滑过渡到放大,并且放大区域不是整屏显示,只是覆盖原场景一部分。还有什么例子可以参考吗?
2022年05月23日 20点05分
@冰蓝圣雪 [勉强]放大镜效果嘛,用Viewport和着色器都可以,不过Viewport节点在2D模式会产生一些问题,可以在这贴看到Viewport在2D模式产生的问题:https://tieba.baidu.com/p/7043195089
2022年05月24日 08点05分
@人类的大敌 谢谢大敌!初步研究了一下,Viewport 和相机之间还没完全搞清楚,我理解的是需要实例化节点,就是作为一个子场景来渲染它,好像把我的需求复杂化了。我还是选择用每秒来给相机一个新的缩放达到动态缩放局部区域的效果。
2022年05月25日 01点05分
1