博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cg入门14:Vertex Shader - 几何变换 —顶点扭曲
阅读量:2201 次
发布时间:2019-05-03

本文共 1425 字,大约阅读时间需要 4 分钟。

mul
(
UNITY_MATRIX_MVP
,upPos):
参数说明
由第一个参数
UNITY_MATRIX_MVP 矩阵去影响第二个参数upPos向量(或者矩阵)
Shader "Sbin/vf35" {	SubShader {				pass{			CGPROGRAM			#pragma vertex vert			#pragma fragment frag			#include "UnityCG.cginc"			struct v2f{				float4 pos : POSITION;				float4 col : COLOR;							};			v2f vert(appdata_base v){				//---------------------旋转xz面顶点start-----------------------------				/*				float angle = length(v.vertex)*_SinTime.w;				//沿y轴旋转矩阵:				float4x4 m = 				{					float4(cos(angle),0,sign(angle),0),					float4(0,1,0,0),					float4(-sign(angle),0,cos(angle),0),					float4(0,0,0,1)				};				v.vertex = mul(m,v.vertex);				//优化计算				float x = v.vertex.x*cos(angle)+v.vertex.z*sign(angle);				float z = v.vertex.x*-sign(angle)+v.vertex.z*cos(angle);				v.vertex.x = x;				v.vertex.z = z;				*/				//---------------------旋转xz面顶点end-----------------------------				//---------------------缩放xz面顶点start-----------------------------				float angle = v.vertex.z + _Time.y;				float4x4 sm = 				{					sin(angle)/8+0.5,0,0,0,					0,1,0,0,					0,0,1,0,					0,0,0,1,				};				v.vertex = mul(sm,v.vertex);				//优化计算,不知道为什么不正确?				//float x = (sign(angle)/2+0.5)*v.vertex.x;				//---------------------缩放xz面顶点start-----------------------------				v2f o;				o.pos = mul(UNITY_MATRIX_MVP,v.vertex);				o.col = fixed4(0,1,1,1);				return o;			}						fixed4 frag(v2f v):COLOR			{				return v.col;			}			ENDCG		}	} }
沿y轴旋转xz面顶点效果:
水波纹效果:
你可能感兴趣的文章
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
机器学习算法应用中常用技巧-2
查看>>
通过一个kaggle实例学习解决机器学习问题
查看>>
决策树的python实现
查看>>
Sklearn 快速入门
查看>>
了解 Sklearn 的数据集
查看>>
用ARIMA模型做需求预测
查看>>
推荐系统
查看>>
TensorFlow-11-策略网络
查看>>
浅谈 GBDT
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>