位置: 编程技术 - 正文

Unity Batch 对 Vertex Shader 产生影响

编辑:rootadmin

推荐整理分享Unity Batch 对 Vertex Shader 产生影响,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

今天用Vertex Shader来实现旗帜飘动,本来设想旗帜是在旗面的法线方向上下飘动的,所以在模型坐标系下给vertex.z加上一个随时间变化的sine波。简化如下:

Unity Batch 对 Vertex Shader 产生影响

开始是正确的,但是当我将旗帜旋转度后就发现飘动方向不再是旗面法线方向了,而变成切线方向了。 做了很多尝试,百思不得其解。Vertex Shader传入的顶点坐标是在模型坐标系下的,所以应该和GameObject的旋转是无关的,为什么加到模型坐标系下z方向的值最终会变成加在了世界坐标系z方向上呢? 后来发现这是由于Unity的Batch引起的。如果在场景中只有一面旗帜,那么不论怎么旋转,飘动方向都是对的。但当场景中放了两名旗帜后就有问题了。网上看到有人解释说Batch会改变UNITY_MATRIX_MVP。

解决方法倒是很容易,只要写Shader的时候不基于模型坐标系的方向而用法向量就行了。

正弦波近似 在做一些游戏效果的时候经常需要用到正弦波,它平滑又有周期性,但是sin的计算开销略大。作为优化,在GPUGem上看到一个用三次函数平滑三角波得到

Unity3D Mesh学习笔记1-创建一个最简单的四边形 usingUnityEngine;usingSystem.Collections;publicclassQuad:MonoBehaviour{//UsethisforinitializationvoidStart(){CreateQuad();}privatefloatm_width=1;privatefloatm_length=1;publicvoidCreateQuad(){/*1.顶

unity中利用sentmessage发送消息传递多个参数 今天写一下遇到的问题记录一下利用sentmessage传递多个参数,就是把参数放在一个数组中,然后传递这个数组,接收消息的函数接收数组,在拆分开for(in

本文链接地址:https://www.jiuchutong.com/biancheng/384521.html 转载请保留说明!

上一篇:Unity3D游戏之游戏日志打印(unity3drpg游戏)

下一篇:正弦波近似(正弦的波长)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络