Unity模拟毛笔字效果

这篇具有很好参考价值的文章主要介绍了Unity模拟毛笔字效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在unity里模拟毛笔字效果,在我看来这个应该和压力、面积、速度相关。但受限于硬件条件,故使用算法去实现。

一、之前效果展示

Unity模拟毛笔字效果
甲方表示不满意,没有笔锋效果,故需要完善修改,第一想到的是直接百度,居然还有相关的资料,这里附链接。
https://blog.csdn.net/May11st/article/details/80746092

二、完善修改

使用这个方法有个明显的问题,就是横向效果可以但竖直笔画字体的粗细明显不对,效果也不好。
所以就想到了在笔画不同走向使用不同的笔触来改善这个问题。
以下是四种走向改变笔触得到的效果。甚至还尝试过八种笔触,但变化太多反而效果更差。
Unity模拟毛笔字效果
乍一看这个单笔画的效果其实也还不错,但是!!!!
当写连笔时,走向变化时就会出现明显的不和谐连接点,甚至在停笔处可能会出现错误笔触!!!!
Unity模拟毛笔字效果
1.停笔出现其他笔触
2.笔触变更接点不平滑
看到这个两个问题,很快就蹦出了修改方案,使用单一笔触,让笔触随着走向做旋转。目前就到这种情况,还在修改中…

继续

GL.TexCoord2(RotateRound(Vector3.zero).x, RotateRound(Vector3.zero).y); 
GL.Vertex3(left / Screen.width, top / Screen.height, 0);
GL.TexCoord2(RotateRound(new Vector3(1,0,0)).x, RotateRound(new Vector3(1, 0, 0)).y); 
GL.Vertex3(right / Screen.width, top / Screen.height, 0);
GL.TexCoord2(RotateRound(new Vector3(1, 1, 0)).x, RotateRound(new Vector3(1, 1, 0)).y); 
GL.Vertex3(right / Screen.width, bottom / Screen.height, 0);
GL.TexCoord2(RotateRound(new Vector3(0, 1, 0)).x, RotateRound(new Vector3(0, 1, 0)).y); 
GL.Vertex3(left / Screen.width, bottom / Screen.height, 0);

public Vector3 RotateRound(Vector3 position)
    {
        Vector3 point = Quaternion.AngleAxis(angle, new Vector3(0,0,-1)) * (position - new Vector3(0.5f,0.5f,0));
        Vector3 resultVec3 = new Vector3(0.5f, 0.5f, 0) + point;
        return resultVec3;
    }

以上代码实现笔触跟随笔画走向旋转,这里笔触一定要使用正方形。
Unity模拟毛笔字效果
大概是解决走向变化连接点不平滑的问题,但是任存在停笔时小抖动出现错误笔触的情况…
在触屏上测试了下最终的效果
Unity模拟毛笔字效果文章来源地址https://www.toymoban.com/news/detail-414467.html

到了这里,关于Unity模拟毛笔字效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【unity学习笔记】捏人+眨眼效果+口型效果

    一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型(.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。(VRM-0.116.0_0f6c) 3.将univrm导入到工程中(assets)。 三、导入小人 1.在assets中新建文件夹arts,拖入小人。 2.将小人转化为unity可识别

    2024年01月18日
    浏览(53)
  • 【Unity Shader】Unity中利用GrabPass实现玻璃效果

    《入门精要》中模拟玻璃是用了Unity里的一个特殊的Pass来实现的,这个Pass就是 GrabPass ,比起上一篇博客实现镜子的方法,这个方法我认为相对复杂,因此在实现之前需要对GrabPass及实现原理做一个更加详细的介绍。 场景物体拜访和贴图完全参考《入门精要》: 以及当前场景

    2024年02月09日
    浏览(50)
  • unity实现子弹散射效果和闪电链效果

    实现爆炸散射效果可以按照以下步骤进行: 1.准备子弹模型和爆炸特效模型,可以使用粒子特效或者模型。 2.创建子弹和敌人模型,同时添加刚体组件。 3.创建子弹的脚本,绑定到子弹上。 4.在脚本中,对子弹的 OnTriggerEnter 或 OnCollisionEnter 函数做出响应,检测敌人碰撞事件发

    2024年02月16日
    浏览(38)
  • Unity 实现贴花/投影效果

    【核心思路】 实现投影效果有以下几种思路: 一是对处理渲染到相机的最终画面,将想投影的贴图修改上去。 二是对被投影的物体的Shader加上,开启的时候用想投影的贴图。 三是在一个物体上渲染想投影的贴图,让这个物体最后绘制,且只绘制那些被遮挡的部

    2024年02月12日
    浏览(44)
  • Unity 2021 凹陷效果设置

     首先来到Terrain地形的第二个小图标,然后有个如图的下拉列表,选择Set Height,  

    2024年02月15日
    浏览(49)
  • Unity——金币飞行效果

    使用的工具:dotween 效果展示: 金币飞行    CoinParent是起点,TargetPos是目标终点,金币从CoinParent炸开并飞向终点。      

    2024年02月05日
    浏览(39)
  • Unity头发飘动效果

    Unity中头发飘动其实有很多种方式,如果是想做的生动一点那么还是需要用到模拟物理这种方式,如果不要求的生动那其实可以在做动作的时候就把头发给做上飘动。这里不光可以做头发飘动部位的晃动,裙子的布料也是可以用这个插件来实现的。 优点 :是程序不需要写逻辑

    2024年02月20日
    浏览(29)
  • Unity云图渲染效果

    根据有限元分析后处理结果(应力等),将云图效果在Unity中复现同样的效果 从有限元分析软件(Abaqus、Ansys等)将模型结点数据进行导出 Step1 通过C#根据结点(相当于模型顶点)数据大小将数据转化由红到蓝颜色区间的颜色(采用HSV色彩模型以便于获取纯色彩),获得一个

    2024年02月09日
    浏览(33)
  • 【实现100个unity特效之7】unity 3d实现各种粒子效果

    直接调整为【Stretched Billboard拉伸/延伸渲染】 控制雨的大小 创建个材质 材质设置 挂载材质 设置延申效果 第一个叫做Speed Scale:通过比较每个粒子的速度,来去决定每个粒子拉伸/延伸的长度 而Length Scale:通过粒子的宽度,来决定粒子的长度 3d粒子大小随机化 颜色也可以设置随

    2024年01月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包