位置: 编程技术 - 正文
推荐整理分享Unity Batch 对 Vertex Shader 产生影响,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
今天用Vertex Shader来实现旗帜飘动,本来设想旗帜是在旗面的法线方向上下飘动的,所以在模型坐标系下给vertex.z加上一个随时间变化的sine波。简化如下:
开始是正确的,但是当我将旗帜旋转度后就发现飘动方向不再是旗面法线方向了,而变成切线方向了。 做了很多尝试,百思不得其解。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
标签: Unity Batch 对 Vertex Shader 产生影响
本文链接地址:https://www.jiuchutong.com/biancheng/384521.html 转载请保留说明!上一篇:Unity3D游戏之游戏日志打印(unity3drpg游戏)
下一篇:正弦波近似(正弦的波长)
友情链接: 武汉网站建设