- 最后登录
- 2019-12-25
- 注册时间
- 2012-8-24
- 阅读权限
- 90
- 积分
- 71088
 
- 纳金币
- 52344
- 精华
- 343
|
來自: zzzsss 分享
一、纹理寻址一张纹理对应到显示区域上,不可能完全吻合
纹理100*100 显示区域200*200
纹理200*200 显示区域100*100
FilterMode 设置图片纹理寻址方式
Point :如果纹理大于显示区域,按比例对应,纹理上多的点直接舍弃 //出现锯齿效果
如果显示区域大于纹理,按比例对应,显示区域上多的像素点遵循就近原则 //出现马塞克效果
Bilinear : 每个像素点的颜色根据其上、下、左、右颜色的平均值计算
Bilinear : 每个像素点的颜色根据其上、下、左、右、左上、左下、右上、右下颜色的平均值计算
二、语义
在InputStruct(顶点着色器传入参数的结构体)中,名字是可以更改的,MeshRender传参的时候,为了能对应上这些数据,因为每个字段后面都必须加上语义,告诉MeshRender这个
字段储存什么数据。
POSITION 模型顶点信息,模型坐标
NORMAL 法线信息
TANGENT 切线信息
TEXCOOD(n) 从顶点传递到片段 高精度
COLOR float4 从顶点传递到片段 低精度
SV_POSITION 经过mvp矩阵 把顶点坐标转换到屏幕坐标的位置信息
SV_TARGET 输出到那个renderer target(相机)上面,默认0
三、矩阵变换
Unity里面变换矩阵都是左乘,矩阵乘法不满足交换律
M 模型空间转换到世界空间
V 世界空间转换到相机空间
P 3D坐标系转换成2维屏幕坐标系
例子:假设有A,B两个物体,和C相机 ,A物体是B物体的子物体,将A的坐标转换到相机空间下
将A物体坐标从B空间转到世界空间:Vector3 worldpos = B.tranform.localToWorldMatrix.MultiplyPoint(A.transform.localPosition);
将A物体坐标从世界坐标转到相机空间:C.tranform.worldToLocalMatrix.MultiplyPoint(worldpos);
四、波动Shader
y=Asin(ωx+φ) 波动Shader主要应用这个正弦型函数
A:波动幅度
w:波动周期
φ:x轴偏移
|
|