AEJoy —— 表达式之面向相机时才显示图层【JS】

举报
ShaderJoy 发表于 2021/11/18 22:41:14 2021/11/18
911 0 0
【摘要】 效果图 想法 有时,让一个 3D 层只在面对相机时可见是很方便的。其中一个应用可能是当物体背对相机时,你想要显示一张不同的图像。 设计 有不同的方法来实现这一点,但在这里我们将重点创建一个不透...

效果图

097.gif

想法

有时,让一个 3D 层只在面对相机时可见是很方便的。其中一个应用可能是当物体背对相机时,你想要显示一张不同的图像。

设计

有不同的方法来实现这一点,但在这里我们将重点创建一个不透明度 表达式,可以检测相机何时可以看到图层的正面。在这种情况下,我们希望不透明度为 100% 。当相机可以看到图层的背面时,我们希望不透明度为 0% 。一旦我们有了这样的表达式,我们就可以将它应用到代表对象前后的图层上,将后层在其 y 轴上旋转180度,然后将后层添加(parent)到前层(作为它的子级)。然后当我们旋转前层或环绕相机时,我们总是会看到正确的图像。我们还希望即使没有摄像机,这个表达式仍然能奏效。

为了实现这一功能,我们将利用表达式语言中一种非常方便(但不幸的是,有点难以理解)的特性 —— 层空间转换

在本例中,我们将使用 toCompVec() 变换将指向层外( z 轴方向)的矢量转换为摄像机视图的坐标系统。然后我们需要检查这个变换的 z 分量。如果它是正的,则图层是面向相机的。如果是负的,图层就背对着相机。

注意,如果没有摄像机,toCompVec() 将矢量转换为合成的默认视图,所以它仍然可以工作。

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/121216937

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。