
laya
文章平均质量分 70
gplzh
这个作者很懒,什么都没留下…
展开
-
Laya实现Stencil模板测试
Stencil模板测试是一个类似于深度测试的功能,由WebGL提供,但Laya目前没有实现。图1是未使用Stencil的效果,因为顶点重叠,阴影效果不理想。图二使用了Stencil,已绘制阴影的地方不再重复绘制。Laya引擎版本:2.11.0 ts实验版1、首先在WebGLContext.ts中添加WebG的Stencil相关接口: /** * @internal */ static setStencilFunc(gl: WebGLRenderingContext, fun原创 2021-06-04 12:08:24 · 547 阅读 · 1 评论 -
Laya实现LineRenderer
文章目录前言一、目标二、原理1.构建Plane2.构建转换矩阵三、实现LineSprite3D.tsLineRenderer.ts为Laya引擎增加LineSprite3D使用前言Laya目前为止还没有支持LineRenderer这个组件,在做相关特效的时候不是很方便,本文主要讲解如何仿照Unity在Laya上实现一个基础版的LineRenderer。提示:以下是本篇文章正文内容,下面案例可供参考一、目标Unity场景中包含的LineRenderer导出到Laya后,Laya可自动创建Line原创 2021-01-22 14:13:01 · 1240 阅读 · 7 评论 -
Laya自定义Shader实现Planar阴影(二)
接上一篇文章,把平面移到物体中间,低于平面的部分仍然会投影到平面上,如下图:出现这种原因,是因为shader中shadowPos.y = u_Plane_Height + 0.0001;固定了阴影的高度,所以低于平面的阴影也投影到了平面上,解决的方法是:低于平面的点在片元着色器中舍弃掉。下面只给出修改后的顶点着色器和片元着色器。 var vs = ` #if defined(GL_FRAGMENT_PRECISION_HIGH)原创 2021-01-15 10:01:30 · 623 阅读 · 0 评论 -
Laya自定义Shader实现Planar阴影(一)
最近有个需求,需要把物体的影子投影在某一个平面上,类似这样的效果:打开光照阴影之后,发现在小米测试机上只有45帧,于是决定使用自定义shader,增加一个pass通道渲染阴影。在实现前,有两点需要事先说明的的:1、这里预设接受投影得平面是已知的,并且平行于由x轴和z轴构成的平面,因此阴影的y坐标是已知的。如果想了解投影到任意平面的办法,可以参考https://zhuanlan.zhihu.com/p/97267754,本文不做讨论。2、上图中,超出平面的阴影是不显示的。但因为laya目前不支持Ste原创 2021-01-14 18:00:19 · 1211 阅读 · 1 评论