小米14相机详解
最近买了米14,相机一堆参数搞不懂,写个教程给自己
使用github管理unity项目
使用github管理unity项目并进行多人合作开发
git安装和配置
本文介绍了如何使用git并使用密匙关联电脑和github,并使用github客户端来管理仓库。
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
常用函数接口
Cg标准函数库 - 简书 (jianshu.com)
常用函数
作用
o.pos=UnityObjectToClipPos(v.vertex);
将模型空间顶点坐标转换到裁剪空间坐标
saturate(x)
返回x处于0-1之间的值,超出范围的全部取0和1
dot(x,y)
点积
pow(x,y)
$x^y$
normalize(x)
归一化
z=reflect(x,y)
法线为y,入射方向为x,返回出生方向z
常用变量
描述
UNITY_LIGHTMODEL_AMBIENT
当前环境光
_WorldSpaceLightPos0
世界空间下的光源位置
_WorldSpaceCameraPos
世界空间下的摄像机的位置
_LightColor0
光源颜色
unity_WorldToObject
变换矩阵:左乘该矩阵:将世界坐标转换为模型坐标。右乘则相反,将模型坐标转换为世界坐标
7.1 单张纹理
使用纹理来代替物体的漫反射颜色代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 7/Single Texture" { Properties { _Color ("Color Tint", Color) ...
7.2 凹凸纹理
使用法线
高度图
存储的是强度值,用来表现模型表面的海拔高度,颜色越浅越向外凸,颜色越深则相反,好处是非常直观,缺点是计算复杂
想要和法线一样使用:纹理类型设置为normal map,勾选create from Grayscale
Bumpiness:控制凹凸程度
Filtering:法线的纹理平滑或者尖锐
法线纹理
法线的范围在[-1,1],像素范围在[0,1],所以在制作法线贴图时,需要把法线映射到像素,在使用法线贴图时,需要把像素映射回法线。
模型空间的法线纹理:即模型空间的表面法线
优点:简单直观,可以提供平滑的边界。
缺点:自由度低
切线空间的法线纹理:每个顶点的法线方向为z轴,x轴是切线方向,y轴则是两个方向叉积的方向(副切线)
优点:可以用于其他模型做效果,可以移动uv制作效果,可以重复用uv,可以压缩。
缺点:边缘处容易有缝合迹象
在切线空间下计算:效率高123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 ...
7.3 渐变纹理
使用渐变纹理控制漫反射光照12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 7/Ramp Texture" { Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) _RampT ...
7.4 遮罩纹理
遮罩纹理用来保护某些区域避免被修改
原理:使用其中的通道与原图相乘,如果通道值为0,则不受影响。
比如说想要控制高光,就制作一张高光的遮罩图,通过与原图相乘,来控制该遮罩图在原图上的影响大小,用来调出想要的高光。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 7/Mask Texture" { Properties { _Color ("Color Tint", ...
纹理属性
纹理属性
Wrap Mode:决定平铺属性
repeat:重复
Clamp:截取边界值
Filter Mode:决定了变换拉伸后使用哪种滤波模式(放大放小的图片质量)
FilterMode - Unity 脚本 API
效果依次提升,但是性能消耗也变大
Point
Biliner
Trilinear(区别于biliner的是否开启mipmaping)
mipmaping技术
用于纹理缩小,需要使用一张多级渐远纹理,多占用33%空间
统一 - 手动:米普贴图 (unity3d.com)
详细原理参考图形学教程。
max size:不能超出的最大像素值
format:决定unity内部用那种方式储存该纹理