当前位置:   article > 正文

unity-学习笔记 shader实现渲染时为弯曲的效果,自定义shader里的一些属性_unity 弧形shader

unity 弧形shader

shader实现渲染时为弯曲的效果

看的是国外的教程,目前关于shader渲染弯曲的教程不多(可能是我搜索姿势不对)

https://www.bilibili.com/video/av413161239/

我是直接用了这个shader平面变圆形视频里的方法走的,但是只实现了y轴的贴图渲染,x轴的按照视频里的走保存运行是没反应的,这就很奇怪了
shadergragh设置
在这里插入图片描述
由于没有中文字幕(有机会翻译一下),我只是按照他的做了一遍,大致的意思应该是
通过修改获得摄像机xyz渲染的值来实现弯曲的视觉效果,通过camera获得xyz值,然后对xz进行修改(negate.multiply,add的操作让距离摄像机不同xy值的图像的渲染角度发生变化,从而实现弯曲的视觉效果)
这里记录一下,回家看看能不能修改一些参数,视频里还提到了能在摄像机里实现弯曲成球的效果,但是没有提及如何实现,看看回家能不能搞出来吧
shader又是一个大的内容需要学习,学这个的目的是为了项目里的星球效果着想,如果能在平面的情况下实现弯曲,那就不用建球形的模型了(公司的建模师对弯曲的东西好像不太熟悉),而且也不用对他的位移进行过多的干预,使用起来的感觉会更好
先这样吧吗,回去休息一下再战

2021.6.21更新
弯曲问题已解决(可能当时饿晕了),视频里写的blendmanager脚本,我以为是个配置文件,所以一直没有挂载到场景中的物体里,今天看到他上面把控制enable的值放在awake里的时候突然顿悟,这个应该是要在场景中才会有的判断,到这里问题就解决了,很简单,就是把blendmanager脚本挂载到场景中即可
视频里为了平时制作的舒服一点,用了一个布尔去控制运行(application.isplaying)的时候才启动写好的弯曲的shadergragh
注意:由于这个通过shader修改相机渲染的方法是通过模型的顶点实现的,所以当对场景中的模型进行这个shader渲染的时候,应当尽量保证模型之间的定点数相近,至少不能差的太多(如一个四个顶点的和30万顶点),否则在渲染的时候就会出现脱离的现象,这个是在实际使用的过程中发现的问题
由于我和建模师都不懂shader的原理,所以只能这样一步一个脚印摸索出来这些视频里不会出现的问题

2021.6.23更新
开始逐渐掌握shader的用法
今天试着用shader去实时变动texture的tiling和offset的值,因为处于测试,原画和3d都不太懂怎么把正方的图变成圆形,不知道怎么设计才是合理的,所以在我的unity上捣鼓了基本一个下午,从中领悟到了一些shader的设置
像如果需要自定义shader的tiling和offset的值的话,需要在simple texture 2d的组件的左测uv上添加一个叫tling and offset的组件
然后这个组件有两个还是三个输入属性,一个输出属性,输入的一二就是我们的tling和offset,由于他们各自有xy,所以创建一个vecter2去控制xy,再给这个vector2的左侧的x和y添加各自的vector1,然后将这些vector1右键contert to the property,然后给他们重命名一下,就可以在这个shader外, 在材质球上动态的修改他们的tling和offset值,然后调到大概还原原画的设计即可(这里感觉应该是美术或者建模去预估这些然后建好模型和贴图,unity开发师不应该去做这些额外的工作,不过大家都不懂的情况下,只能这样摸索的来了)
需要注意,场景中底板的尺寸越大,贴图需要的质量就越高,需要的细节就越多,前面这样调的目的就是为了先看个大概的效果,后面再去进行优化,否则可能就会出现做白工的情况

加油吧,其实昨天和今天都写了一些对接api的工作(外包的大佬们终于开始写接口了,不过还不够全),需要一点一点的替代自己先前写的直接访问mysql的方法,感觉写过一次不是太难,逻辑都是一个样(不涉及到服务器的话),所以就不多赘述~
还有3d非人形的动画的导入问题没有解决,加油加油

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/107619
推荐阅读
相关标签
  

闽ICP备14008679号