js实现线路流动_three.js实现建筑物纹理流动

在知乎写第一篇软文哈,略有点小慌,最近一直在做智慧城市,大多特效特效我已实现,以往看着牛逼的智慧城市感觉也就那样,第一篇文章来点干货吧,废话不多说本文主要实现建筑物纹理流动的特效。

参考特效来源于thing.js demoThingJS演示​www.thingjs.com

效果:

我实现的效果:

四个重点:

一、如何只贴建筑的周围,顶部和底部不贴

原理:采用归一化的法向量,由于归一化之后顶部法向量为(0.0,1.0,0.0),而底部法向量则为(0.0,-1.0,0.0)我们仅需要判断y值即可判断顶面或者底面,即:

vec3 tempNomal= normalize(fNormal);

float power=step(0.95,abs(tempNomal.y));

在上面我们转换为求y的绝对值,通过绝对值来判断。

二、建筑流动的着色器:

1、顶点着色器

varying vec2 vUv;

varying vec3 fNormal;

varying vec3 vPosition;

void main()

{

vUv = uv;

fNormal=normal;

vPosition=position;

vec4 mvPosition = modelViewM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值