unity__摄像机

迎大家关注我的日志,今天介绍下摄像机:

 

一、摄像机:

 

1、摄像机属性

2、探照灯效果

3、相机跟随

 

二、探照灯效果:

 

1、创建一个Plane和一个Cube

2、创建一个点光源放在Cube上方

3、为点光源创建一个脚本,完成探照灯效果

 

三、Vector3.Lerp 插值:

static function Lerp (from : Vector3, to : Vector3, t : float) : Vector3

 

两个向量之间的线性插值

 

public Vector3 newPos;

public float smooth = 3;

void Start () {

newPos = transform.position;

}

void Update () {

if (Input.GetKeyDown(KeyCode.Q)) {

newPos = new Vector3(-3, -3, -6);

}

if (Input.GetKeyDown(KeyCode.E)) {

newPos = new Vector3(3, -3, -6);

}

transform.position = Vector3.Lerp(transform.position,newPos,smooth*Time.deltaTime);

}

 

四、相机跟随:

 

public Transform player;

public float smooth = 3;

void Update () {

Vector3 pos = player.position + new Vector3(0,20,-20);

transform.position = Vector3.Lerp(transform.position,pos,smooth*Time.deltaTime);

}

如果大家还有什么困难的话可以关注我的日志:

http://unity.gopedu.com/home.php?mod=space&do=blog&view=me

 

还可以关注我们的狗刨网:

http://unity.gopedu.com

### UNITY_MATRIX_V 的作用和用途 `UNITY_MATRIX_V` 是 Unity Shader 中的一个内置矩阵变量,表示 **视图矩阵 (View Matrix)**。它负责将顶点从世界空间转换到观察者所在的摄像机空间(即视图空间)。具体来说,该矩阵描述了如何通过当前活动摄像机的位置和方向来调整场景中的对象位置。 在渲染管线中,几何体通常经过以下几个主要的空间变换: 1. **模型空间 → 世界空间**: 使用 `unity_ObjectToWorld` 或 `_Object2World` 完成。 2. **世界空间 → 视图空间**: 使用 `UNITY_MATRIX_V` 完成。 3. **视图空间 → 裁剪空间**: 使用 `UNITY_MATRIX_P` 或其他方法完成。 因此,`UNITY_MATRIX_V` 的核心功能是从世界坐标系映射到摄像机坐标系[^1]。这种转换对于后续的投影操作至关重要,因为只有处于摄像机视角下的数据才能被正确地投射到屏幕上。 #### 示例代码展示 下面是一个简单的例子,演示如何利用 `UNITY_MATRIX_V` 将顶点从世界空间转换至视图空间: ```cpp v2f vert(appdata v) { v2f o; float4 worldPosition = mul(unity_ObjectToWorld, v.vertex); // 模型空间 -> 世界空间 float4 viewPosition = mul(UNITY_MATRIX_V, worldPosition); // 世界空间 -> 视图空间 o.vertex = UnityObjectToClipPos(v.vertex); // 最终裁剪空间 return o; } ``` 在这个片段中可以看到,先借助 `unity_ObjectToWorld` 实现局部坐标向全局坐标的跃迁;接着运用 `UNITY_MATRIX_V` 达成由全球框架切换为相机参照体系的过程[^2]。 需要注意的是,在实际开发过程中,如果目标平台支持更高版本,则推荐采用更现代化的方式来进行相应处理,比如直接调用封装好的工具函数代替原始矩阵乘法运算以提高可读性和效率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值