Creator3D:shader8_这种shader怎样配标题

前言

尴尬,词穷了,想不到合适的标题,大家帮忙想个高端,大气,上档次的标题

效果展示

正文

实现原理

看了效果图,大致效果是一个类似光照的效果,从中边缘到中心,小球透明度逐减,那么这种效果怎么实现呢,给大大家说一下原理。

我们利用视角方向和模型顶点法线来进行判断,模型越靠近边缘,他的顶点法线和视觉方向越接近90度.

1.实现

CCProgram unlit-fs %{
  precision highp float;
  #include <output>

  in vec2 v_uv;
  uniform sampler2D mainTexture;
  
  uniform Constant {
    vec4 mainColor;
  };

  //从默认的顶点着色器可以看到 
  //  1.v_position转换到世界坐标系的
  //  2.v_normal也是转换到世界坐标系 并且已经进行归一化的
  in vec3 v_position;
  in vec3 v_normal;
  vec4 frag () {
    vec3 color = mainColor.xyz;
    vec4 col=texture(mainTexture, v_uv);
    //我们用视角方向和模型顶点法线来进行判断
    //我们知道最边缘的法线和视角防线是刚好垂直的

    //1.获取视角方向,归一化  (终点-起点)
    vec3 camerDir=normalize(cc_cameraPos.xyz-v_position.xyz);
    //2.两个向量的点积值(就是两个向量相乘)
    //  相称的结果:a·b>0    方向基本相同,夹角在0°到90°之间
    //             a·b=0    正交,相互垂直  
    //             a·b<0    方向基本相反,夹角在90°到180°之间 
    //             a·b=1    同向 平行
    //             a·b=-1    反向 平行
    float dotN=dot(v_normal,camerDir);
    // return CCFragOutput(vec4(color*(1.0-dotN),1.0) *col);
    return CCFragOutput(col * vec4(color,1.0) * (1.0-dotN));
  }
}%

2.地址

  • 微信公众号:搬砖小菜鸟

    扫码关注公众号,发送"gitee"可获取源码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿越的杨宗宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值